New 24/7 monitoring and daily cloud backups now included in every Shield Pro plan.

Emails

Learn how to fix WooCommerce order emails not sending.

Order emails are the receipt customers expect and the alert your team relies on. When WooCommerce stops sending them, orders still exist in admin but buyers think payment failed. Most cases are SMTP misconfiguration or emails landing in spam, not WooCommerce itself.

Time: 20-35 minutes Level: Beginner
Neil McNaught, founder of BugShield and WordPress author
Written by
Written by
Updated
Updated

What this problem looks like

WooCommerce triggers emails on order status changes. If processing emails never arrive, either WordPress never called wp_mail, the host rejected the message, or the recipient filtered it.

Shared hosting PHP mail() has poor deliverability. Shops should send through authenticated SMTP with SPF, DKIM, and DMARC aligned to the store domain.

Step 1: Confirm which emails are missing

New order emails go to the admin. Processing and completed emails go to customers. Failed order and cancelled templates are easy to overlook because they are disabled by default.

  • No admin new order alert: check recipient address under email settings.
  • No customer receipt: check processing email is enabled.
  • Some orders only: gateway may not be marking orders processing.

Step 2: WooCommerce email settings checklist

Open WooCommerce → Settings → Emails. Ensure each template is enabled. Confirm the from name and from address use your domain, not a generic [email protected] address that fails SPF checks.

Step 3: Configure SMTP properly

Use WP Mail SMTP, FluentSMTP, or your host's recommended SMTP plugin. Authenticate with TLS on port 587 or 465. Send a test mail to mail-tester.com and aim for a score above 8/10 before going live.

Add this snippet to functions.php in a child theme or a snippet plugin only during diagnosis:

php
add_action( 'wp_mail_failed', function( $error ) {
	if ( defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG ) {
		error_log( $error->get_error_message() );
	}
} );

Step 4: DNS records for deliverability

Add SPF, DKIM, and DMARC records your SMTP provider supplies. Without them, Gmail and Outlook often silently junk store emails. Changes can take up to 48 hours to propagate.

Step 5: Cron, queues, and defer transactional email plugins

Some SMTP plugins queue mail. If WP-Cron is disabled without a real system cron replacement, queued emails never send. Add define( 'DISABLE_WP_CRON', true ); to wp-config.php only when you configure real server cron to hit wp-cron.php. Plugins that defer WooCommerce emails until checkout completes can fail when AJAX checkout breaks.

When to stop DIY and hire help

Hire a developer when emails work in tests but not for real orders, when you need custom templates with dynamic blocks, or when Microsoft 365 and Google Workspace routing is complex. BugShield fixes WooCommerce email delivery and DNS alignment at a confirmed price without hourly billing surprises.

Questions answered

WooCommerce order emails not sending FAQs

Answers about email settings, order triggers, SMTP, delivery logs, domain authentication, spam placement, and safe testing.

Why are WooCommerce emails going to spam?

Missing SPF/DKIM, sending from a domain you do not control, or shared IP reputation on cheap hosting. Use authenticated SMTP on your shop domain.

Do I need an SMTP plugin for WooCommerce?

Strongly recommended on production shops. PHP mail() is unreliable for transactional order mail.

Can I resend order emails manually?

Yes. Open the order in wp-admin, use the order actions dropdown to resend processing or completed emails, or install a resend plugin for bulk cases.

Why did emails stop after a migration?

SMTP credentials, cron URL, or from-address domain often still point at the old host. Reconfigure mail plugins after every migration.

What causes WooCommerce order emails not to send?

The email may be disabled, use the wrong recipient, never receive its order-status trigger, fail in WordPress mail, or be rejected or filtered after sending.

How do I check whether a WooCommerce email is enabled?

Open WooCommerce email settings, select the missing message, and confirm it is enabled with the expected recipient, subject, and template.

Which order status triggers WooCommerce emails?

Different messages use different transitions, such as processing, completed, cancelled, failed, or refunded. Review the order notes to confirm the expected transition occurred.

How do I tell whether wp_mail sent a WooCommerce email?

Use a mail log or SMTP provider log to distinguish WordPress generation from delivery. A successful send call does not guarantee inbox placement.

Do SPF, DKIM, and DMARC affect WooCommerce order emails?

Yes. Correct domain authentication helps receiving servers trust the sender. Also confirm MX health, sender alignment, and that the From address belongs to an authorised domain.

How should I test WooCommerce order emails after a fix?

Place controlled orders through the relevant statuses and verify customer and administrator messages, content, links, inbox or spam placement, and delivery time.

Would you rather a developer fixed it?

Request a fix at a confirmed price and speak directly with the BugShield developer working on your site.

Request a Fix