Skip to content

WooCommerce troubleshooting

WooCommerce not sending emails? Find the break and fix it

If WooCommerce is not sending emails, check that the notification is enabled, the recipient is correct and the order reached the status that triggers it. Then trace a test order through the email log, sending provider and inbox to find whether the failure is in the trigger, sending connection or delivery.

Start here
Settings and order status
Trace the failure
Order, email log, provider
Authenticate
SMTP and your domain
Verify the fix
Actual order emails received

Written and reviewed by Fernando Marcano · October 20, 2026 · Markdown version of this page

Start with the missing notification

  1. 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.

  2. 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.

  3. 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.

  4. 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 top

Check 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 top

Which 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.

Core order email triggers and recipients
EmailTriggerRecipient
New orderPending payment, Failed or Cancelled changes to Processing, On hold or Completed.Configured store recipient(s)
Order on-holdPending payment, Failed or Cancelled changes to On hold.Customer
Processing orderAn eligible order moves to Processing after payment.Customer
Completed orderThe order is marked Completed.Customer
Cancelled orderPending payment, Processing or On hold changes to Cancelled.Configured store recipient(s)
Failed orderPending payment or On hold changes to Failed.Store recipient(s); customer notification depends on the installed version/settings
Refunded orderA partial or full refund is recorded.Customer
Order details / Customer noteOrder 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 top

Payment 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 top

Test 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:

Interpreting email evidence
EvidenceNext check
Disabled or skippedEnable the notification or correct the missing condition, such as its recipient.
No expected entryCheck the status transition, logging configuration, fatal errors and conflicts.
Failed handoffRead the error and inspect the mailer or hosting connection.
Sent / accepted, but no emailInspect 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 top

Set 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.

What domain authentication checks
RecordPurpose
SPFAuthorizes servers for the envelope sender domain. Include the actual sending provider.
DKIMSigns messages so recipients can verify the signature with the domain’s published key.
DMARCChecks 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 top

Check 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 top

Isolate 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 top

We 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.

Have us trace and repair your missing order emails

We check order triggers, repair the mailer or domain authentication as needed, and verify actual order notifications. Send your store URL, payment gateway, missing email type, when it stopped and a redacted error if available. We confirm scope and price in writing before work starts. Keep passwords and API keys out of the form.

Fer LLC, Wyoming, US business · +1 310 734 8943

Hire us to fix WooCommerce emails