Как удалить некоторые разрешения у роли "менеджер магазина" в WooCommerce?

5 мая 2015 г., 10:05:38
Просмотры: 17K
Голосов: 1

Я использую плагин WooCommerce для управления интернет-магазином. Мне нужно добавить пользователя, который сможет управлять товарами (добавлять новые, редактировать). Я создал пользователя и назначил ему роль менеджера магазина, но эта роль дает слишком много прав (например, просмотр списка пользователей, доступ к заказам, возможность изменять настройки магазина и т.д.).

Я не могу разобраться, как WordPress управляет ролями и разрешениями, и в каком PHP-файле WooCommerce определяет эту роль, чтобы я мог её отредактировать.

2
Комментарии

Это находится на грани "Не по теме", так как вопрос действительно касается сторонних плагинов (WooCommerce), но суть вашего вопроса связана с правами пользователей. Я предлагаю отредактировать ваш вопрос, чтобы он был более конкретным, например: "Как изменить права для конкретной роли", чтобы вопрос не был закрыт. Ещё один хороший вариант — поискать на этом сайте информацию об управлении правами пользователей.

Howdy_McGee Howdy_McGee
5 мая 2015 г. 22:42:53

@Howdy_McGee Я понимаю, почему вы считаете это не по теме, но я нашёл тег для woocommerce и подумал, что связанные вопросы соответствуют теме.

azerafati azerafati
6 мая 2015 г. 23:30:03
Все ответы на вопрос 2
0

Этот вопрос близок к выходу за рамки темы, так как относится к конкретному плагину, но ответ достаточно общий:

Вы можете удалить ненужные вам возможности (capabilities).

function remove_cap_wpse_186316(){   
  remove_cap( 'yourwoorole', 'yourwoocap' );
  remove_cap( 'yourwoorole', 'yourwoocap1' );
}
add_action( 'admin_init', 'remove_cap_wpse_186316' );

Приведённый выше код предназначен только для демонстрации/экспериментов. Обратите внимание на примечание в Кодексе о том, что этот код должен выполняться только один раз:

Примечание: Эта настройка сохраняется в базе данных (в таблице wp_options, поле 'wp_user_roles'), поэтому её следует выполнять только один раз — при активации/деактивации темы или плагина.

Вы можете использовать get_role() и вывести результат, чтобы увидеть, с какими возможностями вы работаете:

var_dump(get_role( 'yourwoorole' ));
6 мая 2015 г. 03:05:52
1

Пожалуйста, добавьте следующий код в файл functions.php вашей темы WordPress. И измените значения true на false для тех прав, которые не нужно предоставлять менеджеру магазина.

 add_role('shop_manager', __('Менеджер магазина', 'woocommerce'), array(
    
    'read' => true,
    
    'read_private_pages'    => true,
    
    'read_private_posts'    => true,
    
    'edit_posts' => true,
    
    'edit_pages' => true,
    
    'edit_published_posts'  => true,
    
    'edit_published_pages'  => true,
    
    'edit_private_pages'    => true,
    
    'edit_private_posts'    => true,
    
    'edit_others_posts' => true,
    
    'edit_others_pages' => true,
    
    'publish_posts' => true,
    
    'publish_pages' => true,
    
    'delete_posts' => true,
    
    'delete_pages' => true,
    
    'delete_private_pages'  => true,
    
    'delete_private_posts'  => true,
    
    'delete_published_pages'    => true,
    
    'delete_published_posts'    => true,
    
    'delete_others_posts' => true,
    
    'delete_others_pages' => true,
    
    'manage_categories' => true,
    
    'manage_links'  => true,
    
    'moderate_comments' => true,
    
    'unfiltered_html'   => true,
    
    'upload_files'  => true,
    
    'export'    => true,
    
    'import'    => true,
    
    'manage_woocommerce'    => true,
    
    'manage_woocommerce_orders' => true,
    
    'manage_woocommerce_coupons'    => true,
    
    'manage_woocommerce_products'   => true,
    
    'view_woocommerce_reports'  => true
    
    ));
8 мая 2017 г. 09:27:50
Комментарии

пожалуйста, не используйте фигурные кавычки в коде

111 111
17 июл. 2021 г. 01:11:09