How to Add Custom Order Status ‘Pre Order’ for WooCommerce 2.2

# This is post #3 of 31 in the challenge “Mastering WooCommerce

Sometimes if you need to add a custom order status such as “Pre Order” for some of the customer order, you need to update that and let your customer to know this is a pre order where no action will be taken until stock arrive.

In order to do this, you can put below code into your them functions.php:

// New order status - Pre Order
function tt_register_pre_order_status() {
  register_post_status( 'wc-pre-order', array(
    'label' => _x( 'Pre Order', 'Order status', 'textdomain' ),
    'public' => true,
    'exclude_from_search' => false,
    'show_in_admin_all_list' => true,
    'show_in_admin_status_list' => true,
    'label_count' => _n_noop( 'Pre Order <span class="count">(%s)</span>', 'Pre Order <span class="count">(%s)</span>', 'textdomain' )
  ) );
add_action( 'init', 'tt_register_pre_order_status' );
// Register in wc_order_statuses.
function tt_new_wc_order_status( $order_statuses ) {
  $order_statuses['wc-pre-order'] = _x( 'Pre Order', 'Order status', 'textdomain' );
  return $order_statuses;
add_filter( 'wc_order_statuses', 'tt_new_wc_order_status' );

Edit Order form is updated with above snippet with “Order status” drop down list, you can see “Pre Order” status.

New WooCommerce Order Status - Pre Order

New WooCommerce Order Status – Pre Order


  1. Thanks, Great I was looking for this but all pre order plugins are paid and I’m not ready to pay for that right now. Will try this code tomorrow hope that will work 🙂

Leave a Comment.