From 5862a462a9753ec36e43b169c8ecfade7875a3ed Mon Sep 17 00:00:00 2001 From: Fulvio Notarstefano Date: Tue, 19 Apr 2016 21:20:55 +0200 Subject: [PATCH] Make register shop order post statuses filterable --- includes/class-wc-post-types.php | 121 +++++++++++++++++-------------- 1 file changed, 65 insertions(+), 56 deletions(-) diff --git a/includes/class-wc-post-types.php b/includes/class-wc-post-types.php index 330b364bfc3..d2c540c2b7a 100644 --- a/includes/class-wc-post-types.php +++ b/includes/class-wc-post-types.php @@ -435,62 +435,71 @@ class WC_Post_types { * Register our custom post statuses, used for order status. */ public static function register_post_status() { - register_post_status( 'wc-pending', array( - 'label' => _x( 'Pending Payment', '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( 'Pending Payment (%s)', 'Pending Payment (%s)', 'woocommerce' ) - ) ); - register_post_status( 'wc-processing', array( - 'label' => _x( 'Processing', '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( 'Processing (%s)', 'Processing (%s)', 'woocommerce' ) - ) ); - register_post_status( 'wc-on-hold', array( - 'label' => _x( 'On Hold', '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( 'On Hold (%s)', 'On Hold (%s)', 'woocommerce' ) - ) ); - register_post_status( 'wc-completed', array( - 'label' => _x( 'Completed', '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( 'Completed (%s)', 'Completed (%s)', 'woocommerce' ) - ) ); - register_post_status( 'wc-cancelled', array( - 'label' => _x( 'Cancelled', '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( 'Cancelled (%s)', 'Cancelled (%s)', 'woocommerce' ) - ) ); - register_post_status( 'wc-refunded', array( - 'label' => _x( 'Refunded', '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( 'Refunded (%s)', 'Refunded (%s)', 'woocommerce' ) - ) ); - register_post_status( 'wc-failed', array( - 'label' => _x( 'Failed', '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( 'Failed (%s)', 'Failed (%s)', 'woocommerce' ) - ) ); + + $order_statuses = apply_filters( 'woocommerce_register_shop_order_post_statuses', + array( + 'wc-pending' => array( + 'label' => _x( 'Pending Payment', '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( 'Pending Payment (%s)', 'Pending Payment (%s)', 'woocommerce' ) + ), + 'wc-processing' => array( + 'label' => _x( 'Processing', '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( 'Processing (%s)', 'Processing (%s)', 'woocommerce' ) + ), + 'wc-on-hold' => array( + 'label' => _x( 'On Hold', '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( 'On Hold (%s)', 'On Hold (%s)', 'woocommerce' ) + ), + 'wc-completed' => array( + 'label' => _x( 'Completed', '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( 'Completed (%s)', 'Completed (%s)', 'woocommerce' ) + ), + 'wc-cancelled' => array( + 'label' => _x( 'Cancelled', '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( 'Cancelled (%s)', 'Cancelled (%s)', 'woocommerce' ) + ), + 'wc-refunded' => array( + 'label' => _x( 'Refunded', '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( 'Refunded (%s)', 'Refunded (%s)', 'woocommerce' ) + ), + 'wc-failed' => array( + 'label' => _x( 'Failed', '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( 'Failed (%s)', 'Failed (%s)', 'woocommerce' ) + ), + ) + ); + + foreach ( $order_statuses as $order_status => $values ) { + register_post_status( $order_status, $values ); + } } /**