重命名 WooCommerce 订单状态的效果

Effect of renaming the WooCommerce Order Status

我使用以下代码重命名了 WooCommerce 订单状态,它工作正常。 这里 'On hold' 状态更改为 'Order Received'.

add_filter( 'wc_order_statuses', 'wc_renaming_order_status' );
function wc_renaming_order_status( $order_statuses ) {
    foreach ( $order_statuses as $key => $status ) {
        if ( 'wc-completed' === $key ) 
            $order_statuses['wc-on-hold'] = _x( 'Order Received', 'Order status', 'woocommerce' );
    }
    return $order_statuses;
}

现在问题出在我现有的代码库中,在许多地方 'on-hold' status 正在使用,例如:


$order->update_status( apply_filters(
       'woocommerce_cod_process_payment_order_status',
       $order->has_downloadable_item() ? 'on-hold' : 'processing', $order
       ), __( 'Payment to be made upon delivery.', 'woocommerce' ) );

if($order->has_status('on-hold')) {
                   // do some operation
               }

我是否需要将所有出现的 'on-hold' 替换为 'order-received' 状态,否则 'wc_order_statuses' 过滤器会自动处理?

谢谢!!!

通过使用以下代码,您可以更改订单状态和订单状态标签。

add_filter('wc_order_statuses', 'wc_renaming_order_status');

function wc_renaming_order_status($order_statuses) {

    $order_statuses['wc-on-hold'] = _x('Order Received', 'Order status', 'woocommerce');
    
    return $order_statuses;
}

此处订单状态的标签正在更改。它不会影响任何使用状态代码(on-holdcompleted、...)的情况。

应用测试OK见附件截图。