WooCommerce order emails not sending: causes and fixes
From the customer’s side, an order without a confirmation email looks like an order that did not happen. They order again, contact support, or dispute the charge. Email is part of the checkout, even though it happens after it.

Why emails do not arrive
By default WordPress sends mail through the server’s PHP mail function, which many hosts restrict and many inboxes treat as spam. Missing SPF, DKIM and DMARC records for your domain make it worse.
Emails can also be disabled in WooCommerce → Settings → Emails, delayed because they are queued in Action Scheduler, or never triggered because the order status never changed — the problem in orders stuck on pending.
Customers get nothing, but the admin does (or the reverse)
Each WooCommerce email is switched on and off on its own under WooCommerce → Settings → Emails, and each has its own recipient. "New order" goes to the address in that email’s settings, not to the customer; "Processing order" and "Completed order" go to the customer. If only one side gets mail, compare those two rows first.
Customer emails are sent when the order status changes. An order that stays on pending payment, because the gateway never confirmed it, never sends "Processing order". If the admin copy arrives and the customer copy does not, also check the customer’s spam folder: mail sent through the server’s own PHP mail is the kind most providers filter.
Making them reliable
Send through a transactional email service over SMTP or API, and set up SPF, DKIM and DMARC for the sending domain. Log every email sent so you can confirm what happened to a specific order.
The WooCommerce email FAQ covers the common settings and troubleshooting steps.
Checking it
Place a test order and confirm the customer and admin emails arrive, in the inbox and not spam, after any change to mail settings, DNS or hosting.
When real order placement is enabled for a checkout monitor, the test order it creates is also a regular check that your order emails still go out.
Check your own store now with the free WooCommerce checkout checker: it walks the checkout in a real browser and shows the step where it stops.
Common questions
Why are WooCommerce emails not sending?
The server’s PHP mail is blocked or lands in spam, the email type is disabled in WooCommerce → Settings → Emails, or Action Scheduler is not sending queued emails.
How do I make WooCommerce emails reliable?
Send through an SMTP or email API service with SPF, DKIM and DMARC set on your domain, and log every email sent.
Why does the admin get the email but the customer does not?
The customer email is disabled, filtered by the customer’s provider, or the order never reached the status that triggers it, such as processing.