This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

🔊 Web Growth Summit is here! Learn from industry experts on July 17-18, 2024. REGISTER NOW→

How to Add Custom Order Status in WooCommerce (A 3-Step Guide)

Updated on May 11, 2023

5 Min Read
woocommerce custom order status

WooCommerce order status helps store owners track the progress of an order from the time it’s placed to when it’s delivered. However, the default options may not always suit every store’s needs. That’s where the ability to add custom order status in WooCommerce comes in.

Adding custom order status in WooCommerce can help store owners better manage their orders and provide a more personalized experience to their customers. With custom order statuses, store owners can create their own order statuses based on their specific business needs.

In this article, I’ll provide a step-by-step guide on adding custom order statuses in WooCommerce, including best practices for creating custom order statuses and assigning custom statuses to orders.

What Is Custom Order Status in WooCommerce?

Custom order status in WooCommercel lets you create and manage additional order statuses beyond the default ones provided by WooCommerce. By default, WooCommerce comes with a set of order statuses like “Pending Payment,” “Processing,” “On Hold,” “Completed,” “Cancelled,” “Refunded,” and “Failed.”

However, sometimes you need more specific or unique order statuses to better suit your business processes and provide a more personalized experience for your customers. And to fulfill that objective, you can use custom order status.

Why Add Custom Order Status in WooCommerce?

Sometimes the default order status doesn’t serve your business needs, so you might need to customize your WooCommerce order status. The ability to customize your order status provides you greater control over your store and can benefit both store owners and customers in the long run.

Here are a few reasons to consider customizing your WooCommerce order status.

  • It allows store owners to tailor the order management process to their business needs.
  • It can help keep customers informed about the progress of their orders with more detailed and descriptive updates.
  • It lets store owners sort and filter orders based on their unique business requirements.
  • It allows store owners to adapt and evolve their order management process as their business grows or changes.
  • It enables store owners to gain better insights into their business operations by analyzing data based on specific order stages.

From launching to customizing your WooCommerce stores, Cloudways is at your service.

Whether you’re a beginner or an expert, Cloudways Platform is based on UI, where you can create and customize your online store in a few seconds.

How to Customize Order Status in WooCommerce?

You can customize your order status in WooCommerce by adding the following code snippet to your Functions.php file.

Step 1: Create a Custom WooCommerce Order Status

Firstly, you need to create a custom WooCommerce Order status. For the purpose of this blog, I will create a new WooCommerce order status named ‘Shipment Arrival’.

To create this, add the following code to your functions.php file:

function register_shipment_arrival_order_status() {
   register_post_status( 'wc-arrival-shipment', array(
       'label'                     => 'Shipment Arrival',
       'public'                    => true,
       'show_in_admin_status_list' => true,
       'show_in_admin_all_list'    => true,
       'exclude_from_search'       => false,
       'label_count'               => _n_noop( 'Shipment Arrival <span class="count">(%s)</span>', 'Shipment Arrival <span class="count">(%s)</span>' )
   ) );
add_action( 'init', 'register_shipment_arrival_order_status' );

Code Explanation

Here’s the breakdown of the code and its explanation.

  • register_shipment_arrival_order_status(): This function registers a new custom order status with the identifier ‘wc-arrival-shipment’. The register_post_status() function is a WordPress function that creates a new post status with the given properties. The array passed to this function contains the following properties:
  • label: The human-readable name of the order status, ‘Shipment Arrival’ in this case.
  • public: Setting this to true makes the status publicly accessible.
  • show_in_admin_status_list: When set to true, this status will be displayed in the order status list in the WordPress admin area.
  • show_in_admin_all_list: When set to true, orders with this status will appear in the “All” orders list in the admin area.
  • exclude_from_search: Setting this to false means that orders with this status can be included in search results.
  • label_count: This property sets the label format for displaying the count of orders with this status in the admin area.

The function is hooked to the ‘init’ action using add_action( ‘init’, ‘register_shipment_arrival_order_status’ );. This ensures the custom order status is registered during the WordPress initialization process.

Step 2: Add Custom WooCommerce Order Status Into Existing Status

The next step is adding the custom order status ‘Shipment Arrival’ to the existing WooCommerce order statuses array.

To do this, add the following code to the functions.php file.

function add_awaiting_shipment_to_order_statuses( $order_statuses ) {
   $new_order_statuses = array();
   foreach ( $order_statuses as $key => $status ) {
       $new_order_statuses[ $key ] = $status;
       if ( 'wc-processing' === $key ) {
           $new_order_statuses['wc-arrival-shipment'] = 'Shipment Arrival';
   return $new_order_statuses;
add_filter( 'wc_order_statuses', 'add_awaiting_shipment_to_order_statuses' );

Code Explanation

Here’s the breakdown of the code and its explanation.

  • add_awaiting_shipment_to_order_statuses(): This function adds the custom order status ‘Shipment Arrival’ to the existing WooCommerce order statuses array.
  • It takes $order_statuses as an argument, iterates through the array, and adds the custom status right after the ‘wc-processing’ status.
  • The function is hooked to the ‘wc_order_statuses’ filter using add_filter( ‘wc_order_statuses’, ‘add_awaiting_shipment_to_order_statuses’ );. This filter allows you to modify the list of WooCommerce order statuses.

Step 3: Verify the Results

To verify the results:

  1. Go to WooCommerce → Orders;
  2. WooCommerce Dashboard → Open Your Order, click the drop-down menu under the status;
  3. You can see your custom order status in Order Details.

verify custom order status in woocommerce

Future-Proof Your Online Store with Autonomous

Keep your online store ready for all the unexpected traffic spikes with Cloudways Autonomous. Stay ahead of the curve with advanced scalability and cutting-edge technology.

Best Practices for WooCommerce Custom Order Status

Here are some of the best practices for WooCommerce Custom order status. These practices ensure your orders don’t look out of proportion and align with your business tone.

  • Thoroughly analyze your business requirements and workflows to determine which statuses will provide the most value.
  • Choose clear and descriptive names for your custom order statuses so they are easily understood by both store administrators and customers.
  • Follow a consistent naming convention, similar to the default WooCommerce statuses (e.g., ‘wc-custom-status’).
  • Avoid creating too many custom order statuses, as this can make the order management process more complex and challenging to manage.
  • Before implementing custom order statuses on your live store, thoroughly test them in a staging or development environment.
  • Regularly review and update your custom order statuses to ensure they continue to meet your business needs.


WooCommerce custom order status can greatly benefit online store owners. It can help streamline the order management process, provide a more personalized experience to customers, and better reflect the business’s unique needs.

After reading this article, you can add custom order status in WooCommerce in no time and take your store’s order management system to the next level. So why not try it and see how it can benefit your business?

Share your opinion in the comment section. COMMENT NOW

Share This Article

Owais Khan

Owais works as a Marketing Manager at Cloudways (managed hosting platform) where he focuses on growth, demand generation, and strategic partnerships. With more than a decade of experience in digital marketing and B2B, Owais prefers to build systems that help teams achieve their full potential.


Get Our Newsletter
Be the first to get the latest updates and tutorials.

Thankyou for Subscribing Us!


Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Want to Experience the Cloudways Platform in Its Full Glory?

Take a FREE guided tour of Cloudways and see for yourself how easily you can manage your server & apps on the leading cloud-hosting platform.

Start my tour


  • 0


  • 0


  • 0


  • 0



For 4 Months &
40 Free Migrations

For 4 Months &
40 Free Migrations

Upgrade Now