2017-01-21 4 views
2

В бэкэнде WooCommerce я знаю, что вы можете удалить вкладки Product во всем мире с помощью кода на 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); 

Спасибо.

ответ

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 файле вашего активную дочернюю тему (или тему), а также в любом файле плагина.

Этот код проверен и работает.