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
| Stage | Trigger-specific check |
|---|---|
| Order event | Confirm the order entered the status that fires the selected email. |
| Email template | Match the missing email to the exact WooCommerce template. |
| Recipient | Check whether the template sends to customer, admin, or a manual invoice recipient. |
| wp_mail | Resend the same email type and look for a provider log at that timestamp. |
| SMTP | If no provider log appears, move to SMTP/plugin transport checks. |
| Inbox | If the provider accepted it, inspect filtering and sender alignment. |
Trigger map
| Trigger stage | First verification | |
|---|---|---|
| New order | Order created/admin notification | Check New order recipient list and provider log for admin mailbox. |
| Customer processing order | Order enters processing | Confirm payment gateway changed status to processing. |
| Customer completed order | Order enters completed | Confirm completed transition happened and template is enabled. |
| Customer invoice | Manual invoice or payment request | Use order action to send invoice and inspect provider log. |
| Failed order | Order enters failed | Confirm 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
- Choose the exact WooCommerce email type that is missing.
- Find the order status transition that should trigger it.
- Confirm the matching email template is enabled.
- Use order actions to resend the same email type.
- Check SMTP/provider logs for that recipient and timestamp.
- 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.