Начиная с шестой версии WP-Recall в плагин стали активно внедряться хуки WordPress, которые мы можем использовать для создания своих вкладок в личном кабинете пользователя.
А в седьмой версии мы можем создавать свои дополнения.
Что такое дополнение для WP-Recall?
Плагин WP-Recall не может содержать весь необходимый для пользователей функционал, поэтому мы можем расширять его функциональность за счет установки различных дополнений. Каждое дополнение добавляет свой функционал к плагину и позволяет получать и использовать новые возможности плагина на вашем сайте.
Плагин уже содержит некоторые базовые дополнения, которые активируются при первоначальной установке плагина, но вы всегда можете отключить дополнения которые вам не нужны.
Дополнения могут писать как обычные пользователи плагина WP-Recall, так и сами разработчики плагина, поэтому у вас всегда есть возможность выбрать наиболее подходящее под ваши задачи дополнение в каталоге дополнений.
Зачем вообще создавать свое дополнение?
- Дополнение легче дорабатывать по мере необходимости
- Дополнение можно распространять как бесплатно, так и на платной основе, получая от его распространения выгоду
- Свое дополнение вы можете бесплатно разместить в каталоге дополнений WP-Recall
- Пользователи, установившие ваше дополнение, смогут получать автоматически обновления к вашему дополнению
- Вы решали какую-то задачу и посчитали что это может еще кому-то пригодиться
Как создать свое дополнение?
Предлагаю в этой статье ознакомиться с примером создания своего дополнения для WP-Recall, которое будет выводить нашу вкладку в личном кабинете пользователя, в которой выведем форму, созданную с помощью популярного плагина Contact Forms 7
И так рассмотрим этот процесс подробно и по шагам.
Для начала создадим пустую папку, которой дадим уникальное название. Пусть это будет contact-form
Далее в этой папке создадим два обязательных файла. Первый файл info.txt
, в нем мы должны разместить информацию о нашем дополнении:
Name: My contact form;
Version: 1.0;
Description: Дополнение для WP-Recall, добавляющее свою вкладку с контактной формой;
Support Core: 10.0.0;
Author: Плечев Андрей;
Author Uri: https://codeseller.ru;
Add-on Uri: https://codeseller.ru/?p=3695;
Как можно увидеть тут мы указываем:
- Name - наименование нашего дополнения: "My contact form",
- Version - его версию: 1.0,
- Description - описание к нашему дополнению,
- Support Core - минимальная версия плагина WP-Recall c которой дополнение однозначно работает,
- Author - имя автора,
- Author Uri - ссылку на страницу разработчика,
- Add-on Uri - ссылку на страницу дополнения.
Затем создаем второй файл с именем index.php
В этом файле будет размещаться код наших вкладок для личного кабинета.
Обратившись к странице с описанием хуков и функций WP-Recall мы можем найти пример для создания дополнительной вкладки в плагин и кнопки, по нажатию которой эта вкладка будет отображаться.
Итак, рассмотрим функцию добавления своей вкладки в ЛК:
rcl_tab($args);
Описание содержимого передаваемого массива $args
можно найти на странице описания функции rcl_tab();
Подробное описание функции rcl_tab()
С этой функцией добавление новой вкладки в ЛК стало простым и незатейливым!
Добавим в личный кабинет пользователя вкладку с контактной формой выведенной с помощью шорткода плагина Contact Forms 7
add_action('init','add_tab_my_contactform'); function add_tab_my_contactform(){ $tab_data = array( 'id'=>'myform', 'name'=>'Форма контакта', 'public'=>0,//делаем вкладку приватной 'icon'=>'fa-envelope',//указываем иконку 'output'=>'menu',//указываем область вывода 'content'=>array( array( //массив данных первой дочерней вкладки 'callback' => array( 'name'=>'my_contactform_recall_block',//функция формирующая контент ) ) ) ); rcl_tab($tab_data); } function my_contactform_recall_block($user_lk){ $content = '<h3>Наша контактная форма:</h3>'; $content .= do_shortcode('[contact-form-7 id="52" title="Контактная форма 1"]'); return $content; }
После этого мы можем сохранить изменения в файле index.php
Запакуем папку нашего дополнения в ZIP-архив.
Далее идем на страницу менеджера дополнений WP-Recall и загружаем наш архив через форму загрузки:
После загрузки дополнения оно появится в списке дополнений и мы сможем его активировать:
После активации нашего дополнения, в личном кабинете пользователя появиться дополнительная кнопка и вкладка которые мы создали и вывели через наше дополнение:
Важно! Созданные файлы должны быть в кодировке UTF-8 без BOM
Вот собственно собственно и всё, выкладываю здесь исходники нашего созданного дополнения, может кому то и пригодится)
Архив дополнения из примера
Приветствую! Спасибо Вам за труд! Простите, вызывает неуверенность по поводу уст-ки обновлении плагина Wp-recall, не полетит ли снова таблицы, базы данных, итд? Нет ли у Вас планов сделать процесс установки Wp-recall полностью безопасным для данных польз-я. Спасибо!
Это безопасный процесс, если совершается обновление не слишком древней версии, например, выше шестой. Обновление для версий ниже шестой я не могу назвать безболезненным, но я описал перечень необходимых действий в этом случае в одной из статей. Никакие таблицы или данные из БД не исчезают, они там и остаются.
Благодарю Вас за ответ! Скажите пожалуйста, что мне нужно доп-но к плагину Wp-recall, чтобы пользователь с личного кабинета мог добавить свои товар выбирая категорию, который в последующем будет отображаться на соответствующей странице через шорткод вместе с другими же товарами этой же категории. Если Вы сегодня устали, подожду до завтра) Спасибо!
такой возможности у плагина сейчас нет
Простите, на какой языке(-ах) написан WP-Recall?
Добрый день, Андрей!
Установил плагин на сайт, активировал необходимые дополнения. Сейчас не могу разобраться с двумя вопросами: 1)Функция публикации записей из своего личного кабинета и возможность редактирования и удаления своих записей из личного кабинета не работает.2) Возможность создания своих групп, их редактирование и публикация в них записей тоже не доступна. Подскажите в чём причина?
вот сайт - myspassk.ru
Добавление,постинг и редактирование групп происходит только из админки вордпресса. Функция публикации из ЛК так и не запустилась.
Галерея тоже не отображается в ЛК. Может я что-то пропустил в настройках? Подскажите Андрей, алгоритм моих действий.
Рейтинги тоже не работают!
В настройках всё указываю, всё включаю и активирую, но что-то совсем глухо!
Это что шутка? Я специально зашел к вам на сайт, зарегистрировался, проверил переписку между пользователями, рейтинг публикаций, закладки на сайте и они работают.
Форма публикации выводится через шорткод [publicform] это описано в инструкции по установке плагина. Вы размещали этот шорткод? Галереи у вас и не должно быть, тк у вас не установлено дополнение галереи, оно продается отдельно, смотрите раздел "Платные дополнения".
Насчет групп я не уверен, что вы произвели правильное размещение кода групп в созданном файле taxonomy-groups.php, если этого не делали и этот файл не создавали, то читайте инструкцию по установке групп. Если делали, то пробуйте обновить постоянные ссылки на сайте.
И самое главное. Подобные темы необходимо обсуждать на нашем форуме, тут продолжать не надо. Заходим на форум, создаем тему, подробно описываем проблему и в ней обсуждаем.
Спасибо, понял! Шорт код установил по инструкции, и у меня эта страница работает, на ней можно создавать публикации, но это не происходит в ЛК. По группам, действительно не знал, что есть ещё какие либо настройки, потому что об этом не говорится в инструкции по установке плагина. Извиняюсь если вас отвлёк от срочных дел, но я пользователь, которому необходим ваш инструмент, я вам очень благодарен за вашу работу, но я же не знаю всех ваших правил.
Здравствуйте! Кто может подсказать как вставить такой код вместо формы, как в примере.
Спасибо за ответ!
php all_comments_user();
Странно.. Все сделал как описано. Дополнительная кнопка в личном кабинете появилась, но по нажатию на нее вкладка не открывается... Вот какой аддон у меня получился здесь
Посмотрите внимательнее в код примера.
//размещаем идентификатор кнопки в классе блока и получаем класс... У вас почему то получился класс statistic, а должен быть statistic_block
Спасибо!
Только все равно не открывается созданный блок... Просто к адресу добавляется в адресной строке добавляется #, то есть кнопка сама работает.
а другие блоки у вас открываются?
Да, остальные блоки открываются. Я ошибся - кнопка не добавляется. Появляется только ссылка "Статистика", без кнопки. Соответственно по-этому возможно не открывается нужный блок. А вот почему кнопка не появляется опять жене понятно. Вроде бы сделал все по шаблону... ((
Пожалуйста добавьте класс для своей кнопки class="block_button '.$status.'" и все будет работать
Мой косяк) В статье поправил.
О. Теперь работает все просто отлично! Спасибо!
Не могу в личном кабинете выставить две кнопки, по одно ставлю, все работает. Ставлю вторую, все, белый экран, сайт вообще не загружается. В чем проблема помогите пожалуйста. вот мои папки __http://yadi.sk/d/7XAe0pysN9b9H и вот __http://yadi.sk/d/x4a01vmiN9b9T
даже не буду спрашивать, знакомы ли вам основы php-программирования. Когда пишете, что-либо на php, то следует иметь ввиду, что не должно быть повторяющихся имен функций. Каждое название функции должно быть уникальным.
Да, честно скажу, в php вообще ничего не понимаю.Андрей, подскажите какая именно строчка должна быть уникальной? Огромное спасибо!
Спасибо! Сам разобрался.
Андрей. Переделал свои дополнения по новому образцу. У вас где создадим кнопку в 13 строке the_button_wprecall вызывает ошибку. Удаляешь и начинаешь с add, всё работает отлично. Ошибка такая Parse error: syntax error, unexpected T_STRING in и дальше где. А зачем the_button_wprecall нужно писать?
Спасибо, это просто ошибка, я поправил код.
При активации этого дополнения появляется ошибка
Fatal error: Call to undefined function get_button_rcl() in Z:\home\naxodka.ru\www\wp-content\plugins\recall\add-on\contact-form\index.php on line 12.
Сделал свою вкладку по подобию вашей для отображения постов но не пойму как к ней аякс подключить.
Обновите плагин до последней версии.
Спасибо! полезная фича!
А вот фрейм вставить так можно, к примеру карту или турнирную сетку, на сайт она вставляется через джава скрипт?
можно. Туда любой фрейм, js или php, аудио, видео или флэш вставить
Угу! Буду кумекать, спасибо!
По какому принципу формируется очередность вывода вкладок в ЛК? Как их поменять местами в общем?
И еще, я не могу больше одного дополнения сделать, почему у меня сайт падает, пока все не откачу назад и не переустановлю?
Возможно в разных дополнениях ты одинаково называешь функцию кнопки лк. От этого сайт ляжет. Названия функций должны быть уникальными независимо от того в разных ли пхп файлах они содержатся или в одном
Да вроде функции разные! А может это быть из-за того, что я вставляю шорткод от WP-Recall? Я хотел сделать Feed во вкладке, как "Мои новости"?
тогда проверяй синтаксис
Вы были правы, я еще раз пересмотрел код, обратил внимание на его структуру и допер что нужно в нем еще править, как раз косяк был связан с кнопками!
Просто я в этих делах ноль, самоучка и поэтому не сразу понял что да как! В инструкции конечно все написано, но новичок не сразу допетрит, разжевывать нужно!
Вопрос к вам, а как очередность вывода вкладок править? к примеру онлайн-чат ставить первым, приват вторым и т.д. т.п.?!
Рыл, рыл, так и не нарыл, как вместо шорт кода, вставить это: https://yadi.sk/i/gLAugFDAcLpgb ???
Если речь идет о проблеме вывода шорткода в php-коде, то используйте функцию do_shortcode
Нет, с шорткодом все вроде работает! Меня интересует, как вывести PHP код? Возможно это?
в контенте записи? для этого есть специальные плагины. В поиске все есть http://yandex.ru/yandsearch?text=%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8+php+%D0%BA%D0%BE%D0%B4+%D0%B2+%D0%BA%D0%BE%D0%BD%D1%82%D0%B5%D0%BD%D1%82%D0%B5+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8+WordPress&lr=11143
Спасибо!
Мой Вам совет: лучше создайте дополнительный шаблон страницы и выводите туда уникальные функции... Иначе начнутся чудеса на сайте
Вопрос! Как в аддоне сделать страницу настроек? К примеру, мне нужно, что бы можно было в необходимое место подставлять ссылку указанную в настройках, сменить из настроек название вкладки в ЛК? Оч интересно как! 😉
чуть позже опишу пример по добавлению настроек к своему дополнению, а пока можно посмотреть как это реализовано в уже существующих дополнениях и взять их код за основу. Там ничего сложного - всего одна функция.
Спасибо! С нетерпением буду ждать Вашего урока! 😉
Надо исправить — В файле info.txt Url должен задаваться через http:// — только тогда будет формироваться правильная ссылка.
Т.е.
Url: http://вашсайт;