Fixing WooCommerce order emails not sending

How to troubleshoot and fix WooCommerce order notification emails that are not sending, including email settings, order status triggers, template issues and SMTP configuration.

Fixing WooCommerce order emails not sending

If your WooCommerce store isn't sending order confirmation emails, or customers aren't receiving notifications when their order status changes, you may not realise there's a problem until someone contacts you asking where their receipt is.

Missing order emails erode customer trust, generate unnecessary support enquiries and can make your store look unprofessional. Customers expect an immediate confirmation when they place an order, and silence after paying feels wrong.

WooCommerce order emails work differently from general WordPress emails like contact form submissions or password resets. They're triggered by specific order status changes and are controlled by WooCommerce's own email settings, which adds an extra layer of configuration on top of WordPress's standard email handling.

This means that even if your contact form emails are working fine, WooCommerce order emails can fail independently. If all emails from your site are failing (not just WooCommerce), the underlying cause is likely your site's general email setup. See our guide to fixing WordPress contact form email delivery for the SMTP and DNS configuration steps, then return here to check the WooCommerce-specific settings.

Check WooCommerce email settings

WooCommerce manages its own set of email notifications, each tied to a specific order event. Go to WooCommerce → Settings → Emails to see the full list.

Each email type (new order, processing order, completed order, refunded order and so on) can be individually enabled or disabled, and each has its own recipient and template settings. Click Manage on each email type you expect to be sending and check that it's enabled, that the recipient address is correct (for admin-facing notifications like "new order") and that the "From" name and address are set to something on your own domain rather than a free email address like Gmail or Outlook.

Pay particular attention to which email goes to whom. Some WooCommerce emails are sent to the customer (like "processing order" and "completed order"), while others are sent to the store administrator (like "new order"). If you're not receiving new order notifications but your customers are getting their confirmations, the admin email address may simply be wrong.

Verify order status transitions

This is one of the most commonly overlooked causes of missing WooCommerce emails. Each email notification is triggered by a specific change in order status, not by the act of placing an order itself.

For example, the "processing order" email is sent when an order moves from "pending payment" to "processing" status. This typically happens automatically when your payment gateway confirms that payment has been received. If the payment confirmation doesn't come through correctly, the order stays in "pending payment" status and the "processing" email never fires.

Check your recent orders under WooCommerce → Orders and look at their statuses. If orders are stuck on "pending payment" when they should have moved to "processing," the problem is with the communication between your payment gateway and WooCommerce rather than with the email system itself.

Similarly, the "completed order" email only sends when an order is marked as "completed." For physical products, this usually requires someone to manually change the status (or for a shipping plugin to do it automatically). If you're waiting for customers to receive a "completed" email but the orders are still sitting in "processing" status, that's expected behaviour rather than an email failure.

Check payment gateway communication

If orders are getting stuck in "pending payment," your payment gateway may not be communicating payment confirmations back to WooCommerce correctly.

Most payment gateways use a callback system to notify WooCommerce when a payment has been processed. This works by the gateway sending a request to a specific URL on your site after processing the payment. If this URL is wrong, blocked by a firewall or unreachable for any reason, WooCommerce never receives the payment confirmation, the order status doesn't update and the corresponding emails don't send.

Check your payment gateway's settings (both in WooCommerce and in the gateway provider's own dashboard) for a notification URL, callback URL or similar setting. Make sure it points to the correct URL for your site. Your gateway's documentation will specify what this URL should be.

If you recently changed your domain, moved your site or switched to HTTPS, the callback URL may still be pointing to the old address.

Check for plugin conflicts

Plugins that modify WooCommerce emails, add custom email templates, handle email delivery or manage SMTP can interfere with WooCommerce's email system.

If you've recently installed or updated a plugin that touches email functionality, try deactivating it temporarily and placing a test order. If the email arrives, the plugin was the cause.

Caching plugins can also interfere with WooCommerce emails in less obvious ways. If WooCommerce pages or the internal request endpoints that WooCommerce uses to process orders are being cached, order processing can behave unexpectedly. Make sure your caching plugin excludes WooCommerce pages (cart, checkout, my account) and WooCommerce's internal endpoints from caching.

Set up email logging

If you're not sure whether the problem is with emails being generated or with emails being delivered, an email logging plugin can help you narrow it down. These plugins record every email that WordPress attempts to send, along with the status and any error messages.

If WooCommerce emails appear in the log as "sent" but aren't arriving in the inbox, the problem is with email delivery. Your SMTP configuration, DNS authentication records or the recipient's spam filter may be blocking or filtering the messages.

If the emails don't appear in the log at all, WooCommerce isn't generating them in the first place. This points to one of the earlier sections: a disabled email type, an order status that isn't transitioning correctly or a plugin conflict that's preventing the email from being created.

Check your SMTP configuration

WooCommerce uses the same email sending mechanism as the rest of WordPress. If your site isn't configured to send email through a proper SMTP server, all WordPress emails (including WooCommerce order notifications) will be unreliable.

By default, WordPress sends email using PHP's built-in mail() function, which is unauthenticated and frequently blocked or deprioritised by hosting providers. Emails sent this way often end up in spam folders or never arrive at all.

If you haven't already set up SMTP and email authentication DNS records (SPF, DKIM, DMARC), follow the steps in our contact form email delivery guide. The SMTP and DNS setup described there applies to all emails your WordPress site sends, including WooCommerce notifications.

Check email template customisations

If you or your theme have customised WooCommerce's email templates, outdated or broken template overrides can prevent emails from rendering correctly or from sending at all.

WooCommerce email templates are PHP files that control the layout and content of each email type. Your theme can override these templates by placing customised versions in a woocommerce/emails/ directory within the theme folder. If the original templates have been updated in a newer version of WooCommerce but your overrides haven't been updated to match, the emails may break.

Check WooCommerce → Status → System Status for any email template overrides that are flagged as outdated. If you see warnings, you'll either need to update the overrides to match the current WooCommerce version or remove them so WooCommerce falls back to its default templates.

You can test whether template overrides are the problem by temporarily renaming your theme's woocommerce/emails/ directory (for example, to emails-disabled/). WooCommerce will use its default templates instead. If emails start working, the custom templates need updating.

Test with a real order

After making any changes, place a genuine test order through the full checkout flow. Use your payment gateway's test or sandbox mode if available, or place a small real order.

Check that emails arrive for each stage of the order lifecycle: order received (customer), new order (admin), processing (customer) and completed (customer, after manually marking the order as complete).

Send test orders to an email address at a major provider (Gmail, Outlook) rather than an address on your own domain, since emails between addresses on the same server can bypass normal delivery checks and give you a false positive.

Need help with WooCommerce emails?

If order emails still aren't arriving after working through these steps, my emergency WordPress support service covers WooCommerce email configuration, SMTP setup, payment gateway communication issues and email deliverability troubleshooting.

Adam Greenough

Written by Adam Greenough

Freelance web developer with over 15 years of experience building and fixing WordPress sites. I work with businesses across the UK on everything from emergency support to full builds.

Need hands-on help?

I offer emergency WordPress support with a no-fix, no-fee guarantee.