Email troubleshooting

In some cases, issues can arise that prevent your WooCommerce store from sending emails, or your shoppers from receiving them. This guide aims to tackle common email problems related to WooCommerce stores, with clear steps to diagnose and resolve these issues.

By default, WooCommerce sends mail using the wp_mail() function, a core function of WordPress. This means that in many cases, if email is not being sent, then the issue is not with WooCommerce itself generating the email, but with the core email function on your web host — or another step in the process.

Often, email issues are deliverability issues, where your server is sending the email, but it’s not being received.

Whatever the cause, having email delivery issues with your WooCommerce store can be frustrating for both you and your customers.

Related documents for additional reference:

Verifying your email configuration

↑ Back to top

I am getting orders, but no emails are being sent

↑ Back to top

First, double-check that an email should be getting sent, before proceeding to more complex troubleshooting. 

Check whether you’re seeing one of the common cases below:

  • If orders haven’t been paid and are still in the Pending Payment status, no email will be triggered.
  • If the relevant email is disabled in your email settings, no email will be sent.

Confirm whether orders are pending payment

↑ Back to top

If your new orders have a Pending Payment status, no email will be sent.

The payment wasn’t successful

Orders Pending Payment can occur when the payment process isn’t completed successfully. These can be orders where the customer selected to place their order but abandoned the external payment page (e.g., PayPal) or had their credit card transaction declined. The exact behavior varies depending on the payment gateway attempted for the order.

If payment was successful

If you have orders with the Pending Payment status, and you have received payment for them, this means orders are not being updated. This could indicate that the payment gateway is having trouble communicating with your site. In this case, you are not looking at an email issue; you are looking at an issue with your payment gateway. Review your payment gateway’s documentation for troubleshooting steps, and contact their support team if necessary. 

Note: If you are still using the deprecated, unsupported PayPal Standard payment gateway and encounter successful PayPal payments that do not accurately change the order status, please review our PayPal Standard troubleshooting page for help.

An error prevented the order status change

During order processing, it’s possible for a conflict with your theme, custom code, or another plugin on your site to produce an error before the order status change occurs. If an error prevents the order status change, no email will be sent.

If you see this happening on your site, to find out what may be causing it, you can:

Check your email settings

↑ Back to top

Orders that are successfully updated to Processing status should generate an email if the email notification is enabled in your WooCommerce email settings.

To check whether emails are enabled:

  • Navigate to your site’s WP Admin dashboard.
  • Visit WooCommerce > Settings > Emails.
  • Select the relevant email template. 
  • Ensure the Enable this email notification box is ticked for order notifications 
  • If the email is enabled, but not being sent. This is likely the result of a conflict. To find out what may be causing this, you can:
    • Check WooCommerce logs for fatal errors.
    • Rule out conflicts by disabling extensions/plugins/themes other than WooCommerce itself and a default theme, and trying to replicate the issue in a default state.
Double check that the email is enabled in the settings

Check if emails are being sent, but not received

↑ Back to top

If emails are enabled and paid orders are correctly updated to the Processing status, there could be an issue delivering the email. This could mean a spam blocker has classified your emails as spam and stopped them. First, check whether WooCommerce generated the email and handed it to your site’s mail system.

WooCommerce automatically logs each transactional email attempt. You can use these logs to see whether WooCommerce sent the email, whether the email failed before leaving your site, or whether WooCommerce did not try to send it.

To check WooCommerce transactional email logs:

  • Create a test order or trigger the email you want to check.
  • Go to WooCommerce > Status > Logs.
  • Open or filter the log source named transactional-emails.
  • Review the entry for the email type and related order, product, or customer.

The log records the outcome for each WooCommerce transactional email:

  • Sent: WooCommerce handed the email to the mail system successfully. The log entry is recorded at INFO.
  • Failed: WooCommerce tried to send the email, but your site’s mail-sending process returned an error. The log entry is recorded at WARNING and usually includes the failure reason reported by WordPress or the mail service. In rare cases, if another plugin’s email fails at nearly the same time, the failure status is still reliable but the failure reason may describe the other email attempt.
  • Disabled: The email type is turned off in WooCommerce > Settings > Emails. The log entry is recorded at NOTICE.
  • Skipped: WooCommerce did not send the email because a required condition was missing, such as no recipient. The log entry is recorded at NOTICE.

For order-related emails, sent and failed attempts are also added as private order notes. Disabled and skipped emails are only recorded in the log, not as order notes.

These logs follow your store’s existing WooCommerce log settings, including storage, retention, and log level threshold. If you do not see expected entries, check WooCommerce > Status > Logs > Settings to confirm logging is enabled and the threshold is not hiding INFO or NOTICE entries.

Privacy note: WooCommerce does not write raw customer email addresses to the transactional email log. Recipients are shown as the matching WordPress username or guest, and email addresses found in failure messages are redacted.

If you need to inspect emails that are not WooCommerce transactional emails, check your SMTP provider logs or use a mail logging plugin.

If the email was sent, but not received, there are a few steps that can be taken:

  • Make sure you’re using an email address that matches your site’s domain in the From address field in WooCommerce > Settings > Emails.
    • Using your @gmail.com, @yahoo.com (or similar) public domain email address is likely to cause emails to land in spam folders or be blocked due to a mismatch between the declared sender (servers of Gmail, Yahoo, etc.) and the actual sender (your server).
    • If your personal email is being used as the From address, update this field with a registered email address that uses your website’s domain name.
  • Sign up for an account with a dedicated SMTP provider that will send the email for you. An average site can usually stay within free usage. This will be more reliable than your own server’s mail-sending function.
  • Check whether your site’s emails have proper authentication in place. This can prevent your emails from being spam-filtered.

If the email failed, was disabled, was skipped, or was not logged, use the log entry and order note to decide the next step. Disabled emails should be enabled in WooCommerce > Settings > Emails. Skipped emails usually need the missing condition fixed, such as adding a recipient. Failed emails often point to the hosting or mail-sending setup. If no transactional email entry is created when one should be, check for fatal errors and conflicts.

To find out what may be causing this, you can:

  • Check WooCommerce logs for fatal errors.
  • Rule out conflicts by disabling extensions/plugins/themes other than WooCommerce itself and a default theme, and trying to replicate the issue in a default state.

Admin emails and password reset emails

↑ Back to top

The transactional-emails log is for WooCommerce transactional emails. WordPress password reset emails and other WordPress admin emails might not appear there. For those emails, check your SMTP provider logs or use a mail logging plugin. The domain, SMTP, and email authentication steps above still apply.

Questions and support

↑ Back to top

Do you still have questions and need assistance? 

This documentation is about the free, core WooCommerce plugin, for which support is provided in our community forums on WordPress.org. By searching this forum, you’ll often find that your question has been asked and answered before.

If you haven’t created a WordPress.org account to use the forums, here’s how.

  • If you’re looking to extend the core functionality shown here, we recommend reviewing available extensions in the WooCommerce Marketplace.
  • Need ongoing advanced support or a customization built for WooCommerce? Hire a Woo Agency Partner.
  • Are you a developer building your own WooCommerce integration or extension? Check our Developer Resources.

If you weren’t able to find the information you need, please use the feedback thumbs below to let us know.

Related Products

Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.

Print USPS, UPS, DHL, and FedEx labels right from your WooCommerce dashboard and instantly save on shipping. WooCommerce Shipping is free...

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.