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

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

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

Начиная с версии Wp-Recall 9.10.0 появилась возможность удобно добавлять свои настройки к своим дополнениям не заморачиваясь HTML-кодом и другими нюансами. Это стало возможным благодаря новому классу плагина Wp-Recall регулирующего добавление и отображение настроек самого плагина и его дополнений.

Рассмотрим несколько примеров создания настроек к своему дополнению, от простого к сложному.

Основы.

Первое что мы должны сделать, это создать свою функцию, указать в ней, что будем работать с классом Rcl_Options и прописать возврат результата ее работы в фильтр admin_options_wprecall

Далее создадим оболочку нашего блока настроек, прописав его основное название

Добавим в наш блок настроек заголовок, подзаголовок и текстовое поле, куда будем вписывать значение опции

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

2014-11-07 18-14-10 НАСТРОЙКИ ‹ Плагины WordPress, разработка и продажа. — WordPress - Google Chrome

 

Данное значение будет храниться в глобальном массиве настроек плагина Wp-Recall и может быть использовано в вашем дополнении путем указания атрибута name нашей опции как ключа в массиве $rcl_options. В данном случае, опция будет храниться в $rcl_options['size_block'] и будет иметь значение, которое мы пропишем в текстовое поле созданного блока настроек.

На данный момент, можно создавать поля настроек следующих типов:

  • text
  • number
  • email
  • url
  • textarea
  • select
  • checkbox

textarea, email, number, url добавляется по тому же принципу, что и поле типа text

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

Результатом данного кода будет вывод блока уже такого вида

2014-11-07 18-46-41 НАСТРОЙКИ ‹ Плагины WordPress, разработка и продажа. — WordPress - Google Chrome

 

Рассмотрим подробнее опцию выпадающего списка. Итак, в значении name мы прописываем название нашей опции по которой в дальнейшем будем получать значение этой опции, в данном случае, это color_block, т.е. получать будем так - $rcl_options['color_block']. По-умолчанию, порядок нахождения опций определяет их значение, которое мы будем передавать для использования в массив настроек, начиная от ноля. Например, опция с именем "Первое значение" будем иметь значение 0, а опция с именем "Второе значение" будет иметь значение 1 и тд.

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

Теперь уже "Первая опция" передает значение 10, "Вторая опция" передает значение large, а "Третья опция" - 5 и тд. Как можно заметить в качестве значения опции можно передавать как числовые так и строковые значения. Мы можем указать значение выставляемое по-умолчанию в нашем выпадающем списке. Для этого надо прописать атрибут 'default' и указать для него значение требуемой опции

Теперь, если опция еще не была назначения для выпадающего списка, нам будет показываться "Третья опция" со значением 5, а не первая по списку.

Поле типа checkbox создается по принципу описанному для select:

Создание подчиненных блоков

Допустим, при выборе "Второй опции" нам потребует показывать скрытый блок с дополнительными настройками, а при выборе других опций списка этот блок необходимо будет скрывать за ненадобностью. Для этого нам потребуется поместить скрытые настройки в оболочку $opt->chlid(), а выпадающий список, который будет влиять на показ и скрытие этого блока назначить его родителем.

Прописываем в выпадаюющем списке атрибут parent со значением true, чтобы назначить эту опцию родительской для скрытого блока

Помещаем скрытые настройки в оболочку $opt->chlid() и указываем для нее родителя со значением родителя при котором данный блок будет появляться

Теперь при выборе второй опции выпадающего списка нам будет показываться дополнительное скрытое ранее текстовое поле для внесения настроек.

Приведу полный код функции из данной статьи

Разработчики могут также помечать некоторые свои настройки, добавленные через класс Rcl_Options, как расширенные. Для этого следует поместить нужные настройки внутрь метода extend, например:

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

2016-07-13_14-46-02

Разработчики также могут добавлять эту функцию к своим опциям, тем более, что это очень просто реализовать, например:

В 15-ой версии WP-Recall появилась возможность объединять некоторые опции в один массив, что удобно делать, например, для опций определенного дополнения. Например, объединим две опции внутри массива "group-options":

После этого, опции будут храниться внутри массива:

Это удобно применять для хранения локальных опций, тогда опции дополнения можно хранить внутри массива только одной опции и вызывать их только одним запросом get_option, а не множеством запросов отдельных значений.

Вот в общем то и все)

Кому то все это может показаться безумно трудным, но на самом деле все достаточно просто, стоит только чуть вникнуть в данный пример и попытаться его применить к своему проекту.

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

11

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

12k

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

Комментарии: 1654Публикации: 495Регистрация: 30-11--0001Продаж/Покупок: 13202/94