Documentation

Custom Order Status & Workflows

Order statuses of your own, next-step buttons, emails and automations.

Custom Order Status & Workflows for WooCommerceFrom $69 / year · 14-day money-back guaranteeView plugin →

Custom Order Status & Workflows adds order statuses of your own, such as Preparing, Shipped or Ready for pickup, with colours, emails and next-step buttons. Automations move orders on by themselves, right away or after a wait.

Requirements

  • WordPress 6.8 or newer
  • WooCommerce 10.0 or newer
  • PHP 7.4 or newer
  • Works with High-Performance Order Storage and orders stored as posts.

Installation

  1. Download custom-order-status-workflows.zip from My account > Downloads.
  2. In WordPress, go to Plugins > Add New Plugin > Upload Plugin, choose the zip file and click Install Now.
  3. Click Activate. Statuses, automations and settings are under WooCommerce > Settings > Order statuses.

Quick start: Preparing and Shipped

  1. Go to WooCommerce > Settings > Order statuses. With no statuses yet, you see examples.
  2. Click Preparing and Shipped. Shipped emails the customer when an order moves to it.
  3. Under WooCommerce’s statuses, give Processing the next step Preparing, and save.
  4. Open the orders list: Processing orders have a Preparing button, Preparing orders a Shipped button.
Your statuses, each with a summary.
Your statuses, each with a summary.

Your statuses

Statuses sit after Processing in every status list, filter and bulk action. Each status has:

FieldWhat it does
Name, ColourThe name and the colour shown on the orders list. The name can change without changing the stored key.
Next stepsStatuses that usually come next. Each one becomes a button on the orders list and in the Workflow box.
Orders in this statusCount as paid (sales reports, “Order again”), allow downloads of downloadable products, and allow editing items and prices.
Text for customersShown above the order details in My account, such as “We’re packing your order”.
EmailsEmail the customer, the store, or both, when an order moves to the status.
An open status: Shipped.
An open status: Shipped.

WooCommerce’s own statuses

Rename WooCommerce’s statuses, change their colours and give them next-step buttons. Leave a name empty to keep WooCommerce’s. Emails and payment handling stay as WooCommerce does them.

WooCommerce's statuses.
WooCommerce’s statuses.

Next-step buttons

Next steps show as buttons in the Actions column of the orders list, so Processing → Preparing → Shipped → Completed takes one click per step. The same buttons are in the Workflow box on each order, and every status is a bulk action.

Next-step buttons on the orders list.
Next-step buttons on the orders list.

WooCommerce hides the Actions column at first. Open Screen Options at the top of the orders list and tick Actions.

The Workflow box on an order, with a move waiting.
The Workflow box on an order, with a move waiting.

Emails

Each status can send Order status update to the customer and Order status changed (store) to you, with its own subject, heading and message. The emails use your WooCommerce email design and include the order details. Placeholders such as {order_number} and {customer_first_name} fill themselves in. Recipients and the email design are under WooCommerce > Settings > Emails.

The Shipped email.
The Shipped email.

Customers see the status and its text in My account. To send it again, choose Send “Shipped” email to customer (with the order’s status name) in the order actions.

A Shipped order in My account.
A Shipped order in My account.

Automations

Under Order statuses > Automations, an automation moves an order to another status when it reaches a status, right away or after a wait in minutes, hours or days. For example:

  • Complete Shipped orders after 14 days.
  • Cancel bank transfer orders that are still on hold after 7 days.
  • Send local pickup orders straight to Ready for pickup.
  • Hold orders over a set amount for a check.
Automations, each with a summary and the orders waiting.
Automations, each with a summary and the orders waiting.

An automation can be limited to payment methods, shipping methods, products in categories and a minimum order total, and can add a note to the customer. If the order has moved on before the wait is over, nothing happens. Every move leaves an order note.

Cancel unpaid bank transfers after 7 days.
Cancel unpaid bank transfers after 7 days.

Waiting moves show in the order’s Workflow box, where you can Move now or Cancel. Automations use WooCommerce’s scheduled actions, which run every minute or so while the site has visitors.

Deleting a status

Deleting a status that orders still have moves those orders to the status chosen in Move their orders to, in the background, with a note on each order.

Settings

SettingWhat it does
Status textShow the “Text for customers” of a status above the order details in My account.
Move their orders toWhere orders go when you delete their status.
Remove dataDeletes statuses, automations and settings when the plugin is deleted.

Orders keep their status in the database when the plugin is deactivated, but WordPress no longer knows custom statuses, so those orders don’t show in the orders list. Move them to one of WooCommerce’s statuses before deactivating, or reactivate the plugin and they come back.

For developers

HookUse
cosw_statuses, cosw_automationsThe statuses and automations.
cosw_automation_matchesWhether an automation applies to an order.
cosw_automation_ranRuns after an automation moves an order.
cosw_customer_email_messageThe message of the customer email.
cosw_example_statuses, cosw_example_automationsThe examples offered.
cosw_admin_capabilityThe capability needed to change statuses and automations.

Copy public/templates/status-note.php or the emails in public/templates/emails/ to yourtheme/custom-order-status-workflows/ to change them.

Frequently asked questions

Can two automations move an order back and forth?

An order can only be moved a few times in a row by automations, and the editor warns you when two automations move orders straight back to each other.

Do custom statuses count in Analytics?

Yes. WooCommerce Analytics counts every status except those under Analytics > Settings > Excluded statuses, where you can leave out a custom status too.

Changelog

1.4.0 · September 24, 2026

Compatibility update

  • Updated compatibility checks for current WooCommerce releases.
  • Improved translated notices and settings labels.

1.3.3 · April 24, 2026

Maintenance

  • Fixed a delayed action changing the status after the order had already been cancelled.

1.3.0 · April 10, 2026

Feature update

  • Added automatic status changes based on order conditions.
  • Added delayed actions for workflows that need a waiting period.

1.2.1 · December 9, 2025

Maintenance

  • Fixed a next-step button remaining visible after an order had moved to its final status.

1.2.0 · November 30, 2025

Feature update

  • Added next-step buttons to the orders list and individual order screens.
  • Added controls for the allowed next statuses in each workflow.

1.1.1 · June 29, 2025

Hotfix

  • Fixed the same status email being sent again when an order note was saved.

1.1.0 · June 16, 2025

Feature update

  • Added customer and store email notifications for custom statuses.
  • Added email previews and editable subject lines.
  • Compatibility: updated integration checks for WooCommerce 9.x.

1.0.2 · February 11, 2025

Hotfix

  • Fixed a custom status label not appearing in the order filter immediately after it was saved.

1.0.0 · January 30, 2025

Initial release

  • Initial release.
  • Create custom WooCommerce order statuses with labels and colours.