Custom Order Status for WooCommerce plugin lets you add custom order statuses to WooCommerce. When adding status, you can set:
- Custom status slug.
- Custom status label.
- Custom status icon.
- Custom status icon & text color.
Custom statuses can be added to admin order list bulk actions and to admin reports.
You can also set default order status for new orders.
Custom status orders can be set as editable and/or paid.
You can create custom emails that we be automatically sent on order status change.

Custom Order Status Tool

General Options
Plugin settings can be accessed via WooCommerce > Settings > Custom Order Status.

- Add custom statuses to admin order bulk actions
- Default:
yes
- Add custom statuses to admin reports
- Default:
yes
- Default order status
- You can change the default order status here. However some payment gateways may change this status immediately on order creation. E.g. BACS gateway will change status to On-hold. Plugin must be enabled to add custom statuses to the list. Possible values: No changes; Pending payment; Processing; On hold; Completed; Cancelled; Refunded; Failed; {Custom Statuses}.
- Default:
No changes
- Default order status for BACS (Direct bank transfer) payment method
- Plugin must be enabled to add custom statuses to the list. Possible values: No changes; Pending payment; Processing; On hold; Completed; Cancelled; Refunded; Failed; {Custom Statuses}.
- Default:
No changes
- Default order status for COD (Cash on delivery) payment method
- Plugin must be enabled to add custom statuses to the list. Possible values: No changes; Pending payment; Processing; On hold; Completed; Cancelled; Refunded; Failed; {Custom Statuses}.
- Default:
No changes
- Fallback delete order status
- When you delete some custom status with “Custom Order Statuses Tool”, all orders with that status will be updated to this fallback status. Please note that all fallback status triggers (email etc.) will be activated. Possible values: Pending payment; Processing; On hold; Completed; Cancelled; Refunded; Failed; {Custom Statuses}; No fallback.
- Default:
On hold
- Add custom statuses to admin order list action buttons
- Default:
no
- Enable colors for action buttons
- Default:
no
- Enable colors in status column
- Default:
no
- Add custom statuses to admin order preview action buttons
- Default:
no
- Make custom status orders editable
- Default:
no
- Make custom status orders paid
- By default paid statuses are:
processing
, completed
.- Default:
no
Emails Options

- Enable section
- Default:
no
- Statuses
- Custom statuses to send emails. Leave blank to send emails on all custom statuses. Possible values: {Custom Statuses}.
- Default: None
- Email address
- Comma separated list of emails. Leave blank to send emails to admin. Use
%customer%
to send email to the customer’s billing email; %admin%
to the admin’s email.- Default: None
- Email subject
- Replaced values:
{order_id}
, {order_number}
, {order_date}
, {site_title}
, {status_from}
, {status_to}
. You can also use shortcodes here.- Default:
[{site_title}] Order #{order_number} status changed to {status_to} - {order_date}
- Email heading
- Replaced values:
{order_id}
, {order_number}
, {order_date}
, {site_title}
, {status_from}
, {status_to}
. You can also use shortcodes here.- Default:
Order status changed to {status_to}
- Email content
- Replaced values:
{order_id}
, {order_number}
, {order_date}
, {order_details}
, {site_title}
, {status_from}
, {status_to}
. You can also use shortcodes here.- Default:
Order #{order_number} status changed from {status_from} to {status_to}
Advanced Options

