Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Полезное

Добавлено в закладки: 5

В этой статье я хочу подробнее рассмотреть, а точнее , рассказать о порядке воздействия на любую выводимую вкладку личного кабинета. Это будет полезно тем пользователям, которые хотят изменять порядок вывода содержимого личного кабинета без изменения кода плагина Wp-Recall.

Начнем с того, что все вкладки личного кабинета создаются (если конечно разработчик дополнения позаботился о этом) по одному принципу:

  1. формируется массив данных вкладки
  2. массив обрабатывается, возвращается контент вкладки
  3. выводим сформированное содержимое вкладки

Каким образом формируется массив данных любой вкладки достаточно подробно описано в описании к функции rcl_tab(). Именно через эту функцию передаются данные необходимые для вывода любой вкладки в личном кабинете. Вся прелесть в том, что эти данные вкладок прежде чем попасть на обработку пропускаются через фильтр 'rcl_tab' благодаря чему мы можем, в любой момент, получить данные нужной нам вкладки еще до вывода и изменить их под свои нужды.

Рассмотрим принцип изменения данных какой-либо вкладки.

Для того, чтобы изменить данные конкретной вкладки личного кабинета нам надо знать ее идентификатор, который передается в функцию rcl_tab() при ее инициализации в дополнении. Можно получить идентификатор вкладки прямо в коде дополнения, а можно воспользоваться панелью браузера и получить его просто узнав уникальный идентификатор кнопки на вывод вкладки в коде страницы. Например, вкладка личного чата имеет идентификатор 'privat', а вкладка групп - 'group'.

Допустим, нам надо каким то образом повлиять на вывод вкладки профиля с идентификатором 'profile'. Для начала получим данные этой вкладки через фильтр rcl_tab:

В результате мы получим примерно такой массив данных вкладки профиля:

Изменим некоторые данные текущей вкладки:

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

Если мы хотим, чтобы в нашу функцию обработчик также передавались указанные нами аргументы, то указываем также и их:

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

Таким образом, разместив эту функцию в файле functions.php своего шаблона можно влиять на вывод содержимого любой вкладки личного кабинета.

Рейтинг: 31

Автор публикации

11k

Есть задание? Вам сюда http://codeseller.ru/task
Нужна консультация? Вам сюда http://codeseller.ru/products/skype-konsultaciya/
Если не приглашал в личку, писать туда не надо.
Для всего остального есть форум.

Комментарии: 1545Публикации: 468Регистрация: 30-11--0001Продаж/Покупок: 10811/65