How To Add Custom WooCommerce order statuses

woocommerce custom order status

I’ve been working with a couple of clients recently who needed custom order statuses for their WooCommerce orders.

Custom order status are usually used to show the work flow of an order as it is moved through the fullfilment process.

In this video tutorial I’ll show you how to add those custom statues.

Code

Add the following code to your functions.php file or use the code snippets plugin as I do.

Change the labels (marked in bold) to match the names of the order statuses you need.


function register_custom_order_statuses() {
    register_post_status('wc-awaiting-pickup', array(
        'label'                     => _x('Awaiting Pickup', 'Order status', 'text_domain'),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop('Awaiting Pickup <span class="count">(%s)</span>', 'Awaiting Pickup <span class="count">(%s)</span>', 'text_domain')
    ));
    
    register_post_status('wc-shipped', array(
        'label'                     => _x('Shipped', 'Order status', 'text_domain'),
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop('Shipped <span class="count">(%s)</span>', 'Shipped <span class="count">(%s)</span>', 'text_domain')
    ));
}

add_action('init', 'register_custom_order_statuses');

function add_custom_order_statuses_to_woocommerce($order_statuses) {
    $order_statuses['wc-awaiting-pickup'] = _x('Awaiting Pickup', 'Order status', 'text_domain');
    $order_statuses['wc-shipped'] = _x('Shipped', 'Order status', 'text_domain');

    return $order_statuses;
}

add_filter('wc_order_statuses', 'add_custom_order_statuses_to_woocommerce');

Video Tutorial

Here’s a video tutorial to show the code in action

Wrap Up

If you need help setting up custom statuses on your WooCommerce store, head over to my services page to get a no obligation quote.

Get A No Obligation Quote

Do You Need Help With Your WooCommerce Site?

Click through to the next page and complete the form to get a free no obligation quote to fix any issue you are having with your WooCommerce site.