如何针对特定用户角色从 WordPress 管理员端隐藏条带?
How can I hide stripe from WordPress admin side for specific user role?
我正在使用用户角色编辑器并尝试为特定用户隐藏此条带网关
我应该在用户编辑角色的设置中检查什么,这样我才能看到订单但看不到条带。
您使用的“Stripe Gateway”插件似乎不提供按角色选择性允许或拒绝使用的功能。今天测试了其中的一些,我还没有找到一个。所以(很棒的)User Role Editor 插件可能无法帮助您完成此任务。但不要绝望!还有其他方法:-)
如果我没理解错的话,您想对一个或多个 roles/users 隐藏 Stripe 设置(因此实时 API 密钥是安全的),对吧?从角色中删除它是最简单的。
实际上,涉及两个步骤。一种是隐藏您提到的“Stripe Gateway”菜单,当然,但 Stripe 设置也可以在 WooCommerce 付款选项卡下找到。我们还需要为 user/role 隐藏该选项卡。
可能有更优雅的解决方案,但我可以提供一个完成此任务的建议。
- 要隐藏不需要的“条纹”菜单,请安装 Adminimize 插件并激活。
- 然后仪表板-设置-管理-菜单选项
- 出现的屏幕将以 table 格式显示在左侧,所有仪表板菜单,其中应该包括您的“Stripe Gateway”。右边是角色列表。
- 在 Adminimize table 中找到不需要的“Stripe Gateway”菜单,并在 table 右侧为 Shop Manager 角色勾选“Deactivate for Shop Manager” 设置 复选框。
- 记得向下滚动并单击“更新选项”按钮以保存插件设置。
希望仪表板中该角色的菜单现已消失。
现在我找不到您正在使用的确切 Stripe 插件,但在此处使用另一个进行说明以生成屏幕截图,以说明我所写的内容(link 屏幕截图)。
Adminimize - hiding a menu from Shop manager role
第二步是删除 WooCommerce 商店经理角色的付款选项卡。这已得到回答 。使用 post 中的代码,将以下内容添加到子主题的 functions.php(如果您使用的是子主题)。
add_filter( 'woocommerce_settings_tabs_array', 'remove_woocommerce_setting_tabs', 200, 1 );
function remove_woocommerce_setting_tabs( $tabs ) {
// Declare the tabs we want to hide
$tabs_to_hide = array(
'Payments',
);
// Get the current user
$user = wp_get_current_user();
// Check if user is a shop-manager
if ( isset( $user->roles[0] ) && $user->roles[0] == 'shop_manager' ) {
// Remove the tabs we want to hide
$tabs = array_diff($tabs, $tabs_to_hide);
}
return $tabs;
}
此处说明了结果(link 截屏)。
Hiding a tab in WooCommerce
我相信有更多经验丰富的 WooCommerce 人员可以提供更好的答案,但我希望这会有所帮助。
所以我创建了这个:
add_action( 'admin_menu', 'remove_admin_menu_items', 999 );
function remove_admin_menu_items() {
// global $woocommerce;
global $submenu;
$current_user = wp_get_current_user();
$role = $current_user->roles;
// To hide settings by role :any_new_role
if ($role[0] == 'any_new_role') {
// users menu
unset( $submenu['users.php'][5] ); // removes list of users
unset( $submenu['users.php'][15] ); // removes edit your profile
remove_menu_page('wc_stripe'); // Hiding stripe gateway settings
remove_menu_page('woocommerce'); // Hiding woocommerce settings
remove_menu_page('automatewoo'); // Hiding automatewoo settings
remove_menu_page('jetpack'); // Hiding jetpack settings
}
}
我正在使用用户角色编辑器并尝试为特定用户隐藏此条带网关
我应该在用户编辑角色的设置中检查什么,这样我才能看到订单但看不到条带。
您使用的“Stripe Gateway”插件似乎不提供按角色选择性允许或拒绝使用的功能。今天测试了其中的一些,我还没有找到一个。所以(很棒的)User Role Editor 插件可能无法帮助您完成此任务。但不要绝望!还有其他方法:-)
如果我没理解错的话,您想对一个或多个 roles/users 隐藏 Stripe 设置(因此实时 API 密钥是安全的),对吧?从角色中删除它是最简单的。
实际上,涉及两个步骤。一种是隐藏您提到的“Stripe Gateway”菜单,当然,但 Stripe 设置也可以在 WooCommerce 付款选项卡下找到。我们还需要为 user/role 隐藏该选项卡。
可能有更优雅的解决方案,但我可以提供一个完成此任务的建议。
- 要隐藏不需要的“条纹”菜单,请安装 Adminimize 插件并激活。
- 然后仪表板-设置-管理-菜单选项
- 出现的屏幕将以 table 格式显示在左侧,所有仪表板菜单,其中应该包括您的“Stripe Gateway”。右边是角色列表。
- 在 Adminimize table 中找到不需要的“Stripe Gateway”菜单,并在 table 右侧为 Shop Manager 角色勾选“Deactivate for Shop Manager” 设置 复选框。
- 记得向下滚动并单击“更新选项”按钮以保存插件设置。
希望仪表板中该角色的菜单现已消失。
现在我找不到您正在使用的确切 Stripe 插件,但在此处使用另一个进行说明以生成屏幕截图,以说明我所写的内容(link 屏幕截图)。 Adminimize - hiding a menu from Shop manager role
第二步是删除 WooCommerce 商店经理角色的付款选项卡。这已得到回答
add_filter( 'woocommerce_settings_tabs_array', 'remove_woocommerce_setting_tabs', 200, 1 );
function remove_woocommerce_setting_tabs( $tabs ) {
// Declare the tabs we want to hide
$tabs_to_hide = array(
'Payments',
);
// Get the current user
$user = wp_get_current_user();
// Check if user is a shop-manager
if ( isset( $user->roles[0] ) && $user->roles[0] == 'shop_manager' ) {
// Remove the tabs we want to hide
$tabs = array_diff($tabs, $tabs_to_hide);
}
return $tabs;
}
此处说明了结果(link 截屏)。 Hiding a tab in WooCommerce
我相信有更多经验丰富的 WooCommerce 人员可以提供更好的答案,但我希望这会有所帮助。
所以我创建了这个:
add_action( 'admin_menu', 'remove_admin_menu_items', 999 );
function remove_admin_menu_items() {
// global $woocommerce;
global $submenu;
$current_user = wp_get_current_user();
$role = $current_user->roles;
// To hide settings by role :any_new_role
if ($role[0] == 'any_new_role') {
// users menu
unset( $submenu['users.php'][5] ); // removes list of users
unset( $submenu['users.php'][15] ); // removes edit your profile
remove_menu_page('wc_stripe'); // Hiding stripe gateway settings
remove_menu_page('woocommerce'); // Hiding woocommerce settings
remove_menu_page('automatewoo'); // Hiding automatewoo settings
remove_menu_page('jetpack'); // Hiding jetpack settings
}
}