A missing WooCommerce email can fail at several layers: the order event may not trigger, WordPress may not hand off the message, the mail service may reject it, authentication may be wrong, or the receiving inbox may filter it. A useful diagnosis follows that chain in order.
Decision snapshot
| Decision | Practical approach | Watch for |
|---|---|---|
| Confirm the event | Verify order status and recipient rules before investigating delivery. | Some emails are intentionally tied to particular status transitions. |
| Use a mail transport log | Capture message ID, recipient, handoff result, and provider response without logging sensitive content. | The WordPress success response does not guarantee inbox placement. |
| Authenticate the domain | Align the visible sender with SPF, DKIM, and DMARC policy. | Shared or mismatched senders make delivery harder to diagnose. |
Identify the exact message
Record the order, expected email type, recipient, expected trigger, actual order history, and whether other recipients or email types are affected.
Check WooCommerce configuration
Confirm the notification is enabled, recipients are correct, sender fields are valid, templates are not obsolete, and custom code has not changed triggers.
Trace WordPress handoff
Use a reputable transactional mail provider or controlled logging to determine whether WordPress created and handed off the message. Review PHP and queue errors.
Inspect provider and domain evidence
Check accepted, deferred, bounced, blocked, or suppressed status; validate SPF and DKIM; review DMARC reports; and ensure the return path is monitored.
Test content and inbox handling
Send representative plain and HTML messages to controlled mailboxes, inspect spam placement and links, then test the real order transition without repeatedly contacting a customer.
Action checklist
- Expected order transition actually occurred
- Email type is enabled and uses the intended recipient
- Template overrides match the installed WooCommerce version
- Mail transport reports an accepted or explained disposition
- SPF, DKIM, and DMARC align with the sender domain
- Bounce, suppression, and support processes have an owner
Working worksheet
Record these fields in the same working document so the decision can be reviewed and handed off:
- Order ID, email type, recipient, and trigger
- WooCommerce order note and email setting result
- WordPress handoff time and message ID
- Provider disposition, bounce code, or suppression reason
- Root cause, fix, retest result, and affected-order follow-up
Common failure patterns
- Assuming a customer typo is a sitewide delivery failure
- Using the hosting PHP mail default for critical commerce without observability
- Editing email design before proving that the message was generated and accepted
Connect this work
Order events and communications should be designed together. Read understand which state triggers each message.
Email belongs in the initial operating setup. Read review store-wide sender and test settings.
Launch evidence should include real lifecycle messages. Read include transactional delivery in release acceptance.