Before assuming something is broken, check the order status in WooCommerce > Orders. WooCommerce only sends the “Processing Order” email when an order reaches Processing status, which happens after a successful payment. Orders stuck in Pending Payment status trigger no customer email, by design. If you’re testing with a bank transfer or manual Payment Method, the order stays in Pending until you manually move it to Processing. If your live orders are landing in Pending instead of Processing, the Payment Gateway isn’t completing transactions, which is a different problem: see WooCommerce Checkout Not Working.
If the order is in Processing but the email didn’t arrive #
Start with the inbox you’re checking. Check spam. Check whether the email address on the order matches what you’re checking. If a customer says they didn’t get the email, ask them to check spam before you start debugging, because that’s where WooCommerce emails land when they’re sent by PHP Mail with no SMTP authentication. The email sent. It just didn’t reach the inbox.
If you’re not receiving admin new-order notifications either, the problem is WordPress’s mail transport, not WooCommerce specifically. WordPress uses PHP’s mail() function by default, and most hosting providers either restrict it or deliver it in a way that receiving mail servers treat as spam. The fix is an SMTP plugin. WP Mail SMTP is the most widely used. Connect it to a Transactional Email service (Mailgun, SendGrid, Postmark, or even a Gmail SMTP account) and the deliverability problem goes away.
How Loupely identifies the mail failure #
When an order is placed and WooCommerce attempts to send an email, the event goes through WordPress’s wp_mail function. Loupely’s Email Delivery capture records whether wp_mail was called for the order event and whether it returned success or failure. A diagnosis run on the order confirmation page or the admin orders page shortly after a failed email will show this data. If wp_mail was called and returned false, the problem is the mail transport: set up SMTP. If wp_mail was never called, something interrupted the WooCommerce email hook before it fired, and the capture’s Hook Execution data will show where the chain broke.
If SMTP is already set up and emails still aren’t arriving #
Verify the SMTP plugin’s own log. Most SMTP plugins include an email log that shows every send attempt and whether the Transactional Email service accepted it. If the log shows successful sends but emails aren’t arriving, the problem is on the receiving end: the customer’s mail provider is filtering or blocking them. Check that your sending domain has SPF and DKIM records configured. Your Transactional Email service will have instructions for setting these up. Without them, even authenticated SMTP sends can be filtered as spam by strict mail providers.
