33 плагина для обработки пользовательского ввода


Содержание

Обработка пользовательского ввода в Joomla 2.5 (JInput)

Сегодня я хочу поговорить о обработке пользовательского ввода и о том как защититься от нежелательных данных, которые могут быть потенциально опасны, средствами joomla framework .

На замену классу JRequest в Joomla начиная с версии 2.5 приходит класс JInput. Класс JRequest отныне считается устаревшим и не рекомендуется его использовать.
Хотя в Joomla 2.5.x все ещё много мест где используется устаревший класс JRequest и никто не помешает вам его использовать!

В новых версиях все меньше и меньше используется этот класс! Немного проведя исследоваения Joomla 3.0 Alpha 2 я отыскал всего 135 использований класса JRequest, в то время как в Joomla 2.5.6 я нашел 689 использований!
Возможно в стабильной версии Joomla 3.0 уже и не будет использования класса JRequest либо в следующих апгрейдах выпилят, так что лучше заранее разобраться что это за класс и с чем его едят )

Для использования JInput достаточно вызвать следующий код:

Для того что бы установить какое то значение для переменной в объекте $jinput служит метод set($name, $value), нам нужно передать два параметра в метод: имя переменной и значение.
Например в административной части главное меню блокируется таким кодом:

Для получения данных через класс JInput существует метод get($name, $default, $type)
Где:
$name — имя переменной
$default — значение по умолчанию
$type — тип фильтрации

Метод универсальный через него можно получить и отфильтровать любой тип данных который будет указан в переменной $type например:

Но также в классе JInput есть синоним этого метода

Этот метод выполняет все тоже что и $jinput->get( ‘id’, 1, ‘INT ); но только в нем уже указан тип фильтрации!

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

Тип Значение Синоним
INT или INTEGER Целочисельная переменная getInt($name, $default)
UINT Беззнаковое целое число getUint($name, $default)
FLOAT или DOUBLE Числа с плавающей точкой getFloat($name, $default)
BOOL или BOOLEAN Будевые типы переменных getBool($name, $default)
WORD Только одно слово! Тоесть перменная со значением ‘word1 word2’ будет преобразованна в ‘wordword’ getWord($name, $default)
ALNUM Вернет переменную в которой будут только числа и буквы getAlnum($name, $default)
CMD Значение для командной переменной, например если мы хотим определить какой сейчас вид или задача. getCmd($name, $default)
BASE64 Получение строки зашифрованной с помощью base64 getBase64($name, $default)
STRING Получение строки getString($name, $default)
HTML Получение HTML кода, все потенциально опасные теги удаляются! Список тегов которые не пропускает эта функция: ‘applet’, ‘body’, ‘bgsound’, ‘base’, ‘basefont’, ’embed’, ‘frame’, ‘frameset’, ‘head’, ‘html’, ‘id’, ‘iframe’, ‘ilayer’, ‘layer’, ‘link’, ‘meta’, ‘name’, ‘object’, ‘script’, ‘style’, ‘title’, ‘xml’ getHtml($name, $default)
PATH Путь к файлу или папке getPath($name, $default)
ARRAY Массив getArray(array $vars, $datasource = null)
USERNAME Имя пользователя getUsername($name, $default)

Тип фильтрации регистронезависим, так что вы можете написать хоть INT хоть int хоть InT и все равно все будет работать!

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

Что бы получить файл из переменной JForm[file] нужно написать следующий код:

В переменой $files будут все загруженный файлы из массива jform

Форум

Справочник

Поиск по форуму
Расширенный поиск
К странице.
Страница 1 из 2 1 2 >
Нужно проверять именно DOMControlValueChange и его аналоги.

совсем не обязательно, можно еще по таймеру проверять содержимое value Сообщение от subzey Нужно проверять именно DOMControlValueChange и его аналоги.

И какие у него аналоги?!

  • DOMControlValueChanged — опера
  • input — XUL (гекконы)
  • propertychange (где property=»value») — ослик
  • DOMCharacterDataModified, DOMSubtreeModified — вебкит

Все это расписано в статье по ссылке выше.

Здравствуйте! Есть код:

Во всех браузерах прекрасно работает эта функция:

А вот такая функция не работает в FireFox3 (значение при вводе не меняется):

Где ошибка?? (Необходимо ограничить ввод иных символов кроме цифр на основной клаве и цифровой, Backspase и Delete)
Спасибо!

ez code

Просто о сложном.

Создание плагина для WordPress. Часть 3

Плагины в WordPress — это главный инструмент, делающий систему гибкой и способной выполнять требования разнообразных проектов. В первой части этой серии уроков мы создали фундамент нашего плагина, который распознается ядром системы. Во второй части мы узнали, как расширить стандартную функциональность системы. Сегодня мы займемся настройками плагина.

Нам понадобится создать набор параметров (настроек) и дать пользователю возможность присваивать им соответствующие значения. Все эти значения будут хранится в базе и мы сможем получить их по запросу. Плагин будет выполнять свои действия исходя из значений его настроек.

WordPress предоставляет Options API для регистрации опций и получения их по соответствующему ID и Settings API для внесения изменений в панель администратора, таким образом плагин может иметь собственную страницу с настройками. Также WordPress предоставляет методы для безопасной работы с пользовательским вводом.


Options API

Options API — стандартный способ хранения необходимых данных в базе. Все настройки хранятся в таблице wp_options с определенным именем, с помощью которого может быть получено в коде. Наиболее важные функции для работы с опциями:

Функция get_option служит для получения из базы данных, которые хранятся под заданным именем. Функция update_option обновляет запись в базе, соответствующую переданному имени. Если такой записи нет, она будет создана автоматически. Обе функции могут работать с массивами, так же как и единственным аргументом. Это означает, что вы можете хранить массив данных под определенным именем. Это очень удобно для плагина — хранить все его настройки в базе под одним именем.

Страница настроек плагина

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

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

В параметре $parent_slug необходимо передавать ID главной страницы. Если нет необходимости создавать несколько страниц, вы можете создать страницу в составе уже существующего меню — обычно “Settings” (Параметры), в параметре $parent_slug необходимо передать options-general.php. Также есть функции для регистрации страниц под определенным меню, в случае с меню «Параметры» — add_options_page().

Settings API

Settings API позволяет создать интерфейс для настроек плагина. Зарегистрируйте страницу настроек (для автоматического управления вводом), создайте секции и поля для ввода. Сделать это можно следующим образом:

Для более развернутого описания параметров, вы можете обратиться к «кодексу» WordPress, но логика довольно проста: сначала регистрируем некоторую настройку, далее секцию с набором полей для нее. API также позволяет определить пользовательские колбэки для обработки ввода и для отображения каждого поля и секции.

После регистрации наших настроек и полей, надо их показать на странице настроек — следующая функция должна вызываться внутри тега

Правильная настройка All in One SEO Pack — подробное руководство по настройке All in One SEO Pack для WordPress

Любой, кто занимался SEO оптимизацией своего (или не совсем своего) сайта, натыкался на то, что в каждой из CMS есть свои плагины, которые отвечают за генерацию мета-тегов, необходимых для поисковых систем. В статье я расскажу о правильной настройке плагина All in One SEO Pack для WordPress, а также советы по дальнейшему использованию.

