WooCommerce status error
WooCommerce order completed but no email.
A completed order should trigger the customer completed-order email only when the completed transition happens and the template is enabled.
Failure stage
Order exists: WooCommerce has an order record.
Completed transition: email fires when the status changes into completed, not merely because the order page says completed later.
Completed-order template: customer completed-order email must be enabled.
Likely failure: status did not transition, template disabled, custom automation bypassed email hooks, or transport failed.
Evidence-to-cause matrix
| Evidence | Likely cause | First check |
|---|---|---|
| Order was manually edited to completed | Status transition may not have fired as expected | Use order actions to resend completed-order email. |
| Automation marks orders completed | Hook bypass or timing issue | Check automation/action scheduler logs. |
| Completed template disabled | Template stops before wp_mail | Enable Customer completed order email. |
| Processing email sent, completed email missing | Completed template/status path only | Do not change global SMTP first. |
| Provider log has no completed-order event | WooCommerce did not generate email | Inspect order notes and template enabled state. |
| Provider log accepted message | Recipient filtering/delivery stage | Check spam/quarantine and sender authentication. |
WooCommerce path
| Stage | What to verify |
|---|---|
| Order event | Order actually transitioned into completed, not only displayed completed later. |
| Email template | Customer completed-order email is enabled. |
| Recipient | Billing email is valid on the completed order. |
| wp_mail | Order notes or logs show WooCommerce generated the completed-order email. |
| SMTP | Provider saw an event for the completed-order resend or transition. |
| Inbox | Delivery filtering matters only after provider acceptance. |
Do this first / do not do this yet
Do this first
- Open WooCommerce > Settings > Emails > Completed order.
- Confirm the template is enabled.
- Review order notes for the completed transition timestamp.
- Use order actions to resend the completed-order email.
Do not do this yet
- Do not assume payment success equals completed status.
- Do not debug the New order admin email; this is a customer completed-order path.
- Do not rewrite DNS if the provider never saw the email.
- Do not change all templates when only Completed order is missing.
Bad/current pattern
Order status: completed
Completed template: not checked
Processing email: sent
Provider log: no completed-order message
Action taken: changed SPF
Corrected pattern
Order status: completed via status transition
Completed template: enabled
Action: resend completed order email
Provider log: accepted customer completed-order message
Next: recipient delivery/spam check if customer still misses it