Домой Wp-Recall WP-Recall: Проблемы и решения Как вывести название "роли" пользователя
22ответ(ов) в теме
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
1
21:36

Привет народ, помогите. Как вывести в профиле пользователя WP Recall, сверху аватара например надпись с названием его "роли", статуса ну или как там еще можно назвать, ну типа админ, подписчик и т.д.

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

	$role = array_shift($userdata->roles);
	$profile_block .= '<b>Роль пользователя</b>: '.$role;

0
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
3
23:49

Андрей Plechev said

	$role = array_shift($userdata->roles);
	$profile_block .= '<b>Роль пользователя</b>: '.$role;

А куда вставить подскажите пожалуйста, в какой файл? сам копал - так и не докопался.

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

Файл /wp-content/plugins/recall/add-on/profile/index.php
функция recall_block_edit_user_profile

0
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
5
12:42

Андрей Plechev said

Файл /wp-content/plugins/recall/add-on/profile/index.php
функция recall_block_edit_user_profile

Но мне надо выводить эту информацию не при редактировании своего профиля, а при просмотре чужого, чтоб его роль была написана сверху аватара.
И чтоб вообще решить мою проблему, надо чтобы определенная роль только выводилась. Например, если это админ - то должен выводиться текст ну или блок сверху, а если остальные, то ничего не должно выводиться. Если не сложно подскажите пожалуйста как это реализовать. Smile

0
Salat Production
не в сети 9 лет
На сайте с 03.12.2013
Участник
Тем 7
Сообщения 44
6
04:11

Значит вставляете в functions.php (или как он в последней версии называется), филтр rcl_content_user

0
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
7
20:28

salatproduction said

Значит вставляете в functions.php (или как он в последней версии называется), филтр rcl_content_user

Ничего не понятно, ковырял уже все что мог, ничего не получается, я не программист, напишите что конкретно и куда вставить пожалуйста?

0
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
8
22:58

Народ, ну помогите кто-то пожалуйста! Нужно чтобы роль отображалась именно в ЧУЖОМ ПРОФИЛЕ, при его просмотре, а не при редактировании личного кабинета.
Что куда вставить? я не понимаю как эти фильтры делать, скиньте мануал, если лень объяснять.

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

Вот вам код, пользуйтесь. Вставьте его в файл функций шаблона.

add_filter('rcl_content_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
	$user_data = get_userdata( $user_id );
	$roles = $user_data->roles;
	$role = array_shift($roles);
$content_lk .= 'Роль пользователя: '.$role;
return $content_lk;
}

0
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
10
00:18

Андрей Plechev said

Вот вам код, пользуйтесь. Вставьте его в файл функций шаблона.

Спасибо большое! А скажите пожалуйста, как вывести не системное название роли (оно на английском и маленькими буквами) а то что Display Name?
Поставил плагин User Role Editor, чтобы название поменять. Вот скрин

Вы не можете просматривать опубликованные ссылки
0
Андрей CS
не в сети 1 час
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16929
11
00:31

я этот плагин не знаю, ничего посоветовать не могу.
Я дал вам готовый код, меняйте его под ваши потребности. Не знаете как? Найдите знающего человека.

0
dimro
не в сети 11 лет
На сайте с 25.03.2014
Участник
12
00:38

Андрей Plechev said

я этот плагин не знаю, ничего посоветовать не могу.
Я дал вам готовый код, меняйте его под ваши потребности. Не знаете как? Найдите знающего человека.

Спасибо

0
Виктор
не в сети 10 лет
На сайте с 26.05.2014
Участник
13
20:12

Андрей Plechev said

Вот вам код, пользуйтесь. Вставьте его в файл функций шаблона.

add_filter('rcl_content_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
	$user_data = get_userdata( $user_id );
	$roles = $user_data->roles;
	$role = array_shift($roles);
$content_lk .= 'Роль пользователя: '.$role;
return $content_lk;
}

Всем доброго времени суток!

Долго искал по форуму и не нашел ничего более подходящего по моей проблемке. Поэтому обращаюсь за помощью в этой теме.

