Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Скрыть кнопку области меню в ЛК для определенных ролей
9ответ(ов) в теме
toka
не в сети 4 месяца
На сайте с 01.10.2017
Участник
Тем 27
Сообщения 139
1
08:48
Версия WP-Recall: 16.17.11

Вставил код

Спойлер
add_filter( 'rcl_tabs', 'filter_function_no_button' );
function filter_function_no_button( $data ) {
	if(array_shift(wp_get_current_user()->roles) != 'administrator' or array_shift(wp_get_current_user()->roles) != 'editor') {
// для всех кроме Редактора и Администратора
	$data['publics']['public'] = 0 ;
	$data['postform']['public'] = 0 ;
	}
    return $data ;
}


в functions.php но не скрывает. Понять не могу почему не срабатывает. Ранее закрывал гостям вкладки (кнопки) все вроде срабатывает.

Редакции сообщения
05.06.2019 08:50tokaПричина: не указано
05.06.2019 11:34Otshelnik-FmПричина: для многострочного кода есть специальная кнопка
0
Вова (Otshelnik-Fm)
не в сети 22 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
2
11:37

Здравствуйте.

Тему перенес. Для кастомизаций есть отдельная тема.
Код всегда оформляйте в теги соответствующими кнопками - так его читать будет удобней

Если код раньше работал, а сейчас перестал - ну не магия же?

0
toka
не в сети 4 месяца
На сайте с 01.10.2017
Участник
Тем 27
Сообщения 139
3
13:02

Этот код не работает изначально.
А этот без проблем:

add_filter( 'rcl_tabs', 'filter_function_guest_no_button' );
function filter_function_guest_no_button( $data ) {
	global $rcl_user_URL, $user_ID;
    if(!$user_ID) {
	$data['chat']['public'] = 0 ;
	$data['groups']['public'] = 0 ;
	$data['notes']['public'] = 0 ;
	$data['rating']['public'] = 0 ;
	$data['followers']['public'] = 0 ;
	$data['allcomments']['public'] = 0 ;
	}
    return $data ;
}

Редакции сообщения
05.06.2019 13:03tokaПричина: не указано
0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16859
4
13:04

так первый код что то скрывает для всех кроме админа и редактора, а ваш скрывает для гостей, разные цели как бы

0
toka
не в сети 4 месяца
На сайте с 01.10.2017
Участник
Тем 27
Сообщения 139
5
13:06

Так все верно. Нужен и первый и второй, но отрабатывает только второй, а первый не дает эффекта.

0
Вова (Otshelnik-Fm)
не в сети 22 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18647
6
13:09

Значит проблема в 3-й строчке кода. Обратитесь к документации вордпресс или на форум поддержки вордпресс чтобы уточнить - верно ли вы проверяете роли.

0
toka
не в сети 4 месяца
На сайте с 01.10.2017
Участник
Тем 27
Сообщения 139
7
13:14

При простом выводе инфы через array_shift(wp_get_current_user()->roles) отрабатывает честно и выводит значение роли.

0
toka
не в сети 4 месяца
На сайте с 01.10.2017
Участник
Тем 27
Сообщения 139
8
13:17

Так, что самое интересное, убираю проверку условия и даже для всех не прикрывается.

0
toka
не в сети 4 месяца
На сайте с 01.10.2017
Участник
Тем 27
Сообщения 139
9
20:00

Все решение правильного определения роли нашлось:

	$user = new WP_User(get_current_user_id());
	$user_role = $user->roles[0];

Но кнопки кодом:
// Удаление кнопок в меню ЛК
add_filter( 'rcl_tabs', 'filter_function_no_button' );
function filter_function_no_button( $data ) {
	$user = new WP_User(get_current_user_id());
	$user_r = $user->roles[0];
	if($user_r != 'administrator' or $user_r != 'editor') {
// для всех кроме Редактора и Администратора
	$data['publics']['public'] = 0 ; // Публикации
	$data['postform']['public'] = 0 ; // Создать публикацию
	}
    return $data ;
}

не отключаются 🙁
css-ить очень не коца, неблагодарное это дело display: none;
Если только как подстраховку допилить:
#tab-button-publics, #tab-button-postform { display: none; }
.my-class-administrator #tab-button-publics, .my-class-administrator #tab-button-postform, .my-class-editor #tab-button-publics, .my-class-editor #tab-button-postform {
	display: block;
}

Редакции сообщения
05.06.2019 20:05tokaПричина: не указано
05.06.2019 20:20tokaПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме