【发布时间】:2020-05-23 00:59:31
【问题描述】:
我使用以下代码向 WooCommerce 添加了几个新的订单状态:
// Register new status
function register_woocommerce_status() {
register_post_status( 'wc-ready-for-pickup', array(
'label' => 'Ready for Pickup',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Ready for Pickup (%s)', 'Ready for Pickup (%s)' )
) );
register_post_status( 'wc-ready-for-delivery', array(
'label' => 'Ready for Delivery',
'public' => true,
'exclude_from_search' => false,
'show_in_admin_all_list' => true,
'show_in_admin_status_list' => true,
'label_count' => _n_noop( 'Ready for Delivery (%s)', 'Ready for Delivery (%s)' )
) );
}
add_action( 'init', 'register_woocommerce_status' );
// Add to list of WC Order statuses
function add_awaiting_shipment_to_order_statuses( $order_statuses ) {
$new_order_statuses = array();
// add new order status after processing
foreach ( $order_statuses as $key => $status ) {
$new_order_statuses[ $key ] = $status;
if ( 'wc-processing' === $key ) {
$new_order_statuses['wc-ready-for-pickup'] = 'Ready for Pickup';
$new_order_statuses['wc-ready-for-delivery'] = 'Ready for Delivery';
}
}
return $new_order_statuses;
}
add_filter( 'wc_order_statuses', 'add_awaiting_shipment_to_order_statuses' );
这一切都适用于“准备取货”,但如果我尝试将订单状态设置为“准备交付”,它根本不会重置。它添加到订单说明中说它这样做了,但实际上并没有设置它。
任何想法是什么问题?
【问题讨论】:
-
它适用于 WP 5.4 和 WC 4
-
你试过在单独的函数中做 register_post_type 吗?或者也许改变两者并从“准备交付”开始。只是为了确保在一个动作中运行两次没有问题。
-
你的钩子和回调是正确的,它工作正常。我看不出代码有任何问题(仅缺少翻译)
-
只需将您的密钥更改为
wc-readyfor-pickup和wc-readyfor-delivery即可。 -
这段代码现在还没有过时吗?使用
init对面woocommerce_register_shop_order_post_statuses
标签: wordpress woocommerce