---Суть вопроса: Как мне сделать, чтобы блок с рекламой не отображался в профиле с ролью, например, "Автор" ?

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

add_filter('rcl_content_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
$user_data = get_userdata( $user_id );
$roles = $user_data->roles;
$role = array_shift($roles);
if($role=='author'){
$content_lk .= 'Тут код рекламного блока';
}
return $content_lk;
} 

0
Виктор
не в сети 10 лет
На сайте с 26.05.2014
Участник
15
21:51

Андрей Plechev said

add_filter('rcl_content_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
$user_data = get_userdata( $user_id );
$roles = $user_data->roles;
$role = array_shift($roles);
if($role=='author'){
$content_lk .= 'Тут код рекламного блока';
}
return $content_lk;
} 

Премного благодарен.

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

UPD:

Пробовал прописать напрямую в сайдбаре следующее:
[code]

[/code]

Не получилось, текст выводится на всех страницах.Что-то я делаю не так.

0
Виктор
не в сети 10 лет
На сайте с 26.05.2014
Участник
16
00:34

UPD:

Пробовал прописать напрямую в сайдбаре следующее:


	<?php if ( get_role_user('author')) : ?>
	 <?php echo 'Информация видимая только на странице роли -Автор-'; ?>
	<?php endif; ?> 
	

Не получилось, текст выводится на всех страницах.Что-то я делаю не так.

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

Для начала вам надо будет проверить отображается ли страница ЛК. Для начала стоит проверить на наличие глобальную переменную $rcl_user_LK, если она присутствует, значит отображается ЛК пользователя, а в значении будет идентификатор хозяина ЛК:

global $rcl_user_LK;
if($rcl_user_LK) echo get_role_user('',$rcl_user_LK));

0
Виктор
не в сети 10 лет
На сайте с 26.05.2014
Участник
18
09:17

Не понимаю, это нужно вставлять в sidebar.php или function.php ?

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

в сайдбар

0
Горячев Виктор
не в сети 9 лет
На сайте с 16.12.2013
Участник
20
16:30

dimro said

Андрей Plechev said

Вот вам код, пользуйтесь. Вставьте его в файл функций шаблона.

Спасибо большое! А скажите пожалуйста, как вывести не системное название роли (оно на английском и маленькими буквами) а то что Display Name?
Поставил плагин User Role Editor, чтобы название поменять. Вот скрин

Вы не можете просматривать опубликованные ссылки

Здравствуйте!
Мне помог этот код. Вставляется в functions.php шаблона!

$result = add_role(
'Доктор',
__( 'Доктор' ),
array(
'read' => true, // true allows this capability
'edit_posts' => true,
'delete_posts' => true, // Use false to explicitly deny
)
);
if ( null !== $result ) {
echo '';
}
else {
echo '';
}

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

Здравствуйте.
Подниму тему.
Знает ли все таки кто нибудь, как модернизировать код Андрея, чтобы выводилось не ID роли на английском, а именно дисплей нейм.

add_filter('rcl_content_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
$user_data = get_userdata( $user_id );
$roles = $user_data->roles;
$role = array_shift($roles);
$content_lk .= 'Роль пользователя: '.$role;
return $content_lk;
}

Спасибо.

0
KonstantinT
не в сети 9 лет
На сайте с 04.02.2016
Участник
22
09:01

Андрей Plechev сказал(а)

Вот вам код, пользуйтесь. Вставьте его в файл функций шаблона.

add_filter('rcl_content_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
	$user_data = get_userdata( $user_id );
	$roles = $user_data->roles;
	$role = array_shift($roles);
$content_lk .= 'Роль пользователя: '.$role;
return $content_lk;
}

Я так понимаю API rcl_content_user теперь называется rcl_content_lk ???

add_filter('rcl_content_lk','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
$user_data = get_userdata( $user_id );
$roles = $user_data->roles;
$role = array_shift($roles);
$content_lk .= 'Роль пользователя: '.$role;
return $content_lk;
}

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