WooCommerce email fix

WooCommerce email order status triggers.

Use this when email sending depends on whether an order entered pending, processing, completed, failed, or on-hold at the right time.

When to use this fix

  • A specific WooCommerce email is missing, but SMTP tests pass.
  • Processing order sends but completed order does not, or the opposite.
  • Payment succeeded but the order status did not move to the expected value.
  • Automation, subscriptions, or fulfillment plugins change order status.

When not to use this fix yet

  • Plain wp_mail() fails; fix SMTP/PHP mail first.
  • The exact WooCommerce email template is disabled.
  • The SMTP provider rejects all WordPress email.
  • The customer email was accepted by the provider and is only missing from the inbox.

WooCommerce path

StageTrigger-specific check
Order eventConfirm the order entered the status that fires the selected email.
Email templateMatch the missing email to the exact WooCommerce template.
RecipientCheck whether the template sends to customer, admin, or a manual invoice recipient.
wp_mailResend the same email type and look for a provider log at that timestamp.
SMTPIf no provider log appears, move to SMTP/plugin transport checks.
InboxIf the provider accepted it, inspect filtering and sender alignment.

Trigger map

EmailTrigger stageFirst verification
New orderOrder created/admin notificationCheck New order recipient list and provider log for admin mailbox.
Customer processing orderOrder enters processingConfirm payment gateway changed status to processing.
Customer completed orderOrder enters completedConfirm completed transition happened and template is enabled.
Customer invoiceManual invoice or payment requestUse order action to send invoice and inspect provider log.
Failed orderOrder enters failedConfirm failed status and admin recipient field.

Before / after setup

Before

Email tested: completed order
Order status: processing
Template: enabled
Result: no completed-order email

After

Email tested: processing order
Order status: processing
Template: enabled
Result: provider log shows customer email event

Verification checklist

  1. Choose the exact WooCommerce email type that is missing.
  2. Find the order status transition that should trigger it.
  3. Confirm the matching email template is enabled.
  4. Use order actions to resend the same email type.
  5. Check SMTP/provider logs for that recipient and timestamp.
  6. If provider accepted the message, move to recipient delivery and sender authentication.

Common false positives

  • Paid order does not always mean processing or completed status.
  • Completed status now does not prove the completed transition fired an email earlier.
  • SMTP test passed does not prove WooCommerce selected the right template.
  • Admin new-order email works does not prove customer order emails work.