• Skip to primary navigation
  • Skip to main content
ShopMagic logo cropped for use as a site icon
WP Desk

WP Desk

WooCommerce Plugins

Flexible Invoices

Flexible Invoices

Automate invoicing

Flexible Coupons

Flexible Coupons

Gift cards and tickets

ShopMagic

  • Pricing
  • Add-ons
  • Docs
  • Support
  • Blog
  • Ideas
  • My account
  • English
    • Español (Spanish)
How to customize WooCommerce completed order email with ShopMagic?

Published: April 2, 2025 / Updated: October 14, 2026 / Blog, Guide

How to customize WooCommerce completed order email with ShopMagic?

Maciej Swoboda

Customizing the completed order email comes down to two moves: build a replacement triggered by the Order Completed event, then switch off WooCommerce’s own version so customers do not receive both. Before that, check whether you need the whole operation, because WooCommerce has an Additional content field that adds a paragraph to the existing email with no code and no plugin. If you need to change the wording, the structure, or the order of what the customer sees, the full replacement is below in four steps, sequenced so that no customer is ever left with no email at all.

Start with the cheapest option that works

Three routes, in increasing order of effort. Most people need the first or the third.

What you want to change Route Needs code
Add a paragraph, change the subject or the heading WooCommerce → Settings → Emails → Completed order No
Change the layout, the order table, the structure Copy the PHP template into your child theme Yes
Rewrite the message, add conditions, send different versions to different customers Disable the default and build a replacement in a plugin No

The built-in route is genuinely underused. Additional content takes a paragraph that appears at the bottom of the existing email, and together with the subject and heading fields it covers a surprising number of requests: a thank-you line, delivery information, a discount code for the next order. If that is all you need, stop there and skip the rest of this guide.

This guide covers the third route, because the first two cannot change the body text or decide who gets which message.

ShopMagic

ShopMagic lets you customize WooCommerce completed order email. But that's not all! Give it a try. It's free!

Download for free or Go to WordPress.org
WP Desk
10,000+ Active Installations
Last Updated: October 12, 2026

Table of contents

  • Start with the cheapest option that works
  • Editing email templates in WooCommerce
  • Customize the completed order email with ShopMagic
  • Four steps
  • Summary
  • Frequently asked questions

Editing email templates in WooCommerce

The built-in way to change anything beyond the subject, heading and extra paragraph is to copy the PHP template for that email. Go to WooCommerce → Settings → Emails.

Woocommerce Email Settings

Open the email you want to change and copy its template to your theme folder.

Copy Email Template
Copy WooCommerce Email Template

From there you can use the on-screen editor.

WooCommerce automated email PHP template
Edit email template

Or edit the file in a proper code editor, which is the better option if you want syntax highlighting and a way back when something breaks.

Customer booking reminder email PHP template
Edit the PHP file in the editor

Two things to know before taking this route. Copy the template into a child theme, because a copy inside a parent theme disappears with the next theme update. And the copy freezes at today’s version, so when WooCommerce changes the original your copy keeps the old markup until you merge the change by hand.

This approach needs PHP and a willingness to maintain the file. If neither applies, the plugin route below reaches the same result from the admin screen.

Customize the WooCommerce completed order email with ShopMagic

ShopMagic replaces the email rather than editing it: you build your own message, attach it to the Order Completed event, and turn WooCommerce’s version off. The same mechanism also produces emails WooCommerce does not have, such as follow-ups and newsletters. More on the wider picture in the WooCommerce emails guide.

What this gets you that the template route does not

Writing the message in an editor rather than in PHP, so a wording change takes a minute instead of a deployment. Conditions, so a first-time buyer and a returning customer can receive different messages from the same event. Control over what appears and in what order, including showing purchased products as a list instead of the default table. And a test send, so you see the real email before a customer does.

ShopMagic is free. Over 10,000 WooCommerce stores use it.

Thanks for this awesome plugin! If you're running a WooCommerce store, the default email messages are very generic and absolutely need to be customized. This plugin makes the process a lot faster, simpler, less prone to error, and of course with more features. It's a must-have if you're using WooCommerce.
Doug Yuen Founder @ EfficientWP

ShopMagic

ShopMagic lets you customize WooCommerce completed order email. But that's not all! Give it a try. It's free!

Download for free or Go to WordPress.org
WP Desk
10,000+ Active Installations
Last Updated: October 12, 2026

Customize the WooCommerce completed order email in 4 steps

Two things have to happen: a new email has to exist, and the default one has to stop. The order matters.

Build and test the replacement first, then disable the WooCommerce email. Doing it the other way round leaves a window in which completed orders send nothing at all, and that window lasts exactly as long as it takes you to get distracted.

If you already have ShopMagic installed, go to step 2.

💡 Several events can trigger custom emails in WooCommerce. Other articles in this series:

  • New Order
  • Pending Order
  • Processing Order
  • Cancelled Order
  • Completed Order (this guide)
  • Failed Order
  • On-Hold Order
  • Refunded Order

Step 1: install and activate ShopMagic

Install the plugin from the WordPress plugins screen.

Search for “ShopMagic” under Plugins → Add New, or download it from the WordPress repository and upload it. Activate it when the installation finishes.

Installing and activating ShopMagic
Install and activate ShopMagic

Step 2: create the automation and pick the event

Create a new automation and set its event to Order Completed.

