Функция добавляет в личный кабинет новую вкладку и кнопку для показа этой вкладки.
rcl_tab($args);
Содержимое передаваемого внутрь функции массива:
array( 'id'=>'id-tab', //строка, указание идентификатор основной вкладки 'name'=>'Имя вкладки', //строка, наименование вкладки 'supports'=>array(), //массив, указание поддерживаемых возможностей, например ajax и cache 'public'=>1, //указание статуса приватности вкладки 'icon'=>'fa-book', //класс иконки с сервиса http://fontawesome.io/icons/ 'output'=>'menu', //область вывода кнопки вкладки внутри личного кабинета 'counter'=>10, //число, счетчик выводимый внутри кнопки на вызов вкладки 'content'=>array() //массив с данными дочерних вкладок )
Атрибут supports содержит массив указанием поддержки возможных функций:
ajax - вкладка поддерживает ajax-загрузку своего контента,
dialog - вкладка поддерживает вывод своего контента внутри диалогового окна,
cache - поддерживается кеширование вкладки функционалом кеширования плагина.
Приведу пример регистрации основной вкладки личного кабинета по новым правилам с минимальным набором необходимых параметров:
add_action('init','register_my_tab'); function register_my_tab(){ $tab_data = array( 'id'=>'id-tab', 'name'=>'Имя вкладки', 'content'=>array( array( 'callback' => array( 'name'=>'my_custom_function' ) ) ) ); rcl_tab($tab_data); }
В массиве 'callback' указываем наименование функции-обработчика, которая и будет формировать контент вкладки. По-умолчанию функцию всегда принимает один аргумент - идентификатор пользователя текущего личного кабинета.
Если необходимо передать свои аргументы, то добавляем их через указание массива аргументов:
'content'=>array( array( 'callback' => array( 'name'=>'my_custom_function', 'args'=>array($arg_1,$arg_2), ) ) )
Таким образом, будет зарегистрирована самая обычная приватная вкладка личного кабинета.
Расширим регистрацию вкладки с указанием расширенных параметров и двух дочерних вкладок:
add_action('init','register_my_tab'); function register_my_tab(){ $tab_data = array( 'id'=>'id-tab', 'name'=>'Имя вкладки', 'supports'=>array('ajax','cache'),//поддержка кеширования и ajax-загрузки 'public'=>1,//делаем вкладку публичной 'icon'=>'fa-book',//указываем иконку 'output'=>'menu',//указываем область вывода 'content'=>array( array( //массив данных первой дочерней вкладки 'id' => 'subtab-1', //идентификатор дочерней вкладки 'name' => 'Имя подвкладки 1', //имя дочерней вкладки 'icon' => 'fa-icon', //иконка кнопки вывода дочерней вкладки 'callback' => array( 'name'=>'custom_function_1',//функция формирующая контент 'args'=>array($arg_1,$arg_2) //перечень аргументов передаваемых в функцию ) ), array( //массив данных второй дочерней вкладки 'id' => 'subtab-2', 'name' => 'Имя подвкладки 2', 'icon' => 'fa-icon', 'callback' => array( 'name'=>'custom_function_2', 'args'=>array($arg_1) ) ), ) ); rcl_tab($tab_data); }
В соответствии с указанным выше примером регистрации вкладки личного кабинета, придется также написать две функции для формировании первой и второй дочерних вкладок, т.е. указанные в массиве функции 'custom_function_1' и 'custom_function_2'
Здравствуйте!
Хочу выводить в собственной вкладке виджет WP. Все сделал по инструкции, а этот виджет видится на всех вкладках ЛК.
Возвращаю так:
return dynamic_sidebar('invites_subscribe');
Направите на путь истинный или идти на ...форум?)))
На форуме тема - "Пишем свое дополнение". Описывайте все что делали там. Сейчас непонятно
Андрей, добрый день!
Возник вопрос, а можно сделать вкладку родительской и по нажатию по ней выпадающий список других вкладок?
Просто в одном из проектов возникла такая возможность, спрашиваю, что бы не колхозить с вкладками и регуляркой!
с помощью этой функции этого сделать нельзя
В принципе так и думал, значит буду колхозить! )))
Я уже сделал выпадающее меню вкладок ЛК, только не в личном кабинете, а в виджете, думал можно с помощью функционала Wp-recall проделать подобный фокус. Специфичный проект веду, много вкладок в кабинете получается, нужно сгруппировать/сократить количество, но не функционал ЛК.
Спасибо за быстрый ответ!
- все области вывода описаны тут https://codeseller.ru/api-rcl/rcl_block/
По этой же ссылке найдете описание атрибута 'public' - приватности вкладки
А как сделать вкладку профиль по ссылке. То есть мне нужно, чтобы нажимая по вкладе профиль она загружалась ссылкой, а не ajax. Почему то нет настроек в меню вкладок в админке. А при создании вкладки есть.
Вкладки зарегистрированные в php коде дополнений не имеют каких то дополнительных настроек, потому что параметры их работы жестко прописаны авторами этих дополнений, изменение этих параметров через доступные настройки вкладки могут привести к непредусмотренным проблемам в их работе.
Произвольные вкладки имеют такие настройки, потому что эти вкладки создаете вы сами и вы несете ответственность за их работу.
Спасибо. Подскажите, пожалуйста, в каком файле находятся эти привязки вкладок?
подобные вопросы вы можете задавать на форуме поддержки плагина