WooCommerce order status provides crucial information about the progress of an order from the time it gets placed to when it’s delivered.
These order statuses are paramount in streamlining business operations, enhancing customer experience and monitoring revenue.
The default WooCommerce has multiple order statuses that help store owners organize their fulfillment process.
However, every business has its own way of handling their orders.
That’s why many companies look to extend WooCommerce’s default functionality to manage their order statuses as per their requirements.
In this post, we’ll look at the default WooCommerce order status and how the orders are processed.
Further, we’ll expand on managing the orders and creating custom order statuses in WooCommerce for efficiently carrying out business operations.
Contents
WooCommerce order status refers to distinct stages through which an order gets processed within WooCommerce.
It represents the current stage of an order that provides information about its processing and fulfillment status.
These statuses convey the progress of an order from the moment it gets placed to the time it gets delivered to the customer.
The WooCommerce order statuses help both store owners and customers by:
These statuses are quite crucial in managing orders, ensuring smooth business operations and enhancing customer satisfaction.
WooCommerce has the default order statuses in its order fulfillment process. Here is the complete WooCommerce order status list below:
To clarify further, we’ll help you understand the order processing status for different products in a WooCommerce store.
The order status goes through different stages for different types of products to ensure its fulfillment.
Simply put, physical products are processed differently than digital products in an eCommerce store.
Let’s understand the WooCommerce order status for different products.
Physical products go through the journey of order processing, shipping and delivery. Therefore, it takes some time to process the order and change the order status.
Initially, the order status changes to ‘Processing’ once the payment is successful. After the order gets delivered to the customer, the order status changes to ‘Completed’.
Virtual products are digital, non-tangible items such as memberships, services, warranties, subscriptions, etc.
These virtual items can be accessed with a username and password or a website URL hosted on a server.
Upon successful order placement, the order status goes to ‘Processing’.
Since the virtual products cannot be delivered to you, it continues to show the order status in processing.
However, you can use a plugin called Autocomplete WooCommerce Orders that allows you to complete the order status for virtual products.
We’ve discussed the autoprocessing of order status later in this post.
Virtual + downloadable products are digital products that can be downloaded, such as ebooks, music files, PDFs, etc. These can be downloaded straight to your device.
Once you’ve made the successful purchase, the order status instantly changes to ‘Completed’.
We already know a lot about the default order statuses in WooCommerce. These help track the progress of orders placed in your store.
However, the default options may not be suitable for everyone’s needs. What if you want your customers updated about their orders more granularly?
That’s where the ability to add WooCommerce custom order status comes in.
Adding custom order statuses in WooCommerce assists store owners in better managing their orders and providing personalized experiences to their customers.
With custom order status, store owners can create their own order statuses based on their specific needs.
You can add WooCommerce custom order status in two ways:
Let’s look at both of these processes.
First, you must install a free WordPress plugin called WPCode Insert Headers and Footers + Custom Code Snippets.
Next, go to ‘Snippets’ and click the ‘Add New’ button.
Add the following snippet code and select the option below to run it everywhere on the website.
Once done, hit ‘Update’ and activate the snippet.
Orders in WooCommerce have a special ‘post_status’ value attached to them on the wp_posts table in the database, like any other posts.
Therefore, we’ll use the register_post_status() inbuilt function to include our custom order status.
This is the code you need to copy and paste on the code snippet.
// Register new status
function register_order_shipped_order_status() {
register_post_status( 'wc-order-shipped', array(
'label' => 'Order Shipped',
'public' => true,
'show_in_admin_status_list' => true,
'show_in_admin_all_list' => true,
'exclude_from_search' => false,
'label_count' => _n_noop( 'Order Shipped (%s)', 'Order Shipped (%s)' )
) );
}
// Add custom status to order status list
function add_order_shipped_to_order_statuses( $order_statuses ) {
$new_order_statuses = array();
foreach ( $order_statuses as $key => $status ) {
$new_order_statuses[ $key ] = $status;
if ( 'wc-on-hold' === $key ) {
$new_order_statuses['wc-order-shipped'] = 'Order Shipped';
}
}
return $new_order_statuses;
}
add_action( 'init', 'register_order_shipped_order_status' );
add_filter( 'wc_order_statuses', 'add_order_shipped_to_order_statuses' );
Well done! This is how you can create a custom WooCommerce order status using a code snippet.
The easiest way to create a custom order status in WooCommerce is by installing a WordPress plugin like Custom Order Status Manager for WooCommerce.
This plugin lets you create, edit and remove custom order statuses to manage your WooCommerce orders better.
Make sure to install and activate this plugin on your WordPress dashboard.
Once done, go to WooCommerce ⇨ Order Status and click on ‘Add New’.
Fill in the details related to your new custom order status:
Once done, hit the ‘Publish’ button.
As you can see, the new custom order status has successfully been created in your WooCommerce store.
From this dashboard, you can edit this custom status, view, edit the email template, or even delete your custom order status.
You can even take bulk actions if you have set up multiple order statuses.
This plugin perfectly handles and helps you efficiently manage all your custom WooCommerce order statuses.
WooCommerce uses different factors to determine the status of an order. The order status and handling of payment failure may not be as straightforward as expected.
Depending on whether or not the payment was successful, your payment methods also impact the order statuses.
Here are the order statuses for different payment methods used to make transactions in WooCommerce:
Upon successful payment, the order status goes to ‘Processing’. The orders get automatically completed once the order is processed and fulfilled.
If the payment fails, the status goes to ‘Pending’ but ultimately changes to ‘Failed’ upon confirmation.
In the case of check payments, direct bank transfers and cash on deliveries, the order status will not auto-complete. But the stock of those products will reduce.
It is because the transactions are dependent on offline payment methods. Therefore, in such cases, product access doesn’t happen until the payment is successfully received.
Here, the order status remains on ‘Processing’. The store owner or admin has to verify and manually change the order status to ‘Completed’ or ‘Failed’ in case of successful or unsuccessful transactions.
By default, WooCommerce automatically completes the paid orders for only virtual + downloadable products after a successful purchase.
However, for only virtual products, the order status goes to ‘Processing’, which shouldn’t be the case.
WooCommerce should also mark the order as ‘Completed’ for digital (virtual) products.
But you can alter this behavior in your store.
You can change the WooCommerce order status automatically (programmatically) to ensure it’s convenient for store owners and customers.
To automatically change WooCommerce order status, you must install a WordPress plugin called Autocomplete WooCommerce Orders by QuadLayers.
Once you have the plugin, you can set the autocomplete configurations from the WooCommerce settings.
To do that, go to WooCommerce ⇨ Settings ⇨ Autocomplete Orders tab.
Click on the Mode options and select ‘Paid orders of virtual products only’.
You also get different options to configure from here that let you autocomplete your WooCommerce orders.
Once done, hit the ‘Save Changes’ button.
When a user successfully places a virtual order, the order status will automatically be moved to ‘Completed’.
Please note that you can configure autocomplete orders for all orders as well.
Now, if you try a test purchase of your virtual product in your store, go from the product page to checkout order page and test purchase it.
As you can see, we can see the thank you page here, signifying our purchase is complete.
Now, if you go to WooCommerce orders, you’ll be able to see the order status - Completed.
That means this plugin works!
Alternatively, you can use other WordPress plugins as well. Here are some recommendations:
These WooCommerce order status manager plugins effectively let you streamline the order fulfillment process in your business.
In the next blogs, we'll be set up and send custom emails for different WooCommerce order statuses. So stay tuned for that!
We hope this post has provided a detailed understanding of WooCommerce order status, which will help you successfully manage your store.
By grasping the significance of each status, you can ensure a seamless experience for you and your customers.
You can even add custom order status in WooCommerce to help streamline the order management and fulfillment process per your business requirements.
Further, you can manage and automatically change the order status for different products using WordPress plugins.
This way, you can carry out your business operations and enhance customer satisfaction efficiently.
In the next blog post, we'll explore how you can custom emails for specific WooCommerce order statuses.