Customer receipts and administrator order alerts are separate WooCommerce emails with different triggers and recipients. A delivered customer message proves part of the mail route works, but the staff notification may be disabled, misaddressed or rejected by a corporate gateway.
Compare both notifications from one controlled order.
Name the missing email
Determine whether staff expect New order, Cancelled order, Failed order or a custom extension notification. Record the test order ID, status history and time.
Check that the order reached the trigger associated with that email. Customer Processing order mail can run while a customised staff hook does not.
Do not change payment status without understanding its fulfilment effect.
Verify recipients and enabled state
Open the relevant WooCommerce email setting and confirm it is enabled. Review the complete recipient list, separators and spelling.
An administrator WordPress account email is not automatically the same as the New order recipient. Check explicit configuration and any environment constants or filters.
Use monitored role mailboxes rather than an employee address that may have been retired.
Check aliases and distribution groups
The configured address may be a shared mailbox, alias or group with restrictions on external senders. Confirm it exists, accepts messages from the website and does not forward back to another listed recipient.
Ask the authorised mail administrator to inspect gateway quarantine and transport rules. The user’s Junk folder is not the whole mail system.
Avoid adding a personal address as an undocumented permanent workaround.
Inspect recipient filters
Themes and plugins can modify WooCommerce recipients using hooks. Search custom code and snippets for filters tied to email recipient or notification classes.
Conditional code may remove staff recipients on certain products, languages or order statuses. Log only the email class and synthetic order ID during testing.
Keep a rollback and avoid exposing customer addresses in debug output.
Compare the generated messages
Use a protected WordPress mail log to find both the customer and staff message by test time. If only the customer message exists, investigate WooCommerce configuration and hooks.
If both exist, compare From, recipient, subject, size and attachments. An admin email may include a PDF or internal link that triggers different provider or gateway policy.
Do not log full order bodies longer than necessary.
Follow provider status per recipient
Search the SMTP or transactional provider separately for the staff address. Note whether it accepted, deferred, bounced or suppressed the message.
A company address that hard-bounced previously may remain suppressed even after the mailbox is restored. Remove suppression only after fixing the cause.
Inspect the delivered customer header for authentication, but verify the admin route directly as policies differ.
If several staff addresses belong to the same distribution group, trace expansion before adding direct copies that could create duplicate fulfilment alerts.
Provide operational resilience
Staff should have an authorised WooCommerce order view and a documented process that does not depend solely on inbox alerts. Limit access and use dashboard filtering or approved integration rather than emailing exports.
Set an alert when paid orders exist without expected processing or when transactional email fails. Avoid creating two uncoordinated fulfilment queues.
Review missed orders during the incident window.
Verify one alert per order
After repair, place a synthetic order and confirm the correct staff email, customer email, provider results and final mailboxes. Check that one event creates only the intended notifications.
Test the main statuses and payment routes, plus Reply-To and attachments. Retire temporary recipients.
Request urgent repair when staff may miss paid orders or recipient filters are complex. Share order ID, email class and redacted provider result—never customer details, card data or credentials.