В основном владельцы сайтов предпочитают 2 самых популярных плагина для CMS WordPress, которые помогают SEO оптимизировать статьи: плагин Yoast SEO и плагин All in One SEO Pack.

Плагин Yoast SEO я рассматривал очень подробно в двух прошлых статьях. Поэтому, если плагин All in One SEO Pack не придется Вам по душе, то Вы можете воспользоваться Yoast SEO. Вот две статьи по настройке плагина Yoast SEO:

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

Чего «могЕт» «All in One SEO Pack»

Давайте посмотрим на весь функционал данного плагина:

    Переведен на 57 языков; Перезапись всех заголовков и мета-тегов (description и keywords); Позволяет генерировать автоматически содержимое мета-тегов; Импорт и экспорт настроек плагина; Встроенный редактор файлов robots.txt и .htaccess; Расширенные canonical URL для страниц сайта; Поддерживает SEO оптимизацию пользовательских типов записей; Возможность подключения Google Analytics из админ-панели; Возможность создания XML карты сайта:

    • По расписанию;
    • С возможностью исключения отдельных страниц, целой рубрики;
    • Возможность выставить приоритет.

    Возможность создания автоматической Open Graph микроразметки; Создание автоматической микроразметки Schema.org; Гибкая настройка и управление производительностью плагина; Блокировка ботов, которые по мнению плагина, ведут себя неправильно, чтобы те, не добавляли нагрузки на сайт и не замедляли его работу; Базовая возможность импорта данных из плагина All in One SEO Pack;

Как и у плагина Yoast SEO, в данном плагине есть платная версия, в которой есть такие возможности, как:

    Интеграция с WooCommerce; Менеджер функций; Видео модуль XML Sitemap; Расширенные настройки для произвольных типов записей; Официальная поддержка от разработчиков плагина.

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

(видео инструкция) Как установить плагин?

Для тех, кто не знает как установить данный плагин — я записал небольшое видео на 3 минутки.

Видео инструкция по установке

Основные настройки плагина «All in One SEO Pack»

Рассмотрим основные настройки плагина. Пунктов достаточно много, поэтому будем рассматривать их блоками, чтобы было удобнее Вам производить настройки своего плагина.

Блок «Основные настройки»

Пойдем по пунктам, потому что их здесь действительно немало:

  • «I enjoy this plugin and have made a donation» — у кого все в порядке с английским языком, то поймет что смысл этой фразы в том, что галочку необходимо поставить тем, кто внес пожертвование для дальнейшего развития плагина. Она является необязательной, поэтому ее можно не ставить;
  • «Канонические URL» — этот пункт означает то, что для основных страниц будет стоять ссылка между блоками и , которая указывает на то, что это страница является основной. Потому что могут возникнуть дубли: если для этой же страницы написать UTM метки, например, то поисковик может посчитать что это дубль. А дубли, как Вы знаете, плохо влияют на дальнейшее продвижение. Поэтому галочку ставим;
  • «Запретить пагинацию для канонических URL» — как правило, на сайте всегда присутствует постраничная навигация (за исключением тех способов вывода новостей, когда новости появляются при прокрутке страницы вниз, как это реализовано в социальных сетях), благодаря которой также могут появиться дубли страниц. Поэтому данный пункт также включаем;
  • «Включить пользовательские канонических URL» — если Вас не устраивает какие канонические URL формируются для Ваших постов, то можно включить данный параметр и самостоятельно прописать необходимые URL. Но для начинающих веб-мастеров лучше не использовать данный пункт и оставить его отключенным;
  • «Установить протокол для канонических URL» — здесь устанавливается протокол именно для канонических URL. Лучше всего оставить «Авто» и дать возможность плагину автоматически определять Ваш протокол сайта. Вдруг Вы в ближайшем будущем захотите приобрести SSL-сертификат и забудете сменить протокол для канонических URL? Поверьте, это не лучшим образом скажется на позициях Вашего сайта в поисковой выдаче;
  • «Использовать заголовок по умолчанию» — на Вашем сайте может быть установлена тема (шаблон), которая формирует заголовки на свое усмотрение. Маловероятно, что эти заголовки будут корректны для дальнейшего продвижения. Поэтому данный пункт оставляем отключенным, чтобы плагин смог формировать собственные заголовки, о которых мы поговорим чуть дальше;
  • «Использовать разметку Schema.org» — микроразметка для сайта является очень тонкой настройкой, которая очень индивидуальна от шаблона к шаблону. Данный параметр лучше отключить, потому что он будет показывать в валидаторе микроразметки ошибки. Перед тем как заниматься микроразметкой Schema.org лучше всего изучите данную статью: Schema.org — как внедрить микроразметку на практике;
  • «Вести журнал событий» — как понимаете, не бывает плагинов, которые бы работали без ошибок. Время от времени сбои возникают, ведь CMS обновляется, сторонние плагины могут конфликтовать с данным плагином и так далее. А если включить данный пункт, то можно будет посмотреть логи (журнал событий) данного плагина при возникновении ошибок. Для разработчиков это незаменимая вещь. Но, если Вы начинающий веб-мастер, то не стоит нагружать свою CMS включением данной настройки, ведь все равно Вы не будете ее полноценно использовать. Поэтому данный пункт оставляем отключенным.

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

Идем дальше к блоку «Настройки главной страницы«:

Весь этот блок отвечает за настройку главной страницы:

  • «Заголовок главной стр.» — это не что иное, как Title для главной страницы. Если здесь Вы ничего не напишете и оставите поле пустым, то будет использовать то название сайта, которое задано в настройках WordPress;
  • «Описание главной стр.» — это Description для главной страницы. Если ничего не написать, то он будет пустым;
  • «Ключевые слова главной страницы» — сейчас многие вовсе не используют ключевые слова и нормально продвигают свои проекты. Поэтому если надумаете ввести ключевые слова для главной страницы, то вводите их в данное поле через запятую;
  • «Use Static Front Page Instead» — этот пункт необходимо отметить, если в качестве главной страницы используется статическая страница.

Дальше идет блок «Настройка ключей» и блок «Настройка заголовков«. Так как блок «Настройка заголовков» достаточно большой, то я решил объединить эти два блока и заодно разбить на две части второй блок. Поэтому сначала рассмотрим первый блок и половину блока с настройкой заголовков:


Начнем с первого блока «Настройка ключей«, потому что здесь есть один единственный параметр:

  • «Использовать ключевые слова» — то есть с помощью данного пункта можно включить поддержку ключевых слов на страницах и постах. Если Вы нашли применения им, то можете включить данный пункт;

