如何删除 WooCommerce 订单状态?
How to remove WooCommerce order status?
我想修改 woocommerce 中包含的一个功能。这是我编辑的函数 (woocommerce/includes/wc-order-functions.php
):
function wc_get_order_statuses() {
$order_statuses = array(
'wc-pending' => _x( 'Pending Payment', 'Order status', 'woocommerce' ),
/*'wc-processing' => _x( 'Processing', 'Order status', 'woocommerce' ),*/
'wc-on-hold' => _x( 'On Hold', 'Order status', 'woocommerce' ),
'wc-completed' => _x( 'Completed', 'Order status', 'woocommerce' ),
'wc-cancelled' => _x( 'Cancelled', 'Order status', 'woocommerce' ),
'wc-refunded' => _x( 'Refunded', 'Order status', 'woocommerce' ),
'wc-failed' => _x( 'Failed', 'Order status', 'woocommerce' ),
);
return apply_filters( 'wc_order_statuses', $order_statuses );
}
我试图在子主题的 function.php
文件中加载一个新功能,但似乎不起作用。
我想要实现的是从状态菜单中删除订单项 "Processing"。我也试过 css 但那些不支持
select option[value="wc-processing"] {display: none !important;}
您需要使用过滤器。曾几何时,我写了一个我认为很好的教程解释 WordPress filters
在这种情况下,最终结果将是:
function so_39252649_remove_processing_status( $statuses ){
if( isset( $statuses['wc-processing'] ) ){
unset( $statuses['wc-processing'] );
}
return $statuses;
}
add_filter( 'wc_order_statuses', 'so_39252649_remove_processing_status' );
请记住,处理状态是创建订单时的默认状态,因此您可能需要进行其他更改以补偿它的删除。
我想修改 woocommerce 中包含的一个功能。这是我编辑的函数 (woocommerce/includes/wc-order-functions.php
):
function wc_get_order_statuses() {
$order_statuses = array(
'wc-pending' => _x( 'Pending Payment', 'Order status', 'woocommerce' ),
/*'wc-processing' => _x( 'Processing', 'Order status', 'woocommerce' ),*/
'wc-on-hold' => _x( 'On Hold', 'Order status', 'woocommerce' ),
'wc-completed' => _x( 'Completed', 'Order status', 'woocommerce' ),
'wc-cancelled' => _x( 'Cancelled', 'Order status', 'woocommerce' ),
'wc-refunded' => _x( 'Refunded', 'Order status', 'woocommerce' ),
'wc-failed' => _x( 'Failed', 'Order status', 'woocommerce' ),
);
return apply_filters( 'wc_order_statuses', $order_statuses );
}
我试图在子主题的 function.php
文件中加载一个新功能,但似乎不起作用。
我想要实现的是从状态菜单中删除订单项 "Processing"。我也试过 css 但那些不支持
select option[value="wc-processing"] {display: none !important;}
您需要使用过滤器。曾几何时,我写了一个我认为很好的教程解释 WordPress filters
在这种情况下,最终结果将是:
function so_39252649_remove_processing_status( $statuses ){
if( isset( $statuses['wc-processing'] ) ){
unset( $statuses['wc-processing'] );
}
return $statuses;
}
add_filter( 'wc_order_statuses', 'so_39252649_remove_processing_status' );
请记住,处理状态是创建订单时的默认状态,因此您可能需要进行其他更改以补偿它的删除。