Домой Wp-Recall WP-Recall: Пишем свое дополнение и кастомизация Форма публикации для отдельной роли сайта
8 ответ(ов) в теме
poemadevita
не в сети 2 месяца
На сайте с 06.04.2020
Участник
Тем 15
Сообщения 32
1
12:12
Версия WP-Recall: 16.18.10

Здравствуйте, такой вопрос, как сделать форму публикации для отдельной роли пользователей на сайте.
Или возможно сделать вкладку в профиле для отдельной роли, а к ней прикрепить форму публикации?

0
Владимир (Otshelnik-Fm)
не в сети 1 час
На сайте с 27.01.2013
Модератор
Тем 30
Сообщения 17574
2
12:17

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

Стоит поискать плагин в официальном репозитории вордпресс, что ограничивает доступ к записям и страницам по роли и вписать на эту страницу шорткод формы публикации. Это если не программировать.

Если программировать - то через задания

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

С вкладкой ЛК также или можете почитать как вывести свою вкладку в документации

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

"Пример создания своего дополнения WP-Recall" и основываясь на апи вордпресс (его документации) сделать нужные проверки и выводить по роли вкладку.

0
poemadevita
не в сети 2 месяца
На сайте с 06.04.2020
Участник
Тем 15
Сообщения 32
3
16:18

Подскажите, собрал вот такой код. Но администраторам все равно видно вкладку. Как скрыть для них?

add_action('init','add_tab_my_contactform');
function add_tab_my_contactform(){
if (is_user_role_in('author') ) {
    $tab_data =	array(
        'id'=>'postform',
        'name'=>'Сделать публикациюq',
        'public'=>0,//делаем вкладку приватной
        'icon'=>'fa-pencil',//указываем иконку
        'output'=>'menu',//указываем область вывода
        'content'=>array(
            array( //массив данных первой дочерней вкладки
                'callback' => array(
                    'name'=>'my_contactform_recall_block',//функция формирующая контент
                )
            )
        )
    );
    rcl_tab($tab_data);
}
}

0
Владимир (Otshelnik-Fm)
не в сети 1 час
На сайте с 27.01.2013
Модератор
Тем 30
Сообщения 17574
4
16:25

я не знаю что такое is_user_role_in. Это не вордпресс функция. Обратитесь к тому кто вам ее написал

0
poemadevita
не в сети 2 месяца
На сайте с 06.04.2020
Участник
Тем 15
Сообщения 32
5
16:26

Это функция, которая проверяет роль пользователя в Wordpress.

Редакции сообщения
09.04.2020 16:26poemadevitaПричина: не указано
0
poemadevita
не в сети 2 месяца
На сайте с 06.04.2020
Участник
Тем 15
Сообщения 32
6
16:29

У меня получилось сделать, то что я хотел изначально. Я вывел форму публикации, в зависимости от роли пользователя используя данную функцию. Но это маленько другое. Здесь этот id(postform) он стандартный, то есть он уже добавлен самим recall, а мне его нужно отредактировать. Как это можно сделать?

0
Владимир (Otshelnik-Fm)
не в сети 1 час
На сайте с 27.01.2013
Модератор
Тем 30
Сообщения 17574
7
16:29

дайте мне ссылку на ее описание в документации вордпресс

0
poemadevita
не в сети 2 месяца
На сайте с 06.04.2020
Участник
Тем 15
Сообщения 32
8
16:34

Вот сама функция, я ее нашел.

function is_user_role_in( $roles, $user = false ){
	if( ! $user )           $user = wp_get_current_user();
	if( is_numeric($user) ) $user = get_userdata( $user );

	if( empty($user->ID) )
		return false;

	foreach( (array) $roles as $role )
		if( isset($user->caps[ $role ]) || in_array($role, $user->roles) )
			return true;

	return false;
}
Редакции сообщения
09.04.2020 16:34poemadevitaПричина: не указано
09.04.2020 16:34poemadevitaПричина: не указано
09.04.2020 16:34poemadevitaПричина: не указано
09.04.2020 16:35poemadevitaПричина: не указано
0
Вы не имеете права на публикацию сообщений в этой теме