Далее рассмотрим первую часть блока «Настройка заголовков«:

  • «Перезаписывать заголовки» — здесь сразу хочу внести ясность что именно плагин All in One SEO Pack будет перезаписывать, потому что Вы можете испугаться и отключить данную функцию. Он перезаписывает именно Title. Его Вы видите на поисковой выдаче и в названии вкладки браузера. То есть это НЕ то название, которое Вы видите на странице со своей новостью. Рекомендую оставить включенным данный пункт;
  • «Заголовки с прописной» — этот пункт, я думаю, Вам и без большого описания понятен. Он означает, что заголовки будут начинаться с большой буквы, пункт, конечно же, оставляем включенным. Но этот пункт отвечает только заголовки страниц поиска и страницы с метками;
  • «Заголовки рубрик с прописной» — а если включить этот пункт, то заголовки рубрик будут с большой буквы. Его также оставляем;
  • «Home Page Title Format» — здесь можно вписать формат заголовка Вашей главной страницы сайта. Если на этот пункт нажать, то раскроется небольшая подсказка, где можно увидеть другие переменные, которые также можно использовать для формирования заголовка главное страницы. По умолчанию это просто заголовок страницы без лишних символов, поэтому можно оставить как есть;
  • «Формат заголовков страниц» — как Вы знаете, на CMS WordPress разные типы постов: станицы, записи и так далее. А этот пункт задает формат заголовков именно для страниц. По умолчанию формат такой: «название страницы | название сайта». Можно также оставить по умолчанию и ничего не трогать;
  • «Формат заголовков записей» — точно также, как Вы я описал для страниц процесс формирования заголовков, его можно сформировать и для записей (это обычные новости на Вашем сайте);

А сейчас вторая часть этого блока «Настройка заголовков«:

  • «Формат заголовков рубрик» — в CMS WordPress есть страницы с рубриками. Так вот для этих страниц здесь Вы можете установить формат заголовков. Если нажать на знак вопросика рядом, то откроется описание, какие переменные здесь можно использовать. Хочу обратить Ваше внимание, что здесь необходимо использовать другие переменные;
  • «Формат заголовков архивов» — этот пункт отвечает за формирование заголовков с архивом ПОЛЬЗОВАТЕЛЬСКИХ типов записей. Потому что в CMS WordPress можно создавать пользовательские типы записей, а данный плагин дает возможность изменить заголовки;
  • «Формат заголовков архивов дат» — кроме обычных архивов, также присутствуют заголовки для архивов по датам. В этом поле можно задать то, как будет формироваться заголовок для этих страниц;
  • «Формат заголовков архивов авторов» — также для каждого автора, который пишет статьи, на Вашем сайте создается отдельная страница с его статьями. Для этой страницы также можно задать формат заголовка. Делается это в данном поле;
  • «Формат заголовков тегов» — для каждой статьи можно задать произвольное количество тегов. А затем эти теги выводятся в сайдбаре или в каждой статье. То есть для каждого тега есть своя страница. А заголовок для этой страницы можно задать в этом поле;
  • «Формат заголовков страницы поиска» — это поле, я думаю, не нуждается в описании. В CMS WordPress есть встроенная функция поиска, а, значит, для этого есть специальная страница. Так вот для этой страницы можно изменить формат вывода заголовка именно здесь;
  • «Формат описания» — это мета-тег Description для каждой статьи. Здесь лучше оставить все как есть, чтобы в дальнейшем мы могли вводить свои описания для каждой статьи;
  • «Формат заголовков страницы 404» — эта страница, как многие знают, показывается когда какой-то страницы, на которую хочет попасть посетитель, просто нет на сайте. В этом пункте можно указать что будет в заголовке. Также английский текст лучше сменить на русский. Например, изменяем «Nothing found for» на «Ничего не найдено для запроса: «;
  • «Формат для навигации» — это поле можно вообще убрать. Можно заменить слово «Part» на «Часть», но это уже на Ваше усмотрение.

Далее рассмотрим сразу же два небольших блока «Настройки для пользовательских типов записей» и «Настройки отображения«:

  • «SEO для пользовательских типов записей» — если Вы уже изучили статью по правильной настройке плагина Yoast SEO и вторую часть статьи, тогда знаете о том, что у Yoast SEO есть специальное окно предпросмотра для каждой статьи и страницы. Так в именно за этот пункт и отвечает данная опция в данном плагине All in One SEO Pack. Этот блок есть при написании каждой статьи в админ-панели;
  • «SEO только для этих типов записей» — а здесь мы можем галочками отметить те пункты, которые Вам нужны. По умолчанию включены «Записи» и «Страницы», чего действительно хватает;
  • «Включить расширенные опции» — из расширенных опций здесь то, что можно включить пользовательские заголовки для своих постов. Но не рекомендую это делать, а лучше оставить как есть.

А сейчас перейдем ко второму блоку «Настройки отображения»:

  • «SEO для пользовательских типов записей» — если Вы уже изучили статью по правильной настройке плагина Yoast SEO и вторую часть статьи, тогда знаете о том, что у Yoast SEO есть специальное окно предпросмотра для каждой статьи и страницы. Так в именно за этот пункт и отвечает данная опция в данном плагине All in One SEO Pack. Этот блок есть при написании каждой статьи в админ-панели;
  • «Показывать настройки SEO для пользовательских типов записей» — ставим также две галочки: «Записи» и «Страницы»;
  • «Отображать меню в админ панели» — этот пункт, опять же, на Ваше усмотрение. Нужно ли Вам в админ панели над каждой страницей и записью на сайте вверху именно такой пункт? Мне всегда не очень нравилась эта админ панель, и мне больше по душе все делать через панель управления сайта. Но если Вы активно используете эту админ панель, то можно оставить этот пункт;
  • «Отображать меню в верхней панели» — а вот этот пункт желательно оставить, тогда меню данного плагина будет всегда вверху в панели управления Вашего сайта. Очень удобно, когда Вы постоянно туда заходите. Потому что все плагины, чаще всего, появляются именно внизу меню панели управления.

Чтобы было быстрее разберем, опять же, два блока «Верификация веб-мастера» и «Настройки Google«:

  • «Инструменты вебмастера Google» — разработчики данного плагина решили сделать более комфортную работу с подтверждением прав на Google WebMaster. Когда Вы регистрируетесь в Google WebMaster, то Вам на выбор предлагается несколько вариантов подтверждения того, что это действительно Ваш сайт. И один из них, это специальный код, который можно вставить в данное поле. Но чаще всего, легче просто зайти в исходный код Вашей темы и вставить мета тег между блоками . Если Вы еще не зарегистрировались в сервисе Google WebMaster, то этот пункт Вам пригодится. Ниже есть соответствующее поле для Bing;
  • «Pinterest верификация» — аналогичная ситуация и с этим сервисом. Но, к сожалению, он не сильно популярен в рунете.

