限制店铺经理从woocommerce结帐设置选项卡

时间:2016-04-24 10:59:11

标签: wordpress wordpress-plugin woocommerce

如何限制具有特定角色的用户(商店经理)访问所选的woocommerce设置标签。 我问了一个类似的问题here,但答案只会隐藏标签显示,但如果用户直接输入网址,则不会限制用户。

我似乎无法弄清楚这一点。

1 个答案:

答案 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>' );
        }
    }
}