Creating a custom order status in WooCommerce can be useful if there are extra steps in your business processes. Perhaps you would like to set a custom order status of “Dispatched”, “Exchanged” or “Being Picked”. With this code snippet, you are able to create any custom status you like to meet your business and customer needs.
/**
* Snippet Name: Create custom WooCommerce order statuses.
* Snippet Author: ecommercehints.com
*/
add_filter( 'woocommerce_register_shop_order_post_statuses', 'ecommercehints_register_custom_order_status' );
function ecommercehints_register_custom_order_status( $order_statuses ){
$order_statuses['wc-custom-status'] = array(
'label' => _x( 'Custom Status', 'Order status', 'woocommerce' ),
'public' => false,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Custom Status (%s)', 'Custom Status (%s)', 'woocommerce' ),
);
return $order_statuses;
}
add_filter( 'wc_order_statuses', 'ecommercehints_show_custom_order_status' );
function ecommercehints_show_custom_order_status( $order_statuses ) {
$order_statuses['wc-custom-status'] = _x( 'Custom Status', 'Order status', 'woocommerce' );
return $order_statuses;
}
add_filter( 'bulk_actions-edit-shop_order', 'ecommercehints_get_custom_order_status_bulk' );
function ecommercehints_get_custom_order_status_bulk( $bulk_actions ) {
$bulk_actions['mark_custom-status'] = 'Change status to custom status';
return $bulk_actions;
}
?>