【问题标题】:Restrict shop manager from woocommerce checkout settings tab限制商店经理使用 woocommerce 结帐设置选项卡
【发布时间】:2016-04-24 19:49:36
【问题描述】:

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

我似乎无法弄清楚。

【问题讨论】:

    标签: wordpress woocommerce


    【解决方案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>' );
            }
        }
    }
    

    【讨论】:

    • @loicTheAztec,首先:因为 die();它不干净,它会阻止其余的 WP 功能运行,其次是因为 $_SERVER['REQUEST_URI'] 检查它:应该更准确地检查。但它是一个绝望的解决方案的解决方法。
    • 不知道为什么它对我不起作用。未设置的部分工作正常,但 die() 导致此错误警告:在 C:\xampp\htdocs\9ja\wp-content\plugins\woocommerce\includes\admin\class-wc-admin 中为 foreach() 提供的参数无效-settings.php 第 207 行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    相关资源
    最近更新 更多