Далее у нас идет блок «Настройки Google»:

  • «Профиль в Google+» — сюда вводим адрес Вашего профиля в Google+, чтобы подтвердить авторство на Ваш сайт. Раньше автор мог выводится в расширенном сниппете на выдаче, но это было давно и Google убрали данную возможность;
  • «Отключить профиль Google+» — в этом пункте можно отключить вывод данных с профилем Google+;
  • «Отображать ссылки сайта в поисковом окне» — кроме основной выдачи Вашего сайта, можно еще вывести дополнительные ссылки Вашего сайта на самые популярные страницы. Оставьте этот пункт, тогда на выдаче, Ваш сайт, при определенных запросах, будет показываться более «масштабно»;
  • «Set Preferred Site Name» — с помощью данного пункта можно указать в микроразметке какое название сайта лучше использовать Google. Но, прежде чем выставлять данный параметр, ознакомьтесь со структурой микроразметки Schema.org. Но, хочу заметить, что данные будут выводиться в формате JSON-LD;
  • «Расширенные настройки авторства» — если включить этот пункт, то в дальнейшем можно будет выбрать на какой из страниц можно включить авторство Google+;
  • «Google Analytics ID» — ну а этот пункт, как и пункт с подтверждением прав на Google WebMaster, сделан для удобства. То есть можно не «бежать» в код и искать место куда же вставить код аналитики от Google. А можно в данный пункт лишь прописать идентификатор Вашей аналитики. Но подходит это больше для тех, кто не сильно дружит с кодом и боится чего-нибудь сделать не то.

Следующий блок «Настройки индексирования (noindex)» также разобьем на 2 части, потому пунктов здесь много:

  • «По умолчанию NOINDEX» — можно изначально запретить индексирование, например, страниц на сайте. И тогда только записи будут индексироваться. Чтобы запретить индексировать что-либо на сайте, просто поставьте галочку в соответствующем поле;
  • «По умолчанию NOFOLLOW» — с помощью данного пункта можно запретить переход поискового бота по ссылкам на странице. Обычно используется совместно с пунктов выше;
  • «По умолчанию NOODP» — данная возможность присутствует также в плагине Yoast SEO. С помощью данной функции можно запретить брать описание Вашего сайта из каталога DMOZ. Потому что бывает так, что при добавлении сайта модераторы сами прописывают его описание, о оно не всегда такое, как мы этого хотели;

  • «По умолчанию NOYDIR» — этот пункт отвечает за тот же параметр что и пункт выше, но только для каталога Yahoo. То есть устанавливая его мы запрещаем брать описание из каталога Yahoo для Вашего сайта;
  • «Использовать noindex для рубрик» — «говорим» поисковым системам о том, чтобы они не индексировали страницы рубрик нашего сайта;
  • «Использовать noindex для архивов дат» — аналогично с предыдущим пунктов запрещаем поисковым системам индексировать страницы с архивом дат на нашем сайте. Можно включить, чтобы исключить появление дублей;
  • «Использовать noindex для архивов авторов» — устанавливая этот пункт, мы запрещаем индексировать страницы с архивом авторов на Вашем сайте. Можно включить, чтобы исключить появление дублей;
  • «Использовать noindex для архивов меток» — точно также можно поступить и с метками, то есть запретить страницы с метками индексировать. Можно установить этот пункт, если Вы не хотите, чтобы страницы не попадали в индекс поисковых систем;

А сейчас переходим ко второй части этого блока «Настройки индексирования (noindex)«:

  • «Использовать noindex для страницы поиска» — страницы поиска, как таковой, не существует. Ведь она генерируется в зависимости от запроса пользователя, то есть в зависимости от того, какую ключевую фразу он ввел. Поэтому данный пункт включаем, чтобы избежать дублирования контента на Вашем сайте;
  • «Использовать noindex для 404 страницы» — страницу 404 также закрываем от индексирования включая данный пункт;
  • «Использовать noindex для страниц/записей с пагинацией» — если Вы делите свои статьи на несколько страниц (что немного странно), то можно включить этот пункт, чтобы запретить дублирование Вашего контента на сайте;
  • «Исключить сайт из Open Directory Project» — в отличие от предыдущего пункта, где можно было исключить лишь на определенных типов записей и страниц, то здесь можно включить мета тег NOODP на всем сайте. Включаем и больше не беспокоимся о том, что описание может быть использовано из каталога DMOZ;
  • «Исключить сайт из Yahoo! Directory» — также, как и в прошлом пункте, здесь можно включить мета тег NOYDIR на весь сайт, а не только на определенные типы записей.

Итак, последний блок на этой странице «Расширенные настройки«. Мы его также разобьем на две части и рассмотрим более подробно каждую из них:

  • «Избегать использования выдержек в описаниях» — ставим галочку, чтобы мета описание не генерировалось из отрывка;
  • «Авто-генерируемые описания» — убираем галочку, если Вы хотите вводить свои описание. Потому что данный плагин может взять не самое лучшее место из Вашей записи;
  • «Использовать шорткоды в авто-генерируемых описаниях» — галочку не ставим;
  • «Удалить описания со страниц с пагинацией» — как я писал ранее, некоторые авторы пишут большие статьи и разбивают ее на части. Так вот, чтобы во 2-й, 3-й и других частях не было повторяющегося мета описания, эту галочку необходимо поставить;
  • «Никогда не сокращать длинные описания» — у плагина может быть какая-то фиксированная длина мета описания, и все лишнее от обрежет. Чтобы этого не произошло, то поставьте данную галочку;
  • «Незащищенные МЕТА-поля» — не ставим данную галочку. Для неопытных веб-мастеров она не несет большого значения, поэтому просто не трогаем этот параметр;
  • «Исключить страницы» — очень интересный пункт, где можно исключить отдельные страницы сайта, которые Вам не нравятся и которые Вы хотите чтобы плагин All in One SEO PACK смог добавлять свои теги и так далее. То есть здесь Вы исключаете страницы из самого плагина. Прописывать необходимо именно URL страниц;
  • «Доп. заголовки записей» — если Вы введете какое-либо слово сюда, то оно будет сразу же добавлено во все заголовки записей на сайте. Но лучше этого не делать и оставить поле пустым.

И последние 3 пункта блока «Расширенные настройки«:

15 лучших плагинов WordPress для создания контактных форм

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

Контактная страница просто использовала адрес электронной почты, адрес, номер телефона и т. Д., Которые пользователи должны были копировать или сохранять для связи с владельцем веб-сайта. Такой традиционный способ кажется действительно неудобным для пользователей, но возможность для спамеров, которые могут нанести вред вашим ценным данным веб-сайта. Мы не можем так рисковать!

Лучшие плагины WordPress для построения форм 2020

Плагины, которые сделали этот список, широко используются, получают регулярные обновления и получили отличную обратную связь от сообщества WordPress. Они также перечислены не в каком-либо конкретном порядке, так как все они предлагают множество преимуществ, которые могут или могут не соответствовать вашим конкретным потребностям. Давайте начнем!

Contact Form 7

Contact Form 7 является популярной, простой и гибкой. У вас есть возможность создавать несколько форм, и они также могут быть настроены с простой разметкой. Параметры настройки параметров почты и изменения сообщения по умолчанию можно найти в панели пользовательских панелей.

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

Ключевая особенность:

  • Простота настройки.
  • Настраиваемые сообщения по умолчанию.
  • Легко определенные настройки почты.

WPForms

WPForms позволяет создавать чистые, современные формы в интуитивно понятном интерфейсе drag-and-drop. Существует также ряд предварительно построенных шаблонов на выбор, в том числе многостраничные и пользовательские формы регистрации.

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

Дополнения, такие как интеграция с MailChimp, AWeber и PayPal, доступны в планах с более высоким уровнем WPForms.


Ключевая особенность:

  • Мгновенные уведомления.
  • Оптимизированная система управления вводом.
  • Умная условная логика.

Ninja Forms

Ninja Forms — отличный плагин для начинающих и разработчиков. Для новичков интерфейс перетаскивания позволяет быстро и просто создавать любые формы. Для разработчиков Ninja Forms имеет ряд фильтров и настраиваемых шаблонов полей для высокоуровневой настройки.

Основная форма не включает условную логику, которая является очень желательной функцией для многих пользователей. Тем не менее, это доступно в качестве дополнения.

Ключевая особенность:

  • Интуитивно понятный пользовательский интерфейс.
  • Почти неограниченное количество форм, полей и представлений.
  • Параметры для принудительного ввода необходимых полей и исправления форматирования данных.

Form Maker

Form Maker предоставляет простой в использовании интерфейс перетаскивания, который позволяет создавать простые формы контактов. Основной бесплатный плагин предлагает такие функции, как многостраничные формы, условная логика и настраиваемые электронные письма.

Кроме того, существует множество функций премиум-класса (таких как интеграция с PayPal) и множество платных дополнений, которые позволяют вам адаптировать этот плагин в соответствии с вашими потребностями, такими как интеграция MailChimp и Dropbox и условная рассылка.

Ключевая особенность:

  • 41 настраиваемая тема.
  • Управление представлением формы.
  • Многостраничные формы.

Fast Secure Contact Form

Для плагина с бесплатной контактной формой Fast Secure Contact Form довольно надежный. Вы можете легко создавать и редактировать формы в интерфейсе drag-and-drop, а также добавлять или удалять столько полей, сколько хотите.

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

Ключевая особенность:

  • Легко настраиваемое редактирование формы.
  • Возможность отправлять письма с подтверждением.
  • Вы можете перенаправить посетителей практически на любой URL.

Visual Form Builder

С помощью нескольких вариантов макета и 18 типов полей Visual Form Builder позволяет вам быстро и легко создавать профессионально выглядящие формы. Этот плагин может быть настроен таким образом, чтобы заявки на формы отправлялись на несколько электронных писем, а также возможность отправлять индивидуальные почтовые квитанции каждому пользователю.

Кроме того, вы можете размещать несколько форм на одной странице или странице и дублировать формы одним щелчком мыши. Visual Form Builder автоматически сохраняет записи в форме в базе данных WordPress и позволяет вам управлять данными непосредственно на панели инструментов WordPress.

Ключевая особенность:

  • Интерфейс перетаскивания.
  • Возможность экспорта записей в файл CSV.
  • Несколько вариантов размещения полей.

Form Builder

Form Builder позволяет создавать простые формы на основе одного из 10 шаблонов по умолчанию. Если вы ищете быструю и удобную форму, основной плагин выполнит эту работу. Тем не менее, это стилистически не хватает, так что если эстетика важна для вас, платный апгрейд Form Builder могла бы быть лучше подходят.

С премиальной версией вы получаете 37 тем, основанных на разных цветовых схемах, возможность добавления раздела материалов и возможность экспорта представленных данных в формат CSV или XML.

Ключевая особенность:

  • Параметры электронной почты для администраторов и пользователей.
  • Интеграция с Google Maps .
  • Разнообразие вариантов перенаправления.

Formidable отлично подходят для быстрого и простого создания формы. Параметры настройки несколько ограничены в бесплатной версии, но она предлагает достаточно для всех видов простого использования. Вы можете создавать формы с использованием встроенных шаблонов или начинать с нуля с помощью компоновщика перетаскивания и сохранять свои собственные шаблоны для будущего использования.

Хотя в бесплатной версии вы ограничены только семью типами полей, версия премиум-класса включает 15 дополнительных типов полей. Он также предлагает несколько гибких параметров администратора, позволяющих просматривать, редактировать и удалять записи и генерировать графики и статистику на основе ваших собранных данных.

Существует также ряд платных дополнений, таких как интеграция с MailChimp и AWeber.

Ключевая особенность:

  • Интерфейс перетаскивания.
  • Почти неограниченные уведомления по электронной почте.
  • Импорт и экспорт форм с использованием формата XML.

Pirate Forms

Pirate Forms — еще один бесплатный вариант для создания простых форм контакта, хотя у него есть преимущество перед многими его конкурентами, когда дело доходит до внешнего вида ваших форм. Однако вариантов настройки нет, но это часть предпосылки для плагина.


Форма предназначена для небольшой настройки, поэтому вы можете просто удалить заполненную форму на свой сайт с помощью короткого кода или виджета. Кроме того, Pirate Forms хранит вашу собранную контактную информацию в базе данных для легкого доступа с вашей информационной панели.

Ключевая особенность:

  • Уведомления по электронной почте.
  • Возможность настраивать поля, метки и сообщения.
  • Контакты хранятся в базе данных.

Ultimate Form Builder

Ultimate Form Builder — это плагин WordPress Form Premium для создания неограниченных гибких форм контактов. В этом плагине есть 10 красиво оформленных шаблонов форм. Это простой в использовании плагин, с помощью которого можно создавать простые и сложные формы контактов, не касаясь одного кода.

Ultimate Form Builder поддерживает как одношаговую, так и многошаговую поддержку в соответствии с вашими потребностями. С помощью этого плагина можно легко создавать различные типы контактных форм, таких как «Связаться с нами», «Выбор», «Призыв к действию», «Опрос», «Котировка», «Запрос» и т. Д. Он имеет поддержку условной логики, которая включает в себя отображение show hide logic, логику электронной почты и логику перенаправления. Бесплатная версия плагина доступна в каталоге плагинов WordPress.

Everest Forms

Everest Forms — это легкий и расширяемый инструмент для форматирования и форматирования, который легко и быстро создает любой тип формы. Этот плагин предлагает поддержку нескольких столбцов, Google re-captcha для защиты от спама, поддержку нескольких получателей электронной почты, массив полей форм, успешную отправку электронной почты и многое другое. Не только это, с помощью формы Everest вы можете выбирать из нескольких шаблонов дизайна форм и просматривать записи в форме непосредственно с панели управления. Плагин также имеет намного больше функций с большой полезностью, но особенностью, которая выделяется прежде всего, является ее легкий интерфейс перетаскивания, который делает процесс создания форм кусочком торта.

weForms

Если вы хотите сэкономить много времени при создании своей формы, то weForms — одно из лучших решений для вас. Это плагин для создания форм WordPress, с помощью которого полностью работоспособная форма может быть легко сделана за считанные минуты. Вам также не нужно беспокоиться об ухудшении производительности при создании формы с помощью этого плагина. Это очень быстро, так как все работает на одной странице. Чтобы сделать вашу работу еще быстрее, у нее также есть шаблоны форм, которые вы можете использовать для создания формы сразу.

У вас может быть много компонентов и элементов, которые будут весьма полезны для вашей формы с помощью этого плагина-редактора форм WordPress. Он имеет интерфейс перетаскивания. Таким образом, вы можете просто добавить поля формы, которые вам нужны на вашем сайте, без каких-либо проблем. Вы также можете создавать различные типы форм с помощью этого построителя форм. Они могут включать в себя контактные формы, рассказать другу, регистрацию пользователей, заявки на получение кредита и добровольцев и многое другое.

