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. UK shops should send through authenticated SMTP with SPF, DKIM, and DMARC aligned to the store domain.
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.
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.
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.
// Optional: log mail failures during diagnosis
add_action( 'wp_mail_failed', function( $error ) {
if ( defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG ) {
error_log( $error->get_error_message() );
}
} );
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.
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. 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.