- Filters priority
- This will set priority for WooCommerce filters used in plugin. Leave zero, if not sure.
- Default:
0
Tips & Tricks
If “Actions” column is missing in admin “Orders” list – please go to your “Orders” list and there in the top right corner is “Screen Options” button. If you click it, you will be able to enable/disable columns (including “Actions”).
Please note that if you are using plugin’s “Default order status” option, you may stop receiving some standard WooCommerce emails. This happens because triggers that send default WooCommerce emails are related to order status changes. For example “Processing order” email is sent on these order status changes: from failed to processing, from on-hold to processing, from pending to processing. And “Order on-hold” emails are sent on: from pending to on-hold, from failed to on-hold. So if you change the default order status, emails are never triggered. Possible workaround would be to create new email in plugin’s “Emails” section that would look like standard WooCommerce email.
Free version
This plugin is a premium version of free "Custom Order Status for WooCommerce" plugin.
Changelog
= 2.2.0 - 03/05/2022
- Enhancement - Added support for WooCommerce PDF Invoices & Packing Slips Professional plugin.
- Fix - Add notice for the activating the plugin license.
- Fix - {product_titles} merge tag does not convert into real value.
= 2.1.0 - 15/03/2022
New Feature - The Customer and/or Shop Manager will be notified via SMS when the Custom Status is assigned to the Order. SMS feature can be enabled at Global Level as well as in Custom Order Status settings.
New Feature - Added option called 'User Can Cancel Orders' under Custom Order Status settings. Enabling it will allow the customer to cancel the order if that custom status is assigned to the order.
Fix - Orders were getting deleted upon the deletion of this plugin.
Fix - On the All Orders page, the icon was overlapping with the label in the Status column.
Fix - On the All Orders page, the custom order status label color was getting applied even if the setting for it is disabled.
Fix - Admin was not receiving the emails when the order status changed from Custom Order Status to WooCommerce Order Status.
2.0.4 - 14/09/2021
- Enhancement - Added an option to Increase/Decrease Stock levels of the products present in the order when the order status is changed to the custom order status.
- Enhancement - Added an option to select the default status for all the payment methods, including custom payment methods too.
- Enhancement - Added an option of paid status at individual custom status level.
- Enhancement - Two new shortcodes added for the email content. {product_titles} shortcode for showing the list of products name with the links and {custom_field_(meta-key)} for showing the meta values of the custom fields in the emails.
- Enhancement - Icons will be shown in the My account->Orders page on frontend.
- Fix - Make custom status orders paid setting was not working. This is fixed now.
- Fix - After migration, slugs were coming empty in some site. This is fixed now.
- Fix - When slug in custom order status starts with wc- then order status don't gets changed to that custom order status. This is fixed now.
- Fix - Fixed some PHP warnings appearing in debug.log.
2.0.3 - 09/04/2021
- Enhancement - Added a filter to hide the billing address in the Email template.
- Fix - Order status is getting changed when we refresh the Thankyou page. This has been fixed.
- Fix - When emails are set at custom status levels, the settings of the global level were not ignored. This has been fixed.
- Fix - HTML tags are not working on the custom email template. This has been fixed.
- Fix - Custom order status was not working with downloadable products. This has been fixed.
- Fix - When we change the slug of the custom order status, orders having that custom status will not be seen on Orders page. This has been fixed.
2.0.2 - 26/11/2020
- Fix - Order Status was not getting changed when the Custom Status Name was having more than 17 Characters. This has been fixed.
2.0.1 - 26/10/2020
- Fix - Linebreaks were not coming in the emails when the order status is changed.
2.0.0 - 12/10/2020
- Feature - Added Custom Post Type for custom statuses with the support of previous tool page.
- Feature - Custom Post Type includes individual Email settings so admin can set different emails for individual status.
- Fix - Order Email not received to ‘admin’ and ‘customer’.
- Fix - Unable to edit or view the products on the back-end of the Products page when the plugin is active.
- Tweak - Billing or Shipping address not visible in the email when status changes to the custom order status.
1.5.0 - 27/06/2020
- This update to the plugin includes the ability to track non-sensitive diagnostic plugin data with the site admin's consent.
1.4.8 - 12/03/2020
This update to the plugin is for announcing the plugin compatibility with WooCommerce v4.0.0
1.4.7 - 22/02/2020
This update to the plugin is for announcing the plugin compatibility with WooCommerce v3.9.x
1.4.6 - 27/03/2019
- Feature - Added 2 new merge tags for email content {first_name} and {last_name}
- Fix - Emails sent by the plugin for status change display the status slug instead of the name.
- Fix - Email send to setting when set to %admin% resets to min%. Modified and changed it to {customer_email} and {admin_email}.
- Fix - Added uninstall.php file to cleanup the settings when the plugin is deleted.
- Tweak - Modified the plugin to not accept slugs already present in the terms table as it conflicts with WooCommerce.
- Tweak - Modified the plugin to show the Mark Order Complete icon in WooCommerce->Orders->Actions column for custom status orders.
1.4.4 - 16/10/2018
- Feature - Emails - Email content -
{order_details}
replaced value added.
- Feature - Default order status - "Default order status for BACS / COD" options added (instead of forcing BACS and COD to "default order status", as was added in previous plugin version 1.4.3).
1.4.3 - 15/10/2018
- Dev - Default order status - Forcing BACS and COD payment gateways to "default order status".
1.4.2 - 27/09/2018
- Dev - WPML / Polylang plugins compatibility (
wpml-config.xml
file) added.
1.4.1 - 23/09/2018
- Feature - "Add custom statuses to admin order preview action buttons" option added.
- Dev - Code refactoring.
- Dev - Minor admin settings restyling.
1.4.0 - 03/09/2018
- Feature - "Emails" section added.
- Feature - "Make custom status orders paid" option added.
- Dev - Code refactoring.
- Dev - Admin settings divided into sections, restyled and descriptions updated.
- Dev - "Enable plugin" option removed.
1.3.5 - 22/06/2018
- Feature - "Make custom status orders editable" option added.
- Dev - Plugin URI updated to wpfactory.com.
- Dev - Settings are saved as main class property.
1.3.4 - 24/05/2018
- Dev - "Advanced: Filters priority" option added.
1.3.3 - 15/05/2018
- Dev - "Text Color" option added.
1.3.2 - 15/05/2018
- Dev - "Enable Colors in Status Column" option added.
- Dev - "WC tested up to" added to the plugin header.
1.3.1 - 10/05/2017
- Fix -
Too few arguments to function Alg_WC_Custom_Order_Statuses_Settings_Section::get_settings()
fixed.
1.3.0 - 30/04/2017
- Dev - WooCommerce 3.x.x compatibility - Order ID.
- Dev - Custom Order Status Tool - Sanitizing slug before adding new status.
- Dev - Custom Order Status Tool - "Delete with fallback" separate button added. Simple "Delete" button now deletes statuses without any fallback.
- Dev - Custom Order Status Tool - "Edit" functionality moved from Pro to free version.
- Tweak - readme.txt and plugin header updated.
- Tweak - Custom Order Status Tool - Restyled.
- Tweak - Custom Order Status Tool - Code refactoring.
- Tweak - Link changed from
coder.fm
to wpcodefactory.com
.
1.2.1 - 23/01/2017
- Dev - "Reset settings" button added.
- Tweak - readme.txt fixed.
1.2.0 - 17/01/2017
- Fix - Tool - Add - Checking for duplicate default WooCommerce status added.
- Dev - Tool - "Edit" custom status button added.
- Dev - Fallback status on delete.
- Dev - "Add Custom Statuses to Admin Order List Action Buttons" options added.
- Dev - Extended (paid) version added.
- Tweak - Plugin "Tags" updated.
1.1.0 - 14/12/2016
- Fix -
load_plugin_textdomain()
moved from init
hook to constructor.
- Fix - All
get_option
calls have default value now.
- Dev - Language (POT) file added. Domain 'custom-order-statuses-for-woocommerce' changed to 'custom-order-statuses-woocommerce'.
- Dev - Bulk actions added in proper way for WordPress version >= 4.7.
- Tweak - Donate link updated.
1.0.0 - 12/11/2016
Skara –
Beautiful plugin! Not sure what problems had previous reviewer – I had none. Thanks!
Twan –
It is a poor plugin, there are a lot of hickups in the statusses and isn’t compatible with pdf and packiging slips or other plugins.
DON”T USE THIS PLUGIN!!!!!!!!!!!!!!!!!!!!!!!!!!
It is messing up your whole databse as soon if you decide not to use it anny longer.
Omri (verified owner) –
First of all, after i tryed 15 different plugins i can say that this plugin is the best plugin you can ask.
its work with woocommerce. its support wp multisite, you can choose icon and color that will show in you order panel. its work with oder wordpress plugins.
about the author, i have some issue with some plugins and i wait days for replay. i sent a message to this plugin author (Tom) and he send me email immediately and ask for screen share to help. he fixed the small problem i had and then i was rude and ask him to help me with other plugin. he fixed the other plugin problem in 3 sec max!!!!
he just a genius, i got a great service and i really apretiate that.