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:
- Go to WooCommerce → Orders;
- WooCommerce Dashboard → Open Your Order, click the drop-down menu under the status;
- You can see your custom order status in Order Details.
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.
Summary
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?
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.