WooCommerce Emails Not Sending – Full Fix Guide

WooCommerce emails not sending

WooCommerce emails are one of the most critical parts of any online store. From order confirmations to password reset messages, every customer interaction depends on email communication. When these emails stop working, it directly affects customer trust, order management, and overall store credibility.

Recently, I faced a very confusing and frustrating issue where WooCommerce completely stopped sending emails. Even more strange was the fact that everything looked fine on the surface — SMTP was connected, email settings were enabled, and no visible error was shown. Still, no emails were delivered.

This article explains the real cause behind this problem, why WooCommerce showed emails as disabled in the overview but enabled inside settings, and how the issue was finally resolved permanently.


The Initial Problem: WooCommerce Emails Not Sending

The issue first appeared when customers started reporting that they were not receiving order confirmation emails. At the same time, the admin was also not getting new order notifications.

Soon after that, another serious issue appeared. When users tried to reset their password, WooCommerce did not send the password reset email. This made it impossible for customers to log back into their accounts.

At this stage, it was clear that WooCommerce emails were not working at all.

First Troubleshooting Step: SMTP Configuration

Like most WooCommerce store owners, the first assumption was that this was an SMTP problem.

I installed the WP Mail SMTP plugin and connected it using an alternative SMTP provider. The sender email was verified properly, and all required DNS records were already added. Even after doing everything correctly, the problem remained the same.

Some test emails failed, and WooCommerce transactional emails still did not trigger.

This confirmed one important thing:
SMTP was not the real cause of the problem.

Hosting Provider Investigation

After SMTP did not solve the issue, I contacted the hosting provider.

They checked the server logs and confirmed that the server was capable of sending emails. According to them, the issue was most likely coming from WordPress itself — either from a plugin or from custom code.

Their response was simple but important:

“There might be a plugin conflict on your website.”

At that time, I assumed this would be a normal plugin conflict. But the real reason turned out to be much deeper.

Discovering the Issue Inside WooCommerce Email Settings

Next, I went to:

WooCommerce → Settings → Emails

This is where things started to make sense.

On the email overview screen, several important emails were showing a cross icon, which means disabled. These included new order emails, customer processing order emails, and password reset emails.

WooCommerce-emails email sending issue

Interestingly, these were the exact emails that were not being delivered.

However, when I clicked the Manage button for any of those emails, something strange appeared.

Inside the individual email settings page, the email was clearly marked as enabled.

enabled email

So now there was a contradiction.

On the overview page, WooCommerce said the email was disabled.
Inside the email itself, WooCommerce said it was enabled.

This mismatch clearly indicated that WooCommerce’s default email system was being overridden.

Understanding What Was Really Happening

WooCommerce email status is not controlled only by the checkbox you see in settings.

Internally, WooCommerce uses filters to decide whether an email should be sent or not. These filters can be modified by plugins, themes, or custom code.

If any plugin uses a filter and returns false, WooCommerce will treat that email as disabled — even if the admin panel shows it as enabled.

That is exactly what was happening here.

Some code on the website was forcefully disabling WooCommerce emails in the background.


Temporary Debug Fix Using functions.php

To confirm this theory, I added a small piece of code inside the theme’s functions.php file to force-enable all WooCommerce emails.

After adding the code, all emails immediately started working again. Order emails, password reset emails, and admin notifications began sending normally.

At the same time, the WooCommerce email overview page also started showing all emails as enabled.

This confirmed one thing with 100% certainty:

Some plugin or custom code was disabling WooCommerce emails using filters.

Additional Read: How to upgrade mysql in WHM

The Code That Fixed the Issue Temporarily

The following code was used to override the disabled filters and force-enable WooCommerce emails:

add_filter( 'woocommerce_email_enabled_new_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_cancelled_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_failed_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_processing_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_completed_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_on_hold_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_refunded_order', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_invoice', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_note', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_reset_password', '__return_true', 999 );
add_filter( 'woocommerce_email_enabled_customer_new_account', '__return_true', 999 );

The reason this worked is because the priority value 999 overrides lower-priority filters added by other plugins.

This was not meant to be a permanent solution, but it helped reveal the real cause.

Finding the Actual Plugin Conflict

After deeper investigation, the real issue came to light.

One of my colleagues had previously installed a custom plugin. Inside that plugin, similar email filters were added — but instead of returning true, they were returning false, which disabled all WooCommerce emails globally.

Later, the plugin was deactivated, but parts of the logic still affected email behavior.

Once that plugin was completely removed and all related scripts were deleted, I also removed the forced code from functions.php.

After that, WooCommerce started behaving normally again.

All emails showed enabled in the overview, and all transactional emails were delivered without any issue.

Why This Issue Is Dangerous

This issue is dangerous because:

  • SMTP appears to be broken even when it is not
  • Email settings appear enabled but do not work
  • No error message is shown
  • Store owners waste hours debugging
  • Customers stop receiving important notifications

Many users keep changing SMTP providers, email IDs, and DNS records without realizing the real problem lies in WooCommerce email filters.

WooCommerce Emails Going to Spam

Even after fixing delivery, some store owners face spam issues.

This usually happens due to improper sender email configuration. Always use a domain-based email address such as:

orders@yourdomain.com

Never use Gmail or Yahoo as the sender email inside WooCommerce.

Proper SPF, DKIM, and DMARC records must also be added to ensure Gmail and other providers trust your emails.

Best Practices for WooCommerce Email Settings

To avoid email issues in the future:

  • Avoid unknown email control plugins
  • Do not add random snippets without documentation
  • Always test emails after installing new plugins
  • Keep WooCommerce updated
  • Use only one SMTP plugin at a time
  • Remove unused custom plugins completely

These small steps prevent major email failures.

Other Possible Reasons Why WooCommerce Emails Are Not Sending

Apart from the issue explained in this case, WooCommerce emails may also fail due to several common technical reasons. Sometimes the emails are actually triggered by WooCommerce, but they never reach the recipient because of configuration or server-level problems. In such cases, no clear error is shown inside WordPress, which makes the issue difficult to identify.

Some of the most common reasons include:

  • Using a free email address (Gmail, Yahoo, Outlook) as the “From Email” instead of a domain-based email
  • Missing or incorrect SPF, DKIM, or DMARC DNS records
  • Hosting provider blocking or limiting outgoing emails
  • WP-Cron not running properly, which prevents background email actions
  • Caching or optimization plugins interfering with WooCommerce hooks
  • Security or firewall plugins blocking transactional emails

In many situations, multiple small issues combine together and cause WooCommerce emails to stop working. That’s why it’s always recommended to verify email settings, SMTP configuration, DNS records, and plugin behavior before assuming that WooCommerce itself is broken.

Final Conclusion

If WooCommerce emails are not sending and the overview page shows them as disabled while the manage page shows enabled, the problem is almost always caused by custom filters added by a plugin or theme.

SMTP is rarely the real cause in such cases.

By identifying and removing the conflicting plugin and clearing custom email filters, WooCommerce email functionality can be fully restored.

This issue may look small, but it can silently break your entire store communication system.

If you ever face this again, remember — always check the email overview status and investigate filters before blaming SMTP.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top