Ключевая особенность:

  • 18+, чтобы увеличить функциональность.
  • Shortcodes, поместите форму в любом месте.
  • Отзывчивый дизайн , может использоваться на любых портативных устройствах.
  • Перетащите , используйте его с предварительным просмотром в реальном времени.
  • Легкий интерфейс , мощный и простой пользовательский интерфейс.

Caldera

Caldera Form — бесплатный и мощный плагин WordPress, который создает гибкие формы с помощью простого редактора перетаскивания. Caldera Forms имеет множество бесплатных пользовательских дополнений для начинающих и веб-разработчиков. Узнайте больше о Caldera Forms на CalderaForms.com.

Визуальный редактор Caldera Forms упрощает создание формы для WordPress. Настройте свою форму с помощью нескольких столбцов, добавьте дополнительные страницы и вороньте ответы пользователей с условной логикой, чтобы получить более надежные данные и соответствующую информацию от ваших клиентов и посетителей сайта. Анти-спам, AJAX, уведомления по электронной почте и отслеживание записей в базе данных включены по умолчанию.

Form Maker by WD

Form Maker — мощная, но удобная для пользователя форма встроенного плагина. Благодаря интуитивно понятному интерфейсу перетаскивания, этот плагин является идеальным решением для быстрого и своевременного создания гибких форм WordPress. Добавьте на ваш сайт современные и функциональные вопросники с помощью нескольких кликов. Используя плагин, вы можете создавать формы практически для любых целей: от простой формы контакта до многостраничного приложения, регистрации и анкеты с условными полями, защиты от перехвата, вопросов с множественным выбором и т. Д. Для их создания вам потребуется всего несколько кликов и несколько минут для настройки с помощью доступных тем, стилей и вариантов отображения. Этот плагин может быть хорошим дополнением к любому веб-сайту, поэтому давайте попробуем.

Easy Contact Form

Плагин GrandWP Forms обладает широким диапазоном гибкости. Вы можете сделать формы точно такими, как вы хотите, чтобы они появлялись на Front-End без найма разработчика. Это 100% отзывчивый и высокопроизводительный плагин. Используйте плагин Form builder для создания различных форм для отправки пользователям или просто предоставления подробной дополнительной информации о продукте / услугах или о веб-сайте в целом.

Конструктор форм GrandWP чрезвычайно прост в использовании. Плагин Forms имеет интуитивно понятный и простой интерфейс, который позволяет создавать удивительные формы за несколько кликов. Он имеет современный и гибкий дизайн, который сделает ваш сайт профессиональным. Плагин Forms позволяет настраивать все уровни каждого отдельного поля, которые вы создаете, чтобы он выглядел точно так, как вы хотите. После создания проекта форм GrandWP вы можете изменять / настраивать его, когда захотите, и, тем не менее, хотите. В плагине форм-блогов также есть опция «перетаскивания», которая позволяет изменять порядок полей одним щелчком мыши.

Настройки плагина

Если плагин требует настроек со стороны пользователя, то поля для ввода или выбора значений настроек необходимо перечислить в конфигурационном файле плагина lib/config/settings.php .

Набор полей настроек плагина формируется в виде ассоциативного массива со списком параметров, как показано ниже:

Описание параметров

  • setting_key — произвольный уникальный текстовый идентификатор поля настроек
  • title — наименование поля настроек
  • description — описание поля настроек (отображается под полем)
  • control_type — тип поля для отображения и редактирования значения настроек
  • options — массив значений для множественных полей: RADIOGROUP, SELECT, GROUPBOX, CONTACT
  • value — значение по умолчанию, которое должно отображаться в поле настроек, если пользовательское значение не задано; для поля типа GROUPBOX необходимо указать массив значений
  • control_separator — необязательный HTML-код для визуального разделения элементов множественных полей: RADIOGROUP и GROUPBOX, например,

Типы полей настроек

Фреймворк предоставляет набор предопределенных типов полей, которые можно использовать на странице настроек плагина. Указывать их следует путем обращения к константам класса waHtmlControl :

waHtmlControl::INPUT — однострочное текстовое поле.

waHtmlControl::PASSWORD — однострочное поле для ввода пароля типа ‘password’.


waHtmlControl::TEXTAREA — многострочное текстовое поле.

waHtmlControl::FILE — кнопка выбора файла.

waHtmlControl::HIDDEN — скрытое поле.

waHtmlControl::CHECKBOX — флажок.

waHtmlControl::GROUPBOX — группа флажков. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать следующие значения:

value — идентификатор значения, который можно использовать в PHP-коде в качестве ключа для доступа к элементу ассоциативного массива настроек
title — текстовый заголовок рядом с флажком
description — подсказка справа от заголовка (отображается серым цветом)

waHtmlControl::RADIOGROUP — группа радиокнопок. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать следующие значения:

value — идентификатор значения
title — текстовый заголовок рядом с радиокнопкой
description — подсказка справа от заголовка (отображается серым цветом)

waHtmlControl::SELECT — выпадающий список. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать следующие значения:

value — идентификатор значения
title — текстовое значение элемента выпадающего списка
description — значение атрибута title элемента выпадающего списка

waHtmlControl::CONTACT — список полей редактирования свойств контакта, как в приложении «Контакты». По умолчанию в этих полях отражаются свойства текущего пользователя. Изменение значений этих полей в настройках плагина не изменяет свойства текущего пользователя, а лишь сохраняет введенные данные в таблицу с настройками плагина. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать отдельные массивы для каждого отображаемого элемента свойств контакта с элементами ‘ value ‘, содержащими идентификаторы этого свойства:

waHtmlControl::CONTACTFIELD — выпадающий список для выбора одного из контактных полей, доступных в приложении «Контакты». Для того чтобы показать выбранным в списке какое-то поле, в элементе ‘ value ‘ данного поля настроек укажите options ‘ укажите следующее:

waHtmlControl::CUSTOM — пользовательский элемент для ввода настроек, сформированный с использованием произвольного HTML-кода. PHP-логику формирования HTML-кода пользовательского элемента рекомендуется оформлять в виде публичного статического метода основного класса плагина и указывать имя этого метода в файле settings.php , как показано ниже:

В этом примере вместо somePlugin нужно указать имя класса плагина, в котором объявлен метод, указанный в этой строке (имя метода может быть произвольным).

Динамическое формирование списка значений

Набор значений для множественных типов полей ( RADIOGROUP , SELECT , GROUPBOX ) можно формировать автоматически вместо указания фиксированного набора элементов с помощью подмассива ‘ options ‘. Для автоматического формирования набора значений нужно добавить элемент ‘ options_callback ‘ и в нем указать в виде простого массива имя класса плагина и его статический метод, который должен вернуть набор значений, например:

В этом примере метод settingSelectValues() некоторого класса плагина somePlugin должен вернуть массив, имеющий ту же структуру, которая описана выше для элемента ‘ options ‘ для данного типа поля (в данном случае waHtmlControl::SELECT ), например:

В этом случае элемент ‘ options ‘ для данного поля настроек указывать не нужно.

Пример файла настроек плагина

