When the WooCommerce “New order” email doesn’t reach the admin, it is almost always one of three things: the order never moved to a status that triggers the email, the email is turned off or goes to the wrong address, or WooCommerce sent it and your mail server or the inbox filtered it. Since WooCommerce 10.9 you can tell which one in a few minutes from the email log in WooCommerce > Status > Logs. The lasting fix is to send through an SMTP service from an address on your own domain, with SPF and DKIM set up.
Why it happens
- The order is stuck in “Pending payment” or “Failed”. The New order email is not sent when the order is created. It fires only when the order moves from Pending payment, Failed or Cancelled to Processing, Completed or On hold. If the payment gateway never confirms the payment, no email is due.
- The email is disabled or the recipient is wrong. In WooCommerce > Settings > Emails > New order the email can be switched off, and the “Recipient(s)” field can hold an old address or a typo (a comma instead of a dot). An empty field falls back to the WordPress admin email.
- A payment or order plugin changes the status its own way. In one support thread, orders paid by American Express went to Processing and the customer got their email, but the admin didn’t. The poster found a plugin that set the status and triggered only the customer email.
- Your server sends with PHP mail and nothing proves who you are. Many hosts send through
mail()with no SPF or DKIM. Gmail, Outlook and Yahoo then drop the message or send it to spam, and nothing in WordPress shows an error. - The From address is a Gmail or Yahoo address. If WooCommerce sends “from”
yourshop@gmail.comthrough your host’s server, the receiving side sees a forged sender and rejects it. - The mail server filters it after saying “OK”. In a September 2026 thread with 15 replies, WooCommerce and FluentSMTP both logged the emails as sent, and the SMTP server answered OK, but they never arrived. Switching the SMTP provider fixed it. A “sent” log only means the message left WordPress.
How to check it yourself
- Look at the order status. Go to WooCommerce > Orders and open an order whose email you didn’t get. If it says Pending payment or Failed, the problem is the payment gateway, not email. Fix that first.
- Read the order notes. Since WooCommerce 10.9, each email WooCommerce tries to send for an order appears as a private note on the right of the order screen, saying whether it was sent or failed. No note about the New order email means it was never attempted.
- Open the email log. Go to WooCommerce > Status > Logs and choose the source
transactional-emails. Each attempt is listed as sent, failed, disabled or skipped. A failed entry usually includes the SMTP error. If you see nothing at all, check in Logs > Settings that logging is on and the level isn’t hiding INFO and NOTICE entries. - Check the email settings. In WooCommerce > Settings > Emails, open New order and confirm “Enable this email notification” is ticked and the recipient is right. You can enter several addresses separated by commas.
- Resend it once. In the order, open the Order actions box, choose Resend new order notification and click the update button. Then look at the log again: if this resend shows as sent and still doesn’t arrive, the problem is delivery, not WooCommerce.
- Try another inbox. Put a second address on a different provider in the recipient field and place a test order. If it arrives there, the first inbox or its filters are the problem.
If you’re on a WooCommerce version older than 10.9, there is no built-in email log. Install a mail logging plugin, or the free version of an SMTP plugin that includes one, to do steps 2 and 3.
How to fix it
If the order is stuck in Pending payment: check the gateway’s webhook or IPN settings and its log in WooCommerce > Status > Logs. Once the gateway confirms payments, the email starts again.
If the email is off or goes to the wrong place: turn it on, fix the recipient and save. Use an address you read every day, not the one you used when the site was built.
If the log says sent but nothing arrives:
- Send through an SMTP service. Install an SMTP plugin (WP Mail SMTP, FluentSMTP, Post SMTP and others are free) and connect it to a transactional email service or to your business mail account. Avoid your host’s PHP mail.
- Use an address on your own domain as the sender. In WooCommerce > Settings > Emails, set the “From” address to something like
orders@yourshop.com, the same one your SMTP plugin uses. If the SMTP plugin forces its own From address, keep them identical. - Set up SPF and DKIM. Your email service gives you DNS records to add at your domain registrar or at Cloudflare. Since 2024 Gmail requires every sender to have at least SPF or DKIM, and large senders also need DMARC. Add a basic DMARC record (
v=DMARC1; p=none;) so you can start receiving reports. - Send a test and read the headers. Send an order email to a Gmail address, open it, choose “Show original” and check that SPF and DKIM say PASS.
- If one email type still disappears, look at its subject and content. In the September 2026 thread, one email arrived again only after its subject and body were changed. Remove words or links that look like spam, and avoid URL shorteners.
If a plugin changes the status without the admin email: disable plugins one by one on a staging copy, keeping WooCommerce and a default theme, and place a test order each time. When the email comes back, you’ve found the plugin. Ask its developer to change the status with WooCommerce’s normal status functions so the emails fire.
Resend the emails you missed. For each order that didn’t notify you, use Resend new order notification in the order actions once delivery works.
How to stop it from happening again
Email can fail again without warning: a DNS change, an expired SMTP password or a new filter at your provider. What hurts the business is not the missing email but the paid order that nobody ships. Melopo Radar doesn’t read your email and can’t tell you whether a message arrived. What it does is count, through its plugin, the paid orders that are still in Processing and the ones in On hold (usually bank transfers nobody has confirmed), and flag them when they are older than the days you choose: 3 by default, from 1 to 14 if you make products to order. You see the alert in the Radar dashboard with how many orders and since when. On the free plan Radar shows that it found stuck orders; the list is part of the Sales at Risk add-on (9 USD a month, included in the Agency plan and in the 14-day trial without a card). If you ever mark orders as Completed after shipping, this check catches the missing email from the other side. If your store never completes orders, switch this check off. Try Radar or run the free store scanner first.
FAQ
Why does the customer get the email but the admin doesn’t? They are two different emails with different triggers and settings. Check that New order is enabled and its recipient is right. If the customer email arrives and the admin one never shows in the log, a plugin may be changing the status in a way that skips the admin email.
Does WooCommerce send the New order email when the order is created? No. It is sent when the order moves from Pending payment, Failed or Cancelled to Processing, Completed or On hold. An unpaid order sends nothing.
How do I resend the new order email in WooCommerce? Open the order, choose “Resend new order notification” in the Order actions box and click Update. WooCommerce normally sends this email only once per order; this action is the way to send it again.
The log says “sent”. Why didn’t I receive it? “Sent” means WordPress handed it to the mail server. After that, the server or the inbox can still drop it. Send through SMTP from your own domain with SPF and DKIM, and check the headers of a test message.
Can I get new order alerts without email? Yes. The WooCommerce mobile app can send push notifications for new orders. As a second net, a monitoring tool such as Radar can warn you about paid orders that have been waiting for days.


