如何添加woocommerce自定义订单状态?

NNK*_*NKK 9 wordpress function woocommerce

我使用以下功能为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' );
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

在此输入图像描述

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

Mar*_*sov 14

您注册的订单状态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' );
Run Code Online (Sandbox Code Playgroud)

  • '这导致仅保存帖子状态的前 20 个字符'谢谢!!!为这个问题奋斗了好几天! (2认同)