【问题标题】:WooCommerce won't allow me to set a custom order statusWooCommerce 不允许我设置自定义订单状态
【发布时间】: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-pickupwc-readyfor-delivery 即可。
  • 这段代码现在还没有过时吗?使用init 对面woocommerce_register_shop_order_post_statuses

标签: wordpress woocommerce


【解决方案1】:

好吧,万一其他人遇到这种情况,这就是最终为我工作的方法:

我尝试了其他人建议的各种方法,例如将 wc-ready-for-delivery 放在首位而不是 wc-ready-for-pickup,完全删除 wc-ready-for-pickup 等。无论我做了什么,系统不会将其设置为“准备交付”

然后我尝试将密钥从 wc-ready-for-delivery 更改为 wc-readyfor-delivery,它工作得很好。我不知道问题是什么,但你去吧。

【讨论】:

    猜你喜欢
    • 2018-12-30
    • 2021-09-16
    • 2020-02-01
    • 2019-11-13
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2018-08-30
    • 2019-08-27
    相关资源
    最近更新 更多