How to Disable WooCommerce Completed Order Emails

How to Disable WooCommerce Completed Order Emails

One of the best features of WooCommerce is how you can keep your customers informed of their orders. There are multiple ways, from your store’s interface, that a customer can pull up current and previous order information. In addition to the store’s theme, WooCommerce can communicate order information to your customers via email. This includes email notifications about completed orders. Unfortunately, there’s no easy way to turn off these emails. Today we’ll walk you through how to disable WooCommerce completed order emails on your own.

Why remove WooCommerce completed order emails from your store? Well, for starters, not everyone wants to receive notifications by email. In addition, email is notoriously unreliable and that is especially true when emails are being sent by WordPress. Sometimes it’s easier to disable a feature than to constantly have to troubleshoot it.

So, let’s go through the steps necessary to turn off WooCommerce completed order emails. We’ll go through this piece-by-piece so you can do it yourself correctly. Then, in the end, we’ll show you a simpler and faster alternative solution.

How to Turn Off WooCommerce Completed Order Emails with Code

You’re going to have to write some very simple PHP code to make this work. This code will disable completed order emails from being sent by WooCommerce. We’ll walk you through the correct way to add code to a WooCommerce store without ruining your site’s theme or function.

Warning! Please make a complete and total backup of your store before proceeding. This means backing up your site’s files (plugins, theme, and uploads) and the database as well. It’s not uncommon for people to make mistakes when attempting to add code to a WordPress site. You’ll be thankful you have a way to restore your store in case of a disaster that disables it.

Create a Child Theme

The first step in this process is to create a child theme. A child theme is the safest way to add or modify code in a WordPress or WooCommerce theme. In short, a child theme loads after another theme (called the parent) has loaded. The child theme can then independently execute code and loads templates using the parent theme as a base.

When the parent theme receives an update, the child theme’s code is not touched. Therefore, anything you do in a child theme will always persist and never be lost. Adding or changing code directly in a parent theme means those changes are overwritten during the next update.

This isn’t a tutorial on how to make a WordPress child theme though. You can find a lot of very helpful tutorials online and, possibly, a pre-made child theme for your current theme from its developer.

Add Code to the Child Theme

With your child theme made, it’s now time to add some custom PHP code. Every WooCommerce theme should have a file called functions.php and your child theme is no exception. Create the file, if it doesn’t already exist, and open it in a text editor. Then copy and paste the following code into the file:

add_action('woocommerce_email', 'my_disable_emails_completed_orders', 10);
function my_disable_emails_completed_orders($email_class)
    remove_action('woocommerce_order_status_completed_notification', [$email_class->emails['WC_Email_Customer_Completed_Order'], 'trigger']);

Save the functions.php file when you are finished adding the above piece of code.

Getting confused? Making child themes and adding PHP code isn’t for everyone. In fact , most people tap out at this point. If you would prefer to have this done for you we have a solution. Learn how our Remove WooCommerce Features plugin can help you save time.

Upload the Child Theme

Your child theme’s files are ready. It’s time to get the theme onto the server hosting your WooCommerce store. The best way to do this is directly inside of the WordPress admin area. First, compress your child theme into a .zip file before uploading. Then, log in to your WordPress admin and head to the Appearance option of the menu, and upload your file through the Themes section.

Alternatively, you can upload your child theme directly to the server using an FTP program. This is an option for more technical users. You’ll need an FTP program and your server’s login credentials. Most web hosting providers will provide documentation and support staff to help you to care of this if you want to go in this direction.

Activate the Child Theme

Now that you have uploaded the child theme it is time to turn it on. In WordPress terms, this is called “activating” the theme. Go back to the WordPress admin menu, back to the Appearance option, and back to Themes again.

If you successfully uploaded your child theme, it should now appear on the list of choices. If you don’t see your theme then the upload didn’t work. Try again until your child theme finally shows up. When it’s available, there will be a button to activate the theme. Pressing that button will make your child theme the active theme on your WooCommerce-powered store.

Activating the theme will immediately make your code to disable WooCommerce completed order emails begin to work. If the emails are still sent or, even worse, your store is no longer functional, there was a problem with your code. Go back and look for errors. Make any changes, compress the child theme, upload it again, and activate it one more time. Repeat this process until you have solved the issue and the code works correctly.

You’re all done! You made a WordPress child theme, added custom PHP code to it, uploaded, and activated it on your store. Of course, there is a much easier way to handle all of this. You can simply use our plugin and turn off these emails (and other features) with the click of your mouse.

How to Remove WooCommerce Completed Order Emails the Easy Way

Remove WooCommerce Features can handle removing WooCommerce completed order emails very quickly. You don’t have to write code, make a child theme, or pay a WordPress developer to do that for you. Once you have purchased and installed our plugin all you have to do is follow these steps.

Step #1

Go to the WooCommerce section of your WordPress installation’s admin menu and click the link that says Remove Features.

WooCommerce Admin Menu

Step #2

Find the setting for Completed Orders and click the checkbox so that it’s marked like so:

Remove WooCommerce Features - Completed Orders

Step #3

Press the button.

That’s all you have to do. Once you save the settings, the WooCommerce completed order notification emails will stop going out. With Remove WooCommerce Features, the change will stay as long as you have the plugin installed and activated on your store.

Our plugin works with dozens and dozens of other WooCommerce features. You can use it for more things than controlling email notifications. The entire list of features is available on our site: