【问题标题】:Disable product data section for specific users only仅为特定用户禁用产品数据部分
【发布时间】:2017-06-06 17:40:20
【问题描述】:

在 WooCommerce 后端,我知道您可以使用 functions.php 上的一些代码全局删除产品选项卡。

但我只想为用户后端删除。我正在使用多供应商插件。

我该怎么做?

我的代码:

function remove_tab($tabs){
    unset($tabs['inventory']); // it is to remove inventory tab
    //unset($tabs['advanced']); // it is to remove advanced tab
    //unset($tabs['linked_product']); // it is to remove linked_product tab
    //unset($tabs['attribute']); // it is to remove attribute tab
    //unset($tabs['variations']); // it is to remove variations tab
    return($tabs);
}
add_filter('woocommerce_product_data_tabs', 'remove_tab', 10, 1);

谢谢。

【问题讨论】:

    标签: php wordpress tabs woocommerce product


    【解决方案1】:

    假设您的供应商有一个自定义用户角色,您可以通过以下方式在您的函数中针对该特定用户角色实现此目的:

    add_filter('woocommerce_product_data_tabs', 'verdors_remove_tab', 10, 1);
    function verdors_remove_tab($tabs){
    
        // Set HERE your targeted user role SLUG
        $target_user_role = 'multivendor';
    
        // Get current user (object)
        $current_user = wp_get_current_user();
        $current_user_roles = $current_user->roles; // current user roles
    
        // Unsetting tabs for this specific user role
        if( in_array( $target_user_role, $current_user_roles ) ){
            unset($tabs['inventory']); // it is to remove inventory tab
            //unset($tabs['advanced']); // it is to remove advanced tab
            //unset($tabs['linked_product']); // it is to remove linked_product tab
            //unset($tabs['attribute']); // it is to remove attribute tab
            //unset($tabs['variations']); // it is to remove variations tab
        }
        return($tabs);
    }
    

    此代码位于您的活动子主题(或主题)的 function.php 文件中或任何插件文件中。

    此代码已经过测试并且可以工作。

    【讨论】:

    • 是否可以从产品数据中删除属性选项卡并在产品描述编辑器之后显示为单个字段及其属性值???
    猜你喜欢
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    相关资源
    最近更新 更多