Убрать плагин из меню для определенных пользователей, ролей

1 Июнь 2013

Метки: 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, которая и банит.


 

Похожие записи


© 2006 - 2024, Александр Сергеев