Открыть группе пользователей доступ к одному плагину в Wordpress?
никак не могу открыть для группы пользователей доступ только к одному плагину, остальные функции админки должны быть отключены. Подробнее: Есть плагин, который используется как таблица прайс-листа Data Tables Generator by Supsystic Необходимо открыть доступ только к нему для определенной группы (условно Менеджер прайса). Пробовал через User Role Editor - безрезультатно , не получается выдать доуступ только к одному плагину. В настройках URE вкладки с нужным плагином нет :/ есть только основные Ядро, страницы и пр. Быть может есть какой то хук, чтобы в functions прописать?
Ответы (2 шт):
Используйте плагин Plugin Organizer. В нём есть функция Disable by Role.
К сожалению Plugin Organizer не подошел. Но я решил эту проблему более кардинально. В functions.php прописал хук, который скрывает необходимые пункты меню для определенного пользователя с уникальным email
add_action('admin_menu', 'remove_admin_menu_links', 999);
function remove_admin_menu_links() {
$user = wp_get_current_user();
if ( $user && isset($user->user_email) ) {
if (('[email protected]' == $user->user_email) || ('[email protected]' == $user->user_email)) {
remove_menu_page('index.php'); # Консоль
remove_menu_page('edit.php'); # Записи
remove_menu_page('edit-comments.php'); # Комментарии
remove_menu_page('edit.php?post_type=page'); # Страницы
remove_menu_page('upload.php'); # Медиафайлы
remove_menu_page('themes.php'); # Внешний вид
remove_menu_page('plugins.php'); # Плагины
remove_menu_page('users.php'); # Пользователи
remove_menu_page('tools.php'); # Инструменты
remove_menu_page('options-general.php'); # Параметры
remove_menu_page('edit.php?post_type=acf-field-group'); # ACF
remove_menu_page('edit.php?post_type=content_block'); #БЛОКИ
remove_menu_page('wpcf7'); #CF
remove_menu_page('theme-general-settings'); #THEME SETTINGS
remove_menu_page('wp-mail-smtp'); #SMTP
remove_menu_page('duplicator'); #DUPLICATOR
remove_menu_page('sucuriscan'); #SCAN
remove_menu_page('Wordfence'); #WF
remove_menu_page('options-framework');
}
}
}
Чтобы узнать slug плагина и исключить его из выдачи в админ панели в functions прописал следущее
add_action( 'admin_init', 'wpse_136058_debug_admin_menu' );
function wpse_136058_debug_admin_menu() {
echo '<pre>' . print_r( $GLOBALS[ 'menu' ], TRUE) . '</pre>';
}
В админке отобразится массив данных, где элементы показывают опции по каждому из пунктов меню