Webasyst — это CMS нового поколения, совмещающая в себе инструменты для управления сайтом и интернет-магазином с полезными приложениями для совместной работы с коллегами и взаимодействия с клиентами. Единый центр управления бизнесом через интернет.

Платформа
Магазин Webasyst
Помощь
  • © 2002—2020 Webasyst
  • О компании
  • Блог
  • Договор-оферта
  • Webasyst.com

Мы получаем и обрабатываем персональные данные посетителей сайта в соответствии с Политикой обработки персональных данных. Отправка персональных данных с помощью любой страницы сайта подразумевает согласие со всеми пунктами Политики.

LastPass — браузерный плагин для автоматического ввода паролей на страницах

Можно, конечно, записывать пароли на бумажках, в блокноте, в текстовом файле. Но если вы работаете за компьютером, то самым оптимальным будет использование всех возможностей, которые он предоставляет. А так как большинство пользователей слишком рациональны в своих действиях (а если попросту говоря — ленивы), то они постоянно ищут, чтобы программы запоминали и водили пароли за них. Из таких программ получил распространение только RoboForm, ну и о Dekart Password Carrier некоторые знают. Однако это платные программы, а платить мы не любим. И тут появился LastPass — бесплатный плагин для браузеров, совмещенный с онлайновым сервисом.

Этот плагин устанавливается в браузеры Internet Explorer, Firefox, Safari и Google Chrome, то есть работает во всех популярных операционных системах. Он позволяет создать свое хранилище логинов и паролей от всевозможных сайтов, веб-форм, закрытых зон в интернете, которое будет размещаться на сервере программы в зашифрованном виде. Все эти данные доступны как непосредственно через плагин, так и в онайлновом режиме, в вашем аккаунте на сайте. Плагин после простой, пошаговой установки, в ходе которой можно будет использовать уже имеющиеся данные браузеров, берет на себя роль автоматического заполнителя веб-форм — вам ничего не придется делать, да и к тому же все понятно — интерфейс и на русском языке тоже.

Помимо автоматической подстановки, плагин умеет генерировать сложные пароли, экспортировать данные в файл CSV и зашифрованный файл, и брать данные из таких программ, как KeePass, RoboForm, MyPasswordSafe, Password Keeper и многих других, не исключая стандартного обмена данными через обычный файл CSV. Есть специальный защищенный блокнот для подзамочных заметок.

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

Поддержка браузеров не заканчивается плагинами — есть универсальные букмарклеты, работающие в любом браузере, включая Opera. Помимо бесплатной версии есть и платная, которая не содержит рекламы (которой и так очень мало), поддерживает iPhone, BlackBerry, Windows Mobile, Android, и аппараты Symbian S60, поддерживает мульти-авторизацию с использованием USB флэшек. Подробная видеоинструкция о работе этого сервиса: https://lastpass.com/video.php.

Отличная утилита, которую просто необходимо скачать!

Добавление пользовательских полей в описании товара с помощью WooCommerce

Дата публикации: 2020-10-12

От автора: WooCommerce, возможно самый популярный способ продать товары, используя WordPress. Примерно 25% интернета и WooCommerce обеспечивают около 39% всех интернет-магазинов, используя WordPress. Если вы хотите продавать товары клиентам, то использовать их в сочетании друг с другом, это самый надёжный способ. Но иногда, как с любым программным обеспечением, нам или нашим клиентам хочется расширить набор функций исходя из тех, что предлагаются в стандартном наборе.


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

Необходимые инструменты

Предполагается, что на компьютере уже есть следующие настройки (или что-то подобное):

Выбранная операционная система — я выбрал macOS

PHP не меньше 5.6.25, я буду использовать PHP 7

Бесплатный курс «Основы создания тем WordPress»

Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц

Apache или Nginx

Далее по руководству предполагается, что все это установлено, активировано и запущено.

Если вы загружаете WooCommerce специально ради этого руководства, вам не нужно беспокоиться о таких вещах, как страницы корзины, условия и положения, или всё прочее в этом роде. На самом деле, мы собираемся сосредоточиться на метабоксе Simple Product на протяжении всего этого руководства.

Добавление пользовательских полей

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

Для тех, кто не является разработчиком, этот тип информации может быть довольно сложным и ненужным. Но если вы привыкли работать с WordPress, важно отметить, что когда я ссылаюсь на пользовательские поля в этом уроке, я говорю о чем-то совершенно другом.

Я говорю о текстовом поле, которое мы представим на вкладке Linked Product (Связанный продукт) типа Simple Product.

Но об этом мы поговорим позже, а пока давайте начнем.

Подобно WordPress, WooCommerce предоставляет API, который позволяет нам подключаться к части жизненного цикла страницы. Поэтому, хотя вы, возможно, раньше работали с API метаданных WordPress, это делается отдельно с WooCommerce. Существуют два приёма, которые важно знать:

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

woocommerce_process_product_meta. А эту — для обработки, дезинфекции и сохранения значения нашего ввода текста.

Эти хуки требуется определить, как любые другие в WordPress, а затем определить для них настраиваемые функции. И хотя это можно сделать с помощью процедурного программирования, это руководство будет реализовывать функциональность с помощью объектно-ориентированного программирования.

Функциональность

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

Затем мы инициализируем эту переменную экземпляра в конструкторе класса:

На этом этапе мы готовы начать использовать перечисленные выше хуки. Для этого мы добавим функцию инициализации, которая зарегистрирует две пользовательские функции с помощью одного из хуков. В следующих двух разделах мы рассмотрим, как реализовать пользовательскую функциональность.

Добавление поля ввода текста

Во-первых, нам нужно добавить функцию, к которой подключен woocommerce_product_options_grouping. В функции init, которую мы определили в предыдущем разделе, мы сделаем следующее.

Обратите внимание, что я назвал эту функцию product_options_grouping. Я считаю, что это делает код более легким для чтения. Хотя функция сама по себе не может быть очень описательной, она относится к соответствующему ей хуку. Затем нам нужно реализовать следующую функцию. Для того нам понадобится следующая информация:

Идентификатор, который мы будем использовать, чтобы точно определить текстовое поле. Мы будем использовать набор данных экземпляра в конструкторе.

Метка, которая будет использоваться для того, чтобы дать некоторое описание в поле ввода.

Также для целей нашего примера можно дополнительно указать плэйсхолдер.

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

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

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

Бесплатный курс «Основы создания тем WordPress»

Изучите курс и узнайте, как создавать мультиязычные темы с нестандартной структурой страниц

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

Сохранение информации

Добавьте следующие строки кода в init метод:

После этого обязательно добавьте функцию add_custom_linked_field_save.

В следующем разделе я расскажу немного о реализации функции.

Очистка данных

Обратите внимание, что в функции выше есть три вещи:

Мы проверяем, есть ли несколько значений nonce. Если нет, то мы вернем false. Это стандартная мера предосторожности. Значения nonce обнаруживаются, глядя конкретно на то, что предлагает WooCommerce в исходном коде.

Санируйте данные в $_POST коллекции, соответствующие введенному значению пользователя.

Сохраните информацию в таблице метаданных поста.

