我如何将订单分配给Woocommerce中的某个店铺经理
问题描述:
我们有一个服务woocommerce网上商店和三个店铺经理。我如何将订单分配给Woocommerce中的某个店铺经理
我们希望筛选新订单并将其分配给这三位经理之一。经理只能看到他们分配的订单,并且不能访问或查看剩余的订单。
也许这可以通过custom_field过滤后端视图(管理面板)来完成,但我不知道这是否是一种好方法。也许有一个基于角色能力的插件。
有什么建议吗?
谢谢。
答
在遇到同样的问题后,我将相似的,已经回答的问题的解决方案结合起来,并且工作正常。我知道这个问题很古老,但有人可能会觉得它有帮助。这里是一个可能的解决方案:
- 添加自定义元的主要含所需store_manager ID到每一个订单(在我的情况下,如果一个命令是从一个特定的国家,我想只有一个sprecific store_manager看到它,你可以把你的自定义逻辑在before_checkout_create_order()功能)
function before_checkout_create_order($order, $data) {
$country = $order->billing_country;
$store_manager_id = '';
$belgium_region = ['BE', 'NL', 'DE'];
$czech_region = ['CZ', 'AT', 'SI', 'HU'];
$uk_region = ['GB'];
if (in_array($country, $belgium_region)) {
// Manually assigning the _store_manager_id using the user id, yours will differ
$store_manager_id = 7;
} else if (in_array($country, $czech_region)) {
$store_manager_id = 3;
} else if (in_array($country, $uk_region)) {
$store_manager_id = 2;
} else {
$store_manager_id = 1;
}
$order->update_meta_data('_store_manager_id', $store_manager_id);
}
add_action('woocommerce_checkout_create_order', 'before_checkout_create_order', 20, 2);
我找到了方法的顺序ON THIS THREAD你可以看到什么分配自定义元键woocommerce_checkout_create_order和$命令 - > update_meta_data()钩和方法在那里做,它已经深受其作者解释
- 滤波器Woocommerce管理次序列表只显示当前用户分配的订单(但让法师管理员查看所有的订单也)
function custom_admin_shop_manager_orders($query) {
global $pagenow;
$qv = &$query->query_vars;
$currentUserRoles = wp_get_current_user()->roles;
$user_id = get_current_user_id();
if (in_array('shop_manager', $currentUserRoles)) {
if ($pagenow == 'edit.php' &&
isset($qv['post_type']) && $qv['post_type'] == 'shop_order') {
// I use the meta key from step 1 as a second parameter here
$query->set('meta_key', '_store_manager_id');
// The value we want to find is the $user_id defined above
$query->set('meta_value', $user_id);
}
}
return $query;
}
add_filter('pre_get_posts', 'custom_admin_shop_manager_orders');
正如你可以看到,我们检查当前用户的角色是shop_manager打完所有的逻辑不一样,如果你算管理员 - 你会看到所有的订单,但如果你是一个shop_manager,你只会得到你的订单。 edit.php是woocommerce订单列表页面。
我发现THIS THREAD的第二步,所以你可以在那里找到更多的信息。
希望这可以帮助你!