我已经创建了一个自定义角色“Marron”,他可以访问 WordPress 仪表板并查看所有 WooCommerce 订单。
但我希望“Marron”用户角色能够在 WP 管理仪表板中仅查看自己的订单。 (只看没有编辑功能。)
我尝试过用户角色编辑器插件,但没有一个提供此类功能。有什么建议吗?
您可以使用以下功能代码,将在管理订单列表中显示当前用户订单,仅适用于定义的用户角色(在下面的代码中设置您的用户角色SLUG):
add_action( 'pre_get_posts', 'filter_admin_orders_list_user_orders' );
function filter_admin_orders_list_user_orders( $query ) {
global $pagenow, $typenow, $current_user;
$user_role = 'marron'; // <== Here set the desire user role SLUG
// Targeting WooCommerce admin orders list only
if ( 'edit.php' === $pagenow && 'shop_order' === $typenow && in_array($user_role, $current_user->roles) ){
$query->set('meta_query', array( array(
'key' => '_customer_user',
'value' => $current_user->ID,
) ) );
}
return $query;
}
代码位于子主题的functions.php 文件中(或插件中)。已测试并有效。