Обратите внимание, что мы фактически ничего не делаем, чтобы отобразить информацию в интерфейсе, даже не нужно вызывать get_post_meta. Однако именно так мы будем предоставлять информацию в интерфейсе.

Отображение тизера на front end

Для предоставления информации в интерфейсе нам понадобится класс, который будет выполнять большую часть той же работы, которую мы уже сделали. В частности, нам понадобятся:

идентификатор текстового поля

инициализация указанного идентификатора в конструкторе

функция инициализации для подключения нашего пользовательского кода к интерфейсу

рендеринг фактического значения

Настройка этого процесса на самом деле не так сложна, к тому же мы уже её сделали, поэтому ниже я собираюсь передать класс целиком; тем не менее, у меня будет несколько комментариев, чтобы объяснить, как настроить этот класс после прыжка:

Конечный результат должен быть примерно таким:

На данный момент у нас есть лишний код. В частности, общедоступный и административный классы используют textfield_ID и настраивают его в своем конструкторе. Это код “с душком”, поскольку он нарушает весь принцип DRY объектно-ориентированного программирования.

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

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

Обратите внимание, что я использую хук woocommerce_product_thumbnails, чтобы помочь сделать рендеринг информации. Существует несколько доступных для WooCommerce хуков, и я просто выбрал этот из доступных для рендеринга. Вы можете свободно разбираться в документации, чтобы определить, какой хук лучше всего подходит для ваших нужд.

Соединим воедино

Последнее, что нам нужно сделать, это настроить загрузочный файл, который запустит плагин. Мы делали это в ряде моих предыдущих уроков, поэтому сейчас я не буду тратить слишком много времени на то, чтобы ввести в суть дела. Здесь пример того, как я разбиваю код:

Настройки плагина

Если плагин требует настроек со стороны пользователя, то поля для ввода или выбора значений настроек необходимо перечислить в конфигурационном файле плагина lib/config/settings.php .

Набор полей настроек плагина формируется в виде ассоциативного массива со списком параметров, как показано ниже:

Описание параметров

  • setting_key — произвольный уникальный текстовый идентификатор поля настроек
  • title — наименование поля настроек
  • description — описание поля настроек (отображается под полем)
  • control_type — тип поля для отображения и редактирования значения настроек
  • options — массив значений для множественных полей: RADIOGROUP, SELECT, GROUPBOX, CONTACT
  • value — значение по умолчанию, которое должно отображаться в поле настроек, если пользовательское значение не задано; для поля типа GROUPBOX необходимо указать массив значений
  • control_separator — необязательный HTML-код для визуального разделения элементов множественных полей: RADIOGROUP и GROUPBOX, например,

Типы полей настроек

Фреймворк предоставляет набор предопределенных типов полей, которые можно использовать на странице настроек плагина. Указывать их следует путем обращения к константам класса waHtmlControl :

waHtmlControl::INPUT — однострочное текстовое поле.

waHtmlControl::PASSWORD — однострочное поле для ввода пароля типа ‘password’.

waHtmlControl::TEXTAREA — многострочное текстовое поле.

waHtmlControl::FILE — кнопка выбора файла.

waHtmlControl::HIDDEN — скрытое поле.

waHtmlControl::CHECKBOX — флажок.

waHtmlControl::GROUPBOX — группа флажков. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать следующие значения:

value — идентификатор значения, который можно использовать в PHP-коде в качестве ключа для доступа к элементу ассоциативного массива настроек
title — текстовый заголовок рядом с флажком
description — подсказка справа от заголовка (отображается серым цветом)

waHtmlControl::RADIOGROUP — группа радиокнопок. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать следующие значения:

value — идентификатор значения
title — текстовый заголовок рядом с радиокнопкой
description — подсказка справа от заголовка (отображается серым цветом)

waHtmlControl::SELECT — выпадающий список. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать следующие значения:

value — идентификатор значения
title — текстовое значение элемента выпадающего списка
description — значение атрибута title элемента выпадающего списка

waHtmlControl::CONTACT — список полей редактирования свойств контакта, как в приложении «Контакты». По умолчанию в этих полях отражаются свойства текущего пользователя. Изменение значений этих полей в настройках плагина не изменяет свойства текущего пользователя, а лишь сохраняет введенные данные в таблицу с настройками плагина. При использовании этого типа в подмассиве ‘ options ‘ необходимо указать отдельные массивы для каждого отображаемого элемента свойств контакта с элементами ‘ value ‘, содержащими идентификаторы этого свойства:

waHtmlControl::CONTACTFIELD — выпадающий список для выбора одного из контактных полей, доступных в приложении «Контакты». Для того чтобы показать выбранным в списке какое-то поле, в элементе ‘ value ‘ данного поля настроек укажите options ‘ укажите следующее:

waHtmlControl::CUSTOM — пользовательский элемент для ввода настроек, сформированный с использованием произвольного HTML-кода. PHP-логику формирования HTML-кода пользовательского элемента рекомендуется оформлять в виде публичного статического метода основного класса плагина и указывать имя этого метода в файле settings.php , как показано ниже:

В этом примере вместо somePlugin нужно указать имя класса плагина, в котором объявлен метод, указанный в этой строке (имя метода может быть произвольным).

Динамическое формирование списка значений

Набор значений для множественных типов полей ( RADIOGROUP , SELECT , GROUPBOX ) можно формировать автоматически вместо указания фиксированного набора элементов с помощью подмассива ‘ options ‘. Для автоматического формирования набора значений нужно добавить элемент ‘ options_callback ‘ и в нем указать в виде простого массива имя класса плагина и его статический метод, который должен вернуть набор значений, например:

В этом примере метод settingSelectValues() некоторого класса плагина somePlugin должен вернуть массив, имеющий ту же структуру, которая описана выше для элемента ‘ options ‘ для данного типа поля (в данном случае waHtmlControl::SELECT ), например:

В этом случае элемент ‘ options ‘ для данного поля настроек указывать не нужно.

Пример файла настроек плагина

Webasyst — это CMS нового поколения, совмещающая в себе инструменты для управления сайтом и интернет-магазином с полезными приложениями для совместной работы с коллегами и взаимодействия с клиентами. Единый центр управления бизнесом через интернет.

Платформа
Магазин Webasyst
Помощь
  • © 2002—2020 Webasyst
  • О компании
  • Блог
  • Договор-оферта
  • Webasyst.com

Мы получаем и обрабатываем персональные данные посетителей сайта в соответствии с Политикой обработки персональных данных. Отправка персональных данных с помощью любой страницы сайта подразумевает согласие со всеми пунктами Политики.

Плагин пользовательских полей Multiple customfield plugin. Как упорядочить значения в поле корзины

Значения поля корзины выводятся вперемешку, а хотелось бы, чтобы они шли в каком-то нужном порядке.

Упорядочить получилось с помощью хака.

Сначала упорядочиваем значения поля при настройке пользовательского поля.

Потом в файле плагина

примерно на 750 строке добавляем следующее:

Получается вот такой код:

Чтобы сделать комментарий, нужно авторизоваться на сайте!

Цукерберг рекомендует:  Маркетинг и реклама разница
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих