Zum Inhalt springen

Building a sequence

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

Followup’s two email types form a short post-purchase sequence: a thank-you soon after fulfilment, then a review request once the customer has lived with the product. This page suggests timing and copy, and shows the one developer filter the plugin exposes. Everything except the filter is set under WooCommerce → Follow-ups.

TypeTrigger statusDelayGoal
Thank-youCompleted1-2 daysConfirm care, set a warm tone
Review requestCompleted7-14 daysCollect reviews once the product is in use

These are close to the shipped defaults (1 and 7 days). Adjust the review delay to your shipping time: a review request should land after the product has plausibly arrived and been used, so a store that ships slowly wants a longer delay.

Because the delay is measured from the order’s last-modified date, avoid editing orders after they reach the trigger status if you want the delay to start from that moment, an edit resets the clock and pushes the follow-up later.

Keep it short and human. The defaults are a good start; here is a tighter variant:

Subject: Thanks for your order, {customer}!
Hi {customer},
Thank you for shopping with {site}. We hope you love order {order}.
If anything isn't right, just reply to this email, we read every one.
Warm regards,
{site}

Send once the customer has had the product long enough to form an opinion. Ask directly and make it easy.

Subject: How did we do, {customer}?
Hi {customer},
You received order {order} a little while ago. Would you take a moment
to leave a review? It helps us a lot, and helps other shoppers too.
Thank you,
{site}

Tokens ({customer}, {order}, {site}) work in both the subject and the body and are replaced per order when the email sends. {customer} falls back to “there” when the order has no billing first name.

  1. Enable a type and set its Delay (days) to 0.
  2. Place a test order with a readable billing email and move it to the trigger status.
  3. Run the event now: wp cron event run followup_daily_event (or wait for the daily run).
  4. Confirm the email arrives.
  5. Run it again, the same follow-up must not send twice for that order.

Followup exposes one filter, fired just before wp_mail. It receives the email arguments, the WC_Order, and the type key (thank_you or review), and lets you rewrite any of them, change the recipient, add headers, or convert the plain-text body to HTML. (This is the seam Followup Pro uses to send branded HTML.)

add_filter( 'followup/mail', function ( array $mail, WC_Order $order, string $type ): array {
// Send as HTML and wrap the plain-text body in a simple template.
$mail['headers'][] = 'Content-Type: text/html; charset=UTF-8';
$mail['body'] = '<div style="font-family:sans-serif">'
. nl2br( esc_html( $mail['body'] ) )
. '</div>';
// Only tweak the review request, leave the thank-you plain.
if ( 'review' === $type ) {
$mail['headers'][] = 'Reply-To: [email protected]';
}
return $mail;
}, 10, 3 );

$mail is ['to', 'subject', 'body', 'headers']. Whatever you return is passed straight to wp_mail. Do not assume the body is HTML elsewhere, by default it is plain text, so escape before injecting it into markup.

  • Configuration, every setting and its option key.
  • FAQ, cron timing, duplicates, deliverability.