Go to ShopMagic → Automations → Add New. Give it a name for your own reference, then select the Order Completed event, which fires whenever an order reaches that status.

Customize Woocommerce Completed Order Email
ShopMagic Email Marketing Automation for WooCommerce – Order Completed

Filters are optional and go in here too. They decide who qualifies, based on the customer or on what was in the cart, which is how one event can produce different emails for different buyers.

Use Filters In Shopmagic

Leave filters empty for your first automation. An email that does not arrive because a filter excluded the test order is the most common reason people think the whole thing is broken.

Step 3: add the email and write its content

Add a Send Email action and fill in the recipient, subject and body.

In the Actions box, click + New Action and choose Send Email.

Customize Woocommerce Emails For Completed Order Email Notifications
Send automated emails in WooCommerce for different order statuses

In the To field put the placeholder {{ customer.email }}, which is replaced with the real address when the email goes out. Then write the subject, for example “Your order is on its way”.

For the body, start from scratch or paste the default WooCommerce wording below and edit from there:

Placeholders are replaced with real order data at send time:

  • {{ customer.first_name }} customer’s first name.
  • {{ order.details }} the order table with products, payment method and totals.
  • {{ order.billing_formatted_address }} billing information.
  • {{ customer.phone }} customer’s phone.
  • {{ customer.email }} customer’s email address.

This email matters more than it looks. WP Desk telemetry from 19,803 WooCommerce stores, collected in August 2026, shows 86.2% of orders placed as guests. A guest has no account to look the order up in later, so what you write here is the only lasting record of the purchase they hold.

Step 4: test, then disable the WooCommerce email

Send yourself a test, confirm it arrives correctly, and only then switch off the default.

Use the test send to check the placeholders resolve and the formatting survives in a real inbox. When you are satisfied, go to WooCommerce → Settings → Emails and open Completed order:

Woocommerce Email Settings
Disable the default Completed Order email

Untick the enable option:

WooCommerce Disable Completed Order Email
Disable the default WooCommerce Completed Order Email

From now on only your version is sent, with no duplicates.

One thing to remember afterwards: that setting is now load-bearing. If you ever deactivate the plugin, the completed order email stops entirely rather than falling back to the WooCommerce one, so switch the default back on before removing anything.

Summary

Three routes lead to a different completed order email, and they are not equally expensive. WooCommerce’s own Additional content field, along with the subject and heading, handles adding a paragraph with no code at all, which covers more requests than people expect. Copying the PHP template into a child theme gives full control of layout, at the cost of PHP and a file you now merge by hand after WooCommerce updates. Replacing the email with an automation gives you the wording, the structure and conditional sending from the admin screen, which is what most stores actually want.

If you take the third route, the sequence is the part worth getting right: install, build the automation on the Order Completed event, write the email and test it, and only then disable the WooCommerce version. Reversed, there is a period where completed orders trigger no email whatsoever. Leave filters empty on the first attempt, since an excluded test order looks exactly like a broken setup, and remember that the disabled default is now a dependency: turning the plugin off also turns the email off.

A note on what this email is. Completed does not mean paid, it means fulfilled. Payment usually moves an order to Processing, and Completed is the status you set when the order ships or the download is ready, which is why this message reads as “your order is on its way” rather than “thank you for your payment”.

ShopMagic

ShopMagic lets you customize WooCommerce completed order email. But that's not all! Give it a try. It's free!

Download for free or Go to WordPress.org
WP Desk
10,000+ Active Installations
Last Updated: October 12, 2026

🪄 The same mechanism sends a thank-you email. This video shows it with ShopMagic:

Frequently asked questions

Can I customize the WooCommerce completed order email without a plugin?

Partly. The subject, heading and an extra paragraph are editable in WooCommerce → Settings → Emails. Changing the body text or the layout means editing the PHP template or replacing the email.

When is the completed order email sent?

When an order reaches the Completed status, which normally means fulfilled rather than paid. A successful payment usually moves an order to Processing instead.

Do I have to disable the default email?

Yes, if you build a replacement, otherwise the customer receives both. Disable it only after testing your own version.

What happens if I deactivate the plugin later?

No completed order email is sent at all, because the WooCommerce one is still switched off. Re-enable it before removing the plugin.

Why is my WooCommerce completed order email not sending?

Check three things in order: whether the email is enabled at all, whether orders actually reach the Completed status in your workflow, and whether your server is sending mail, which you can test independently of WooCommerce.

Can I send different completed order emails to different customers?

Yes, using filters on the automation. The same Order Completed event can produce one message for a first-time buyer and another for a returning one.

Can I show purchased products as a list instead of a table?

Yes. Once you write the body yourself, the order table is one placeholder among others rather than a fixed part of the template.

Will editing the PHP template survive a WooCommerce update?

The file survives if it sits in a child theme, but it stops matching the original. When WooCommerce changes that template, your copy keeps the old version until you merge the change yourself.

About Maciej Swoboda

Fundador de WP Desk, enamorado de WordPress desde 2006. Cree en el poder de la comunidad WP, habla en WordCamps de todo el mundo y ayuda a la gente a construir mejores negocios con WooCommerce.

  • Terms & Conditions
  • Privacy Policy
  • Support Policy
  • Refund Policy

© 2026 A WP Desk WP Desk Automation

Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
  • Manage options
  • Manage services
  • Manage {vendor_count} vendors
  • Read more about these purposes
View preferences
  • {title}
  • {title}
  • {title}