WooCommerce Sending Duplicate Order Emails? Causes & Fix
If every order sends two of the same email — to the customer, to you, or both — WooCommerce is almost certainly being asked to send it twice rather than sending it wrong. Here's how to find what's asking twice.
Last updated: 16 Jul 2026 · ~6 min read
The most common cause is the same order status transition firing twice — the gateway's browser return and its webhook both push the order to Processing, so the email hook runs once for each. Open the order and read its order notes: two "status changed" notes for the same jump is your proof. Second most common: two SMTP or transactional email plugins are both sending.
What a "duplicate" order email actually is
WooCommerce doesn't send order emails on a timer. Each one is hooked to a status transition — pending to processing, processing to completed, and so on. The email fires when the transition fires. So two identical emails almost always means two transitions, or two things sending the same one transition's mail.
From the customer's side it looks like your store is buggy or spamming them. From your side, the order itself is usually completely fine — right total, right status, one payment. That's the useful clue: this is a notification fault, not an order fault.
The most common causes (most likely first)
- The same status transition fires twiceThe gateway's redirect back to your store and its webhook both mark the order paid, moments apart. The order notes show the same status change logged twice, seconds apart. The most common cause by a distance.
- Two plugins are both sending the mailTwo SMTP plugins active at once (say WP Mail SMTP and Post SMTP), or a transactional/marketing plugin mirroring WooCommerce's own templates. Tell: the two copies are not byte-identical — different footer, different formatting, or different From name.
- The order bounced through statuses more than onceProcessing → On hold → Processing, or a manual status change and an automated one fighting. Each landing on Processing legitimately fires the Processing email. Order notes show the full round trip.
- The same mailbox is listed twice as a recipientOnly affects admin emails (New order, Cancelled, Failed). The
Recipient(s)field takes a comma-separated list, and often the same inbox is in there twice — directly and via an alias that forwards to it. - It isn't a duplicate — it's two different emails"New order" (to you) and "Processing order" (to the customer) are separate templates that fire on the same transition. Some gateway plugins also send their own receipt. Compare the two subject lines before you go hunting.
- A snippet or plugin triggers the email manuallyCustom code calling the email's trigger directly, on top of the hook that already fires it. Tell: the duplication survives deactivating every SMTP plugin, and stops when you switch to a default theme with only WooCommerce active.
Where to look first
- Compare the two emails side by side. Different subject lines? They're two different templates doing their job — nothing to fix (cause 5).
- Open the order and read the order notes. The same status change logged twice, seconds apart? That's cause 1. A round trip through another status? Cause 3.
- Check which of your emails duplicate. Only the admin ones? Go straight to
WooCommerce → Settings → Emailsand check the Recipient(s) field for a repeated inbox (cause 4). - Count your sending plugins. More than one SMTP or transactional email plugin active is cause 2 — deactivate all but one and place a test order.
- Still doubled with one SMTP plugin and clean order notes? Deactivate other plugins in batches — something is triggering the mail directly (cause 6).
Not sure what's firing it twice?
Tracing a duplicate order email by hand means reading order notes on a dozen orders, auditing every recipient field, and toggling plugins on a live store. DiagnosticIQ's free dashboard checks your email configuration and order pipeline in one screen, and the AI names the actual cause — a double status transition, or a second plugin sending the same mail. It keeps watching afterwards too, so if it starts again you hear it from DiagnosticIQ rather than from an annoyed customer.
Get the free plugin →Made by Prima Digital — the team behind this guide. Free forever; no card to install.
How to know you fixed it
Place a test order and pay it — you get exactly one customer email and one admin email, and the order notes show a single status change for the transition.
Frequently asked
Did the customer get charged twice?
Almost never. Duplicate emails and duplicate charges are different faults — check your gateway dashboard for the order. One charge means it's purely a notification problem.
Will the duplicate emails hurt my deliverability?
They can. Repeated identical mail to the same inbox trains spam filters against your domain, so fix it rather than waiting it out.
Can I just turn off one of the emails?
No — there's only one email being sent twice. Turning it off in Settings → Emails stops both copies, including the one your customer needs.
Why did this start after I changed gateways?
A new gateway usually means a new webhook plus a new redirect return. If both mark the order paid, you get the classic cause 1 double transition.