如何限制具有特定角色的用户(商店经理)访问所选的woocommerce设置标签。 我问了一个类似的问题here,但答案只会隐藏标签显示,但如果用户直接输入网址,则不会限制用户。
我似乎无法弄清楚这一点。
答案 0 :(得分:1)
这不是很漂亮但是可行:
add_filter( 'woocommerce_settings_tabs_array','remove_setting_tab', 50 );
function remove_setting_tab( $settings_tabs ) {
//Default Tabs are :
//array(8) { ["general"]=> string(7) "General" ["products"]=> string(8) "Products" ["tax"]=> string(3) "Tax" ["checkout"]=> string(8) "Checkout" ["shipping"]=> string(8) "Shipping" ["account"]=> string(8) "Accounts" ["email"]=> string(6) "Emails" ["api"]=> string(3) "API" }
$user = wp_get_current_user();
if ( isset( $user->roles[0] ) && $user->roles[0] == 'shop_manager' ) {
unset($settings_tabs['general']);// = array();
}
return $settings_tabs;
}
add_filter( 'woocommerce_general_settings', 'setting_tab_empty_content' );
function setting_tab_empty_content($settings){
$user = wp_get_current_user();
if ( isset( $user->roles[0] ) && $user->roles[0] == 'shop_manager' ) {
if ($_SERVER['REQUEST_URI']=='/wp-admin/admin.php?page=wc-settings&tab=general')
{
die( '<strong>No permissions</strong>' );
}
}
}