自定义订单状态不会显示在客户的帐户订单历史记录中

时间:2016-09-26 02:39:30

标签: php wordpress woocommerce status orders

在WooCommerce中,我制作了2个自定义订单状态。第一个是“运输状态”,另一个是“已批准状态”。

在我将某些订单状态更改为这两个新状态(db10$score <- ifelse(db10$income < aggregate(income~Year+industry,db10,quantile,c(0.2)),1,0) shipping)后,客户无法在其订单历史记录页面上查看此订单。

这是我的代码:

approved

但如果我将订单状态更改回function register_awaiting_shipment_order_status() { if('product_manager' == $get_roles || 'administrator' == $get_roles){ register_post_status( 'wc-shipping', array( 'label' => 'wc-shipping', 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Shipping <span class="count">(%s)</span>', 'Shipping <span class="count">(%s)</span>' ) ) ); } if('approver' == $get_roles || 'administrator' == $get_roles ||'product_manager' == $get_roles ){ register_post_status( 'wc-approved', array( 'label' => 'wc-approved', 'public' => true, 'exclude_from_search' => false, 'show_in_admin_all_list' => true, 'show_in_admin_status_list' => true, 'label_count' => _n_noop( 'Approved <span class="count">(%s)</span>', 'Approved <span class="count">(%s)</span>' ) ) ); } } add_action( 'init', 'register_awaiting_shipment_order_status' ); 默认订单状态(例如“已完成”),则客户可以再次查看订单历史记录。

我做错了什么? 如何在客户订单历史记录页面上显示具有新自定义状态的新订单?

感谢。

1 个答案:

答案 0 :(得分:2)

我已经纠正了代码中的小错误。 您需要在主题文字域(或slug)处替换 textdomain

  

要完成并显示此新的自定义订单状态,您还需要在 wc_order_statuses 上使用的 my_account/orders.php 过滤器挂钩中注册它们在其帐户页面上显示客户订单的模板。

这是重新审视的代码:

function register_new_custom_order_statuses() {

    if('product_manager' == $get_roles || 'administrator' == $get_roles){
        register_post_status( 'wc-shipping', array(
            'label'                     => _x( 'Shipping', 'Order status', 'textdomain' ),
            'public'                    => true,
            'exclude_from_search'       => false,
            'show_in_admin_all_list'    => true,
            'show_in_admin_status_list' => true,
            'label_count'               => _n_noop( 'Shipping <span class="count">(%s)</span>', 'Shipping <span class="count">(%s)</span>' )
        ) );
    }

    if('approver' == $get_roles  || 'administrator' == $get_roles ||'product_manager' == $get_roles ){
        register_post_status( 'wc-approved', array(
            'label'                     => _x( 'Approved', 'Order status', 'textdomain' ),
            'public'                    => true,
            'exclude_from_search'       => false,
            'show_in_admin_all_list'    => true,
            'show_in_admin_status_list' => true,
            'label_count'               => _n_noop( 'Approved <span class="count">(%s)</span>', 'Approved <span class="count">(%s)</span>' )
        ) );
    }
}
add_action( 'init', 'register_new_custom_order_statuses' );

// Register new statuses in wc_order_statuses (function).
function register_new_custom_wc_order_statuses( $order_statuses ) {
    $order_statuses['wc-shipping'] = _x( 'Shipping', 'Order status', 'textdomain' );
    $order_statuses['wc-approved'] = _x( 'Approved', 'Order status', 'textdomain' );
    return $order_statuses;
}
add_filter( 'wc_order_statuses', 'register_new_custom_wc_order_statuses' );

此代码位于活动子主题(或主题)的function.php文件中或任何插件文件中。

代码已经过测试并且功能齐全。

参考文献: