【问题标题】:How to add woocommerce custom order status?如何添加 woocommerce 自定义订单状态?
【发布时间】:2015-06-29 15:29:36
【问题描述】:

我已使用以下功能向 woocommerce 添加了新的自定义订单状态。

// Register New Order Statuses
function wpex_wc_register_post_statuses() {
	register_post_status( 'wc-custom-order-status', array(
		'label'						=> _x( 'Shipping In Progress', 'WooCommerce Order status', 'text_domain' ),
		'public'					=> true,
		'exclude_from_search'		=> false,
		'show_in_admin_all_list'	=> true,
		'show_in_admin_status_list'	=> true,
		'label_count'				=> _n_noop( 'Approved (%s)', 'Approved (%s)', 'text_domain' )
	) );
}
add_filter( 'init', 'wpex_wc_register_post_statuses' );

// Add New Order Statuses to WooCommerce
function wpex_wc_add_order_statuses( $order_statuses ) {
	$order_statuses['wc-custom-order-status'] = _x( 'Shipping In Progress', 'WooCommerce Order status', 'text_domain' );
	return $order_statuses;
}
add_filter( 'wc_order_statuses', 'wpex_wc_add_order_statuses' );

每当我去编辑订单并将订单状态更改为新添加的自定义订单状态并单击保存订单按钮时​​。加载后订单状态自动变为Pending Order 不在新添加的自定义订单中...

如何克服这个问题...?

【问题讨论】:

    标签: php wordpress function woocommerce


    【解决方案1】:

    您正在注册的订单状态 wc-custom-order-status 太长 - 22 字符。这会导致仅保存帖子状态的前 20 个字符,从而使其无效并导致您的问题。

    订单状态注册为发布状态,发布状态有20个字符的限制。

    我建议您将wc-custom-order-status 状态名称更新为wc-shipping-progress,长度正好是20 个字符。

    我还发布了您的代码的更新版本,仅供参考(我只更改了状态名称):

    // Register New Order Statuses
    function wpex_wc_register_post_statuses() {
        register_post_status( 'wc-shipping-progress', array(
            'label'                     => _x( 'Shipping In Progress', 'WooCommerce Order status', 'text_domain' ),
            'public'                    => true,
            'exclude_from_search'       => false,
            'show_in_admin_all_list'    => true,
            'show_in_admin_status_list' => true,
            'label_count'               => _n_noop( 'Approved (%s)', 'Approved (%s)', 'text_domain' )
        ) );
    }
    add_filter( 'init', 'wpex_wc_register_post_statuses' );
    
    // Add New Order Statuses to WooCommerce
    function wpex_wc_add_order_statuses( $order_statuses ) {
        $order_statuses['wc-shipping-progress'] = _x( 'Shipping In Progress', 'WooCommerce Order status', 'text_domain' );
        return $order_statuses;
    }
    add_filter( 'wc_order_statuses', 'wpex_wc_add_order_statuses' );
    

    【讨论】:

    • 谢谢!如果可以的话,我会加倍喜欢你的回答。
    • '这导致只保存帖子状态的前 20 个字符' 谢谢!!!与这个问题斗争的日子!
    • 我知道这是 5 年的历史,但这解决了我的订单状态未保存的问题。
    猜你喜欢
    • 2019-08-27
    • 2021-08-16
    • 2023-04-03
    • 1970-01-01
    • 2020-02-01
    • 2019-11-13
    • 2020-05-03
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多