Start with the missing notification
- Step 1
Identify who is missing which email
Separate the store owner’s New order alert from the customer’s Processing or Completed order email. Record a test order number, time and expected recipient.
- Step 2
Check settings and the status change
Open WooCommerce > Settings > Emails and the affected notification. Confirm it is enabled. Compare the order notes with the trigger table below.
- Step 3
Follow a controlled test
Use a test customer address you control. Match the order to the mail log, then inspect the provider record and inbox, including spam or quarantine.
- Step 4
Fix the layer that failed
Investigate missing triggers or errors before changing the mailer. For a rejected send, investigate the provider connection; for accepted mail, investigate delivery and filtering.
For missing form messages or password resets as well, use our WordPress not sending email guide. It covers the shared sending route beyond WooCommerce.
↑ Back to topCheck WooCommerce > Settings > Emails
Open the affected email with Manage and check Enable this email notification where available. For store alerts, verify the Recipient(s) field. For customer emails, check the billing email on the order. Correcting the store admin address alone does not correct a customer’s order address.
Also check the From name and address. Use a sender on your business domain that your mail provider authorizes. If a mailer forces a different From address, check its settings too. Save changes before repeating your test. See WooCommerce email settings.
↑ Back to topWhich order statuses trigger WooCommerce email notifications?
Core notifications depend on events and status transitions. An order existing in the dashboard does not mean every email should fire. This table assumes the relevant notification is enabled; extensions and custom code can change the behavior.
| Trigger | Recipient | |
|---|---|---|
| New order | Pending payment, Failed or Cancelled changes to Processing, On hold or Completed. | Configured store recipient(s) |
| Order on-hold | Pending payment, Failed or Cancelled changes to On hold. | Customer |
| Processing order | An eligible order moves to Processing after payment. | Customer |
| Completed order | The order is marked Completed. | Customer |
| Cancelled order | Pending payment, Processing or On hold changes to Cancelled. | Configured store recipient(s) |
| Failed order | Pending payment or On hold changes to Failed. | Store recipient(s); customer notification depends on the installed version/settings |
| Refunded order | A partial or full refund is recorded. | Customer |
| Order details / Customer note | Order details are sent manually; a customer note is added as Note to Customer. | Customer |
Sources: WooCommerce notification definitions and the New order email trigger code. Check the email list in your installed version for available notifications.
An unpaid order staying at Pending payment does not trigger the normal paid-order confirmation. Orders containing only products that are both virtual and downloadable can skip Processing. Compare the actual transition with WooCommerce order statuses before treating a missing Processing email as a failure.
↑ Back to topPayment received, but the order still says Pending payment?
Compare the gateway transaction with the order notes and payment status. A payment captured by the provider without an order update points to gateway communication. Review that gateway’s webhook or callback delivery, endpoint configuration and errors using its own documentation. SMTP does not update payment status.
This distinction comes from WooCommerce’s payment and email troubleshooting. Confirm the transaction before changing a real order’s status. Do not cycle customer orders through statuses just to force emails; other integrations may react too.
↑ Back to topTest with an email log plugin, then check the inbox
Use WP Mail Logging or your existing mailer’s logging feature to record a controlled test. Install and activate logging before the test, then inspect the timestamp, recipient, subject and error. The plugin records the WordPress handoff; a logged message does not prove inbox delivery. Logs may contain customer data, so restrict access and remove unnecessary test records.
Your WooCommerce version may also expose a transactional-emails source under WooCommerce > Status > Logs. Check its logging settings and threshold if expected entries are hidden. The WooCommerce troubleshooting documentation explains these outcomes:
| Evidence | Next check |
|---|---|
| Disabled or skipped | Enable the notification or correct the missing condition, such as its recipient. |
| No expected entry | Check the status transition, logging configuration, fatal errors and conflicts. |
| Failed handoff | Read the error and inspect the mailer or hosting connection. |
| Sent / accepted, but no email | Inspect provider events, bounces, suppression, spam and mailbox quarantine. |
A preview or SMTP test isolates part of the path. After it works, create a controlled checkout order and verify the actual customer and store notifications. If testing on staging, route mail to test inboxes and use the gateway’s test mode.
↑ Back to topSet up authenticated sending and verify SPF, DKIM and DMARC
WooCommerce uses WordPress’s mail interface; it is not a mail server. A provider connection changes how messages leave the site. WooCommerce’s sending-route guide explains why a dedicated service can be preferable to the web server’s default mail route.
- Use one active mail-routing setup.Connect a compatible SMTP or provider API plugin to a business-owned sending account. Avoid overlapping plugins that each override the sender.
- Copy the provider’s exact connection settings.Use its documented host, port, encryption and authentication method. For an API connection, use the correct API credential. Check sender verification, account restrictions and sending limits.
- Send a connection test and read the error.An authentication error, blocked connection or unauthorized sender needs a different fix. Keep credentials out of public logs and contact form messages.
The SMTP setup documentation illustrates provider connections and test messages. Choose settings for your actual provider instead of copying a generic port or password recipe.
| Record | Purpose |
|---|---|
| SPF | Authorizes servers for the envelope sender domain. Include the actual sending provider. |
| DKIM | Signs messages so recipients can verify the signature with the domain’s published key. |
| DMARC | Checks alignment of the visible From domain with a passing SPF or DKIM identity, and publishes policy/reporting instructions. |
Publish the records supplied for your domain and provider. WooCommerce’s authentication guide covers domain setup; Google’s sender guidelines explain alignment. Inspect a received message’s authentication results instead of assuming that saving DNS entries proves success.
If mail lands in spam, check those results and the sending provider’s bounce or suppression record. Also check mailbox rules and organizational quarantine. Authentication supports delivery but does not guarantee inbox placement. A message can be blocked before it reaches the spam folder, as explained in WooCommerce’s delivery guidance.
↑ Back to topCheck Action Scheduler and WP-Cron when emails are delayed
If the affected extension schedules emails or a related background task is stalled, open WooCommerce > Status > Scheduled Actions. Inspect relevant overdue Pending actions and Failed action logs by hook, group and time. A failed action elsewhere in the queue is not proof that it caused your missing email.
WP-Cron normally depends on page requests, so low traffic can delay scheduled work. Check whether it is disabled without a working server cron replacement, whether loopback requests fail and whether PHP errors stop the task. Do not assume every core order email is an Action Scheduler job.
Use the WooCommerce scheduled actions guide to investigate the runner. Review an action’s purpose before retrying it, especially if it involves payment. Do not bulk-run or delete the queue to make the warning disappear.
↑ Back to topIsolate conflicts without disrupting live checkout
If the status changes correctly but no expected email is generated, inspect WooCommerce > Status > Logs for fatal errors around the test time. Look at recent mailer, email designer, gateway, theme and custom snippet changes.
Follow WooCommerce’s conflict testing procedure on a backed-up staging copy: test with a default theme and the smallest plugin set needed to reproduce the problem. Restore plugins one at a time and repeat the same test. Control staging emails and payment connections so tests cannot reach real customers or charge them.
Back up the store before testing changes. After the repair, verify checkout, order status, store notification and customer receipt together. Our WooCommerce optimization guide covers the wider store flow.
↑ Back to topWe can do this for you
Hire Fer LLC to fix the order email flow
Fernando Marcano, founder of Fer LLC, does or reviews every job. We trace the missing notification, repair the cause within the agreed scope and document the order tests. Send your store URL, gateway, missing email type and when the problem began to get a written scope and price.
- Trace order status, gateway events and the affected notification.
- Review mailer configuration and domain authentication.
- Test the repair with actual order notifications and document the checks.
Fer LLC, Wyoming, US business · +1 310 734 8943
Fer LLC, Wyoming, US business · +1 310 734 8943
- Upwork Top Rated
- 100% Job Success
- 100+ Upwork projects
- 20+ years hands-on
- Fer LLC, a US company
- Fernando does or reviews every job
Why clients hire us
One person accountable
Fernando does or reviews every job. No account managers between you and the work.
Fixed written quote
Scope and price in writing before any work starts. Rework on our mistakes is on us.
Bilingual EN/ES
Fer LLC (Wyoming), working in English and Spanish. Replies the same business day, 9 AM to 9 PM ET, at +1 310 734 8943.
A record you can check
Upwork Top Rated with 100% Job Success, plus published projects in the portfolio.
Frequently asked questions
Why do I receive the admin email but my customer gets nothing?
The store alert and customer confirmation are different notifications. Check the customer email’s enabled setting, billing address and required status transition. Then compare the logs and provider events for that specific message.
Will installing SMTP fix every WooCommerce email problem?
SMTP can repair an unreliable sending route. It cannot enable a disabled notification, correct a missing recipient or fix a payment gateway that never updates the order. Diagnose the trigger before replacing the mailer.
Why does a test email arrive but the order confirmation does not?
The connection test bypasses part of the order workflow. Test checkout with a controlled customer address, then compare the order transition and actual notification log. A working SMTP test alone does not verify WooCommerce order emails.
Can you fix WooCommerce emails without taking the store offline?
We can investigate settings and logs first, then use staging for conflict tests and code changes. The scope depends on the cause and your hosting setup. Any step that could interrupt checkout should be planned before it is applied.
Can you resend the missing customer emails after the fix?
We can review which messages were missed and whether the installed tools support resending them. Confirm the recipient and current order details first, then resend only the intended notifications to avoid confusing customers.
How much does a WooCommerce email repair cost?
We quote the repair in writing after reviewing the store, affected notification and available logs. A gateway callback failure, domain authentication issue and plugin conflict require different work. Send the details through the contact form so we can define the scope.
What should I send you to start the diagnosis?
Send the store URL, payment gateway, affected email type, when the problem began and whether customers, staff or both are affected. Include a redacted error if available. Do not send passwords, API keys or customer payment details through the form.
Keep the order record, mailer evidence and recipient confirmation together. That gives your team a repeatable check after the next gateway or plugin update.