View Categories

Custom Email Sends Too Early or at the Wrong Time

If a custom email from Additional Custom Emails & Recipients for WooCommerce arrives the moment an order is placed, its trigger is firing earlier than you expect. The most common fix: open the email under WooCommerce > Settings > Emails and pick the status the order reaches later, such as Order status updated to Processing.

Causes and fixes #

  1. An offline payment method moves the order to On hold during checkout. With payment methods such as Direct bank transfer or Check payments, WooCommerce creates the order as Pending payment and switches it to On hold while the customer is still on the checkout. So the triggers Order status Pending payment to On hold and Order status updated to On hold fire at checkout. This is expected, not a fault in Custom Emails.

    Fix: if the email should go out when you confirm the payment, use Order status On hold to Processing (or Order status updated to Processing) instead. To limit the email to one payment method, add it under Order Options > Require payment gateways.

  2. A “New order” trigger is selected. Every trigger in the New order group runs when checkout creates the order, on both the classic and the block checkout. New order (Any status) sends for every new order, paid or not.

    Fix: to react to payment or fulfillment, switch to an Order status updated to or Order status (A) to (B) trigger.

  3. Several triggers are selected on one email. The email is sent every time any selected trigger fires, and there is no check for an earlier send. Selecting both Order status updated to On hold and Order status updated to Processing, for example, sends the same email twice for a bank transfer order that is later paid.

    Fix: keep only the triggers you really need, or split them into separate custom emails (more than one custom email needs Pro).

  4. You want the email later, not at the status change. Set Delay and its unit (seconds to weeks) on the email. Then add Order Options > Require order status (or Exclude order status) so a queued email is skipped if the order has moved on by the time it runs. Queued emails are listed at WPFactory > Custom Emails > Scheduled. Delay is free. See how to send delayed and scheduled emails.

How to confirm it is fixed #

  1. Go to WPFactory > Custom Emails > General (also reachable at WooCommerce > Settings > Custom Emails > General) and enable Debug under Advanced Options.
  2. Place a test order with the payment method your customers use, then change its status the way you normally would.
  3. Open WooCommerce > Status > Logs and select the custom-emails-for-woocommerce source. Each attempt starts with Triggered [hook name], for example woocommerce_order_status_pending_to_on-hold_notification, so you can see exactly which status change sent the email.

For the full list of triggers and what each one listens to, see the custom email triggers reference. If the email does not send at all, see custom email not sending.

Still stuck? #

Need a hand? Our team answers every ticket on the Custom Emails support forum. Include your Debug log and the email’s trigger settings.