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

Этот вопрос близок к выходу за рамки темы, так как относится к конкретному плагину, но ответ достаточно общий:
Вы можете удалить ненужные вам возможности (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' ));

Пожалуйста, добавьте следующий код в файл 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
));
