Убрать плагин из меню для определенных пользователей, ролей
Метки: wordpress, плагин, пользователи и роли wordpress
Вот на днях столкнулся с проблемой, нужно было совсем убрать меню плагина из админки для определенных пользователей (в бане которые), и для пользователей с уровнем меньше редактора, учитывая собственные роли wordpress.
На блоге используется плагин Role Manager, где созданы несколько ролей.
Так вот, плагин nextgen gallery не хотел скрывать меню для созданных ролей через плагин. Даже для тех, кто и записи-то создавать не имел прав.
Пришлось плясать с бубном.
Открываем php-файл, где добавляется меню (ищем текст):
add_menu_page
или
add_submenu_page
А затем, закрываем всю функцию в следующий код:
$ban=array('44','33','22'); $role='administrator'; $user_id=get_current_user_id(); if(!in_array($user_id,$ban) & current_user_can($role)){ //функция плагина, где добавляется меню }
В принципе, мы проверяем нет ли id пользователя в бане (можно организовать через функцию проверки Wp) и проверяем имеет ли пользователь права вообще.
По мере необходимости планирую доработать:
1. проверка ролей из массива
2. проверка бана через функцию wp, которая и банит.