首页 文章

如何删除WooCommerce订单状态?

提问于
浏览
1

我想修改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 文件中加载一个新函数,但似乎不起作用 .

我想要实现的是从状态菜单中删除订单项“处理” . 我也试过css,但那些不支持

select option[value="wc-processing"] {display: none !important;}

1 回答

  • 1

    您需要使用过滤器 . 曾几何时,我写了一篇我认为很好的教程解释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' );
    

    请记住,处理状态是创建订单时的默认状态,因此您可能必须进行其他更改以补偿其删除 .

相关问题