5ответ(ов) в теме
Tanis
не в сети 3 года
На сайте с 08.05.2014
Участник
Тем 26
Сообщения 71
1
22:28

Андрей, добрый вечер.
Такой вопрос, а можно как то сделать определенную кнопку в лк (если создавать свое дополнение) доступной только для администратора?

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

function get_wprecall_short_button($button,$author_lk){
$user_data = get_userdata( $id );
$roles = $user_data->roles;
$role = array_shift($roles);
global $user_ID,$rcl_options;
if($user_ID!=$author_lk) and ($role = 'administrator') return $button;
   if(!$button) $status = 'active'; 
$button .= ' <a href="#" id="myform" class="block_button '.$status.'">Тестовая кнопка</a> ';
   return $button;
}

Получается условие, что если пользователь - хозяин личного кабинета, и его роль администратор, то кнопка выводится. Но при таком варианте сайт ложится сразу. Пробовал запихивать условие в отдельный if - тоже самое.
Что я делаю не правильно?

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16929
2
13:47

Пробуйте прописывать так:

if($user_ID != $author_lk || $role != 'administrator') return $button;

0
Tanis
не в сети 3 года
На сайте с 08.05.2014
Участник
Тем 26
Сообщения 71
3
14:00

Сайт ложиться перестал, но эффекта, к сожалению, нет. Он эту кнопку вообще перестает выводить, для всех типов ролей, т.е., получается он не понимает это значение

 $role != 'administrator' 

0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16929
4
14:06

У вас идет неверное определение роли, тк вы не передаете туда идентификатор текущего пользователя.
Это верная функция:

function get_wprecall_short_button($button,$author_lk){
global $user_ID,$rcl_options;

$user_data = get_userdata( $user_ID );
$roles = $user_data->roles;
$role = array_shift($roles);

if($user_ID != $author_lk || $role != 'administrator') return $button;
if(!$button) $status = 'active';
$button .= ' <a href="#" id="myform" class="block_button '.$status.'">Тестовая кнопка</a> ';
return $button;
}

0
Tanis
не в сети 3 года
На сайте с 08.05.2014
Участник
Тем 26
Сообщения 71
5
14:12

Большое спасибо, теперь все работает. Smile

0
Тема закрыта. Публикация новых сообщений запрещена.