Как сделать форму обратной связи во всплывающем окне для WordPress. Fast Secure Contact Form: как сделать форму обратной связи Contact form 7 письмо 2
- Все поля (теги) формы
- Как сделать обязательным одно из полей: почта или телефон
- Conditional Fields for Contact Form 7 аддон
- Contact form 7 Custom validation аддон
В предыдущей статье мы ознакомились с плагином Contact Form 7 и его настройками. А здесь, будут подробно рассмотрены все поддерживаемые типы полей (теги шаблона формы) и параметры каждого из них, а также стили (css классы) элементов формы. Это неофициальная документация ко всем тегам шаблона формы Contact Form 7.
Тип поля определяет вид элемента HTML формы: текстовый, «радио», «селект». Тип поля указывается в названии тега шаблона формы.
Пример тега текстового поля и HTML код который он выведет:
Также каждый тег (поле) имеет свои опции (атрибуты тега). Опции тега указываются после названия и имени поля. Для примера, добавим атрибут class для предыдущего поля text:
Синтаксис тега шаблона (поля) формы:
Атрибуты тегов (полей)В разных тегах формы можно использовать одинаковые атрибуты (опции). Потому, чтобы не повторять описание каждого атрибута для каждого поля формы, вынесем их описание в отдельный раздел.
Атрибуты, которые можно применить только к конкретному тегу формы, будут указаны отдельно для каждого тега.
*
Знак * сразу после типа поля делает поле обязательным для заполнения.
Пример:
id(строка)
Название идентификатора. css атрибут id, используется для оформления поля.
Пример: id:foo
class(строка)
Название класса. css атрибут class, используется для оформления поля.
Пример: class:bar
Можно указать несколько классов:
minlength и maxlength(число)
Это HTML5 атрибуты, которые ограничивают ввод символов в поле, как по нижнему порогу (минимальному), так и по верхнему (максимальному). Пользователь не сможет ввести в поле меньше знаков (minlength) или больше знаков (maxlength), чем определено этими значениями.
Для minlength , если введённый текст будет меньше этого значения, то пользователь получит предупреждение "Поле слишком короткое". И наоборот для maxlength .
Примеры:
minlength:10 -
maxlength:90 -
оба сразу -
В результате получим текстовое поле, которое будет выдавать предупреждение и письмо не будет отправлено, если в него будет введено менее 10 или более 140 символов.
Данные параметры поддерживают следующие типы полей: text , textarea , email , url , tel , quiz .
Существует старая запись этих параметров:
Параметр maxlength в явном виде приоритетнее, поэтому если дописать maxlength:150 , то 140 будет переписано на 150.
Size(число)
Ширина текстового поля, которое определяется числом символов моноширинного шрифта. Может быть переопределено в CSS стилях с помощью атрибута width.
Пример: size:50 -
По умолчанию: 40
default(строка/число)
Значение поля по умолчанию.
Пример: default:значение.
Если пользователь, заполняющий форму, авторизован, то по умолчанию можно подставлять значение взятое из данных его профиля. Например, если указать атрибут default:user_email - , то в поле автоматически подставиться значение - «email текущего пользователя», который просматривает форму...
Остальные специальные поля атрибута default:
default:post_meta - получит значение метаполя ключ которого будет равен имени поля. Например: выведет поле формы в значении которого будет выставлено значение метаполя записи mymeta_key
default:get - выставит значение GET параметра c ключом равным имени поля: - http://example.com/?mykey=значение
default:post - выставит значение POST параметра c ключом равным имени поля: - в POST передаем данные mykey=значение.
default:shortcode_attr - выставит значение атрибута шорткода с ключом равным имени поля. Например тег шаблона формы такой: , тогда в шоркоде самой формы при вызове в контенте записи указываем атрибут mykey: . Подробнее читайте ниже.
Еще, нужно добавить название атрибута шорткода WordPress в белый список (потому что wordpress вырезает все неизвестные атрибуты шорткода...). Делается это через фильтр:
Add_filter("shortcode_atts_wpcf7", "my_shortcode_atts_wpcf7", 10, 3); function my_shortcode_atts_wpcf7($out, $pairs, $atts){ if(isset($atts["mykey"])) $out["mykey"] = $atts["mykey"]; return $out; }
Для checkbox, radio и select:
- default:номер - default:2 - выберет второй элемент списка...
- default:номер_номер - default:2_3 - выберет второй и третий элемент списка (для мульти-селектов и чекбоксов)...
Подробнее про default и его варианты, читайте в конце статьи.
Placeholder или watermark(строка)
Текст который будет показан в атрибуте placeholder.
Эту опцию нужно использовать в конце всех опций тега шаблона: , а не
Можно использовать watermark вместо placeholder - это синоним (алиас) атрибута.
Akismet(строка)
Спам защита. Требует установленного и активированного плагина Akismet .
- akismet:author -
- akismet:author_email -
- akismet:author_url -
Как это работает? При отправки данных, значения указанных полей будут обработаны на сервере akismet и если они не пройдут проверку, то письмо не будет отправлено, а пользователь увидит ошибку:

Сообщение исчезнет при фокусе на любом из полей.
Теги шаблона формы (поля)Ниже описаны все теги плагина, которые можно использовать в шаблоне формы. Такие теги превратятся в input , textarea и select элементы HTML.
К текстовым полям относятся типы: text , email , url , tel , textarea , а также тег count тесно связан именно с текстовыми полями.
К числовым полям относятся два типа: number и range . Это HTML5 поля, потому старые браузеры их не поддерживают, взамен отображая текстовое поле (text).
textПоле для текста в одну строку.
Поддерживаемые опции (атрибуты):
- class
- minlength и maxlength
- size
- placeholder
- default - можно использовать: user_login, user_first_name, user_last_name, user_nickname, user_display_name
- akismet:author
Поле предназначено для ввода email.
Поддерживаются атрибуты:
- class
- minlength и maxlength
- size
- placeholder
- akismet:author_email
- default:user_email или default:любая@почта.ру
Поле для ввода интернет адреса (URL).
Поддерживаются атрибуты:
- class
- minlength и maxlength
- size
- placeholder
- akismet:author_url
- default:user_url или default:значение
Поле для ввода номера телефона.
Поддерживаются атрибуты:
- class
- minlength и maxlength
- size
- placeholder
Поле для ввода многострочного текста.
Поддерживаются атрибуты:
- class
- minlength и maxlength
- placeholder
- (cols)x(rows) - где cols - ширина поля в символах, а rows - высота поля в строках текста. Имеет 3 формата: (cols)x(rows) , (cols)x и x(rows) .
Для textarea значение поля можно указать двумя способами:
Если в textarea будут html теги, то после отправки формы вы, возможно, получите 500 ошибку сервера!
count (счётчик символов)Тег count позволяет установить счетчик, когда нужно показать пользователю, сколько введено символов или сколько символов осталось до максимального значения (если параметр maxlength).
Чтобы активировать счётчик, нужно вставить в шаблон формы тег счётчика с указанием имени текстового поля, для которого он будет считать символы.
Тег счётчика можно использовать в любом месте шаблона формы.
Например, у нас есть текстовое поле для сообщения:
Тогда делаем так:
Поле ограничено - минимум 10 и максимум 140 символами. В данном случае счётчик будет показывать сколько всего введено символов.
Иногда удобнее показать сколько символов осталось ввести, ведь пользователь не знает об ограничении по максимуму. Для этого в теге нужно указать опцию down - .

Поле для ввода числа. При фокусе в поле значения можно изменять вращением колесика мыши.
Поддерживает атрибуты:
- class
- placeholder
- min
- max
Ползунок для выбора чисел в указанном диапазоне.
Поддерживает атрибуты:
- class
- placeholder - отображаются только в браузерах, не поддерживающих данный тип поля и отображающих взамен текстовое поле.
- min - Устанавливает нижнее значение для ввода числа: min:20
- max - Устанавливает верхнее значение для ввода числа: min:100
- step - Устанавливает шаг изменения числа для ползунков и полей ввода чисел: min:5
- Радиокнопки - это переключатели, позволяющие выбрать только один вариант из нескольких.
- Чекбоксы - это флажки, позволяющие выбрать сразу несколько вариантов.
Поддерживаемые атрибуты:
default - Значение поля по умолчанию, к примеру default:2 означает, что при отображении поля второй вариант ответа будет уже выбран. Для чекбоксов можно указать несколько значений подобным образом default:1_2_3
first_as_label - По умолчанию сначала идёт чекбокс (радио-кнопка), а затем его (её) надпись. Передав данный параметр, вы поменяете их местами.
use_label_element - Оборачивает чекбокс или радио-кнопки в label, что позволяет делать выбор элемента кликнув по его названию.
exclusive - Указав этот параметр, у чекбокса можно будет выбрать только 1 элемент. Данный функционал работает на основе JavaScript. Радио-кнопки не поддерживают опцию в силу своей специфики.
free_text - Позволяет добавить к последнему элементу текстовое поле. Оно становится доступным к заполнению при выборе последнего элемента и пользователь может дополнить свой ответ.
- data - Получает значение из листа со странами мира, к примеру data:countries .
China India San Marino
selectПозволяет выбрать варианты ответа из выпадающего списка. Может использоваться в двух вариантах:

Атрибуты:
- class
- default - default:2 или default:2_3_4
- multiple - Позволит выбрать несколько вариантов ответа
- include_blank - Добавит первым вариантом ответа строку "- - -"
- first_as_label
- data
- items - варианты ответов
Пункт 1 Пункт 2 Пункт 3
dateПоле для выбора календарной даты. Это HTML5 тип, не поддерживается старыми браузерами.

Атрибуты:
- class
- placeholder
- min - Нижнее значение возможной даты, например min:2016-01-01 . Поддерживается относительный формат даты, например today+10days , today-2weeks и так далее.
- max - Верхнее значение возможной даты, например min:2017-01-01 . Поддерживается относительный формат даты, как и у min .
- step - Шаг изменения даты в днях, например step:3 . Если нижнее значение 2016-01-01 и шаг 3, то при следующем шаге отобразиться дата 2016-01-04 и так далее.
При вставке тега в шаблон письма, на почту придет дата в формате YYYY-MM-DD (2016-12-25) - это не наглядно. Поэтому можно указать более наглядный шаблон, для этого используйте конструкцию [_format_{field name} "{date format}"]
[_format_your-date "D, d M y"]
reCAPTCHA (защита от спама)Contact Form 7, начиная с версии 4.3, в связке с сервисом reCAPTCHA позволяет бороться со спамом. Чтобы пользоваться reCAPTCHA нужно иметь аккаунт в Google, где можно получить ключи для использования API сервиса.

Чтобы получить эти ключи, нужно:

Атрибуты:
- class
- theme - Цветовая схема виджета. Может быть dark или light (по умолчанию).
- size - Размер виджета. Может быть compact (компактный) или normal (по умолчанию).
Теперь в шаблоне формы используйте тег .
Quiz (вопрос-ответ)
В данном поле пользователю задают вопрос и он должен на него ответить, иначе письмо не будет отправлено. Поле появилось, когда от спама боролись с помощью буквенных каптч (ещё не было reCAPTCHA). Использование буквенных каптч накладывало ограничения, как на сервер (требовались графические библиотеки), так и на человека (ошибки визуального восприятия). Данный способ решал эти недостатки.
Атрибуты:
- class
- size - Размер поля и его длина. Одно из значений может быть опущено.
На какой планете Вы живёте?
Из примера видно, что вопрос и ответ разделяется знаком | . Вопрос и ответ можно писать абсолютно любой, например математический:
Можно указать несколько пар вопрос-ответ, вопрос будет выбран случайно каждый раз при показе формы:
Для этого поля можно указать параметры minlength и maxlength:
При создание тега quiz с несколькими вопросами при помощи генератора пишите каждую пару вопрос-ответ с новой строки.

Скрытое поле - не видно пользователю. Может хранить в себе ценную информацию. Информация может быть добавлена с помощью Javascript или создана с помощью опции default .
Атрибуты:
- class
- default - Сюда можно передать параметр, который будет преобразован по определенному правилу. Подробнее читайте в описании атрибута (опции в начале статьи).
Кнопка отправки данных формы (сабмита). При нажатии на эту кнопку происходит отправка всех данных формы на сервер.
Атрибуты:
- class
Можно указать текст кнопки:
Пример использования всех поддерживаемых параметров:
ajax-loaderОбратите внимание, что тег в которой подгружается иконка загрузки, если нажать на отправку формы, добавляется вместе с кнопкой сабмита, точнее после нее.
Так, например, если заменить тег на готовую HTML кнопку. Такое иногда нужно, когда верстка кнопки не подходит. Например если нужно чтобы кнопка сабмита выглядела так:
В этом случае мы потеряем тег , потому что он добавляется через JS, после элемента с классом wpcf7-submit - обычно такой класс имеет стандартная кнопка сабмита.
Чтобы обойти это ограничение, можно просто добавить этот класс к нашему HTML коду кнопки:
Все. Теперь тег будет добавляться и работать как надо.
Или можно добавить тег прямо в шаблон формы.
acceptance (я принимаю ваши условия)Вы можете разрешить пользователям отправлять данные, только если они принимают определенные условия.

Атрибуты:
- class
- invert - Параметр, делающий чекбокс сразу с флажком, но чтобы отправить форму пользователю надо его убрать.
- default - Делает по умолчанию чекбокс сразу с флажком, если указать on , пример default:on , по умолчанию же default:off .
- optional - поле становится не обязательным.
Разрешаю использовать моё имя в комментариях.
Разрешаю использовать моё имя в комментариях.
Поле является чекбоксом, который обрабатывается с помощью такого JavaScript:
This.find(".wpcf7-acceptance").click(function() { $(this).closest("form").wpcf7ToggleSubmit(); });
Изначально у кнопки отправки формы присутствует атрибут disabled="disabled" . Т.е. если чекбокс не активный, то кнопка отправки формы тоже неактивна, а значит и отправить её нельзя. При установки флажка в чекбоксе, скрипт убирает этот атрибут и кнопка становится активной.
Логику работы данного поля можно изменить, так, что оно будет проверяться лишь после попытки отправить форму. Для этого вставьте следующий код во вкладке настроек плагина "Дополнительные настройки":
Acceptance_as_validation: on
Так, если пользователь не поставит флажок, получит уведомление:


С помощью этого поля можно разрешить пользователям прикреплять к письму свои файлы.
Добавление такого функционала состоит из двух этапов:
1 этап - добавление полей для загрузки файлов в формуАтрибуты:
filetypes - Тип файла, который разрешен для загрузки, например pdf, jpg и другие (полный список ниже), указываемые через разделитель | (прямая черта), если требуется указать несколько типов.
- limit - Ограничение загружаемого файла по размеру, например: limit:1048576 , limit:1024kb , limit:1mb . Вы можете использовать kb (килобайты) или mb (мегабайты).
Допустимые типы файлов: jpg, jpeg, png, gif, pdf, doc, docx, ppt, pptx, odt, avi, ogg, m4a, mov, mp3, mp4, mpg, wav, and wmv .
Макс размер файла по умолчанию: 1 MB (1048576 байт).
2 этап - добавление тега в шаблон письмаНа 1 этапе было создано поле, у которого есть имя - your-file . Теперь используем тег с этим именем в шаблоне письма, но не в привычном поле "Тело письма", а в поле "Прикреплённые файлы".

В поле "Прикреплённые файлы" вставляете только тег с именем поля из шаблона формы.
- - правильно
- - неправильно
Если несколько полей для загрузки файлов, то в поле "Прикреплённые файлы" перечисляете их друг за другом без каких-либо разделителей: .
Локальные вложенияContact Form 7, начиная с версии 3.5, поддерживает передачу локальных файлов в письмо. Для этого наряду со вставкой тегов в поле прикрепления файлов нужно передать путь к вашему файлу:
/home/you/dir/dir/dir/fantasticpicture.jpg uploads/2013/08/08/boringguide.pdf
Если указан не абсолютный путь, то будет рассматриваться относительный от папки wp-content .
Управление загрузкой файловПосле того, как пользователь загружает файл через контактную форму, Contact Form 7 проверяет следующие моменты:
Если проверка прошла успешно, то плагин:
По умолчанию папка с временными файлами находится тут: wp-content/uploads/wpcf7_uploads . Может отличаться, если изменен путь к папке uploads .
Папка wpcf7_uploads создается автоматически. Но бывают случае, когда это невозможно - родительская папка uploads не имеет прав на запись. Тогда вам нужно:
Также, можно вообще изменить путь к временной папке плагина. Для этого откройте файл wp-config.php в корне сайта и добавьте константу WPCF7_UPLOADS_TMP_DIR , в которой укажите полный путь до папки с временными файлами:
Define("WPCF7_UPLOADS_TMP_DIR", "/your/file/path");
Указывая индивидуальный путь к папке с временными файлами, убедитесь, что она существует и имеет права на запись (755). В противном случае загрузка файлов не будет работать, а значит они не будут прикреплены к письму.
responseЭто не поле, а тег формы, который позволяет изменить положение сообщений об ошибках и уведомлений при сабмите формы. По умолчанию, уведомление об отправки формы или ошибки отображаются в конце полей формы.
Чтобы изменить это положение вставьте тег в то место шаблона формы, где должны быть уведомления:
Ваше имя (обязательно) Ваше сообщение
Если не ввести имя, то форма отправлена не будет и нас известят об ошибке:

Как видно, в шаблоне формы мы использовали тег в начале и конце кода, потому и уведомление плагин отобразил нам в двух местах.
Помните, что этому правилу подчиняются все уведомления, поддерживаемые плагином (успешная отправка, спам и т.д.).
Спец. значения атрибута default Получение значений по умолчанию по ситуацииПочти всем полям можно через атрибут default передать значение по умолчанию. Но что делать, когда надо передать динамические параметры? К примеру, с помощью GET запроса через URL.
Динамическое получение параметров работает на основе следующих опций тега:
Default:get HTTP GET переменные. Ключ параметра должен совпадать с именем поля формы. default:post HTTP POST переменные. Ключ параметра должен совпадать с именем поля формы. default:post_meta Значение произвольного поля записи в которой находится форма. Имя произвольного поля должно совпадать с именем тега. default:user_(поле пользователя) Речь идет о: default:user_email или default:user_nickname . Полный список таких значений приведен в след. пункте.
Пример тега текстового поля на основе GET запроса:
Пусть у нас есть страница contact , обратимся к ней с передачей GET параметра:
Http://example.com/contact/?your-name=Дмитрий
В результате значение нашего поля будет автоматом "Дмитрий".
Ещё пример: передача UTM меток в форму
Дефолтное значение из нескольких источниковТакже, можно передать несколько мест, откуда хотелось бы получить значение:
Мы указали два источника значения по умолчанию (порядок определяет приоритет): сначала плагин пробует взять значение из адресной строки, если его нет, то из произвольного поля записи. Если значение есть в адресной строке, то значение произвольного поля игнорируется.
Получение значений по умолчанию для зарегистрированного пользователяКогда вы создаете форму для авторизованных пользователей, то нет смысла заставлять их вписывать значения, которые уже есть в их данных, например имя или email. В Contact Form 7 предусмотрен этот момент и можно получить данные из профиля пользователя.
Для этого нужно использовать специальные значения атрибута default для авторизованного пользователя. Рассмотрим все возможные варианты:
- default:user_login - Логин пользователя
- default:user_email - Электронная почта
- default:user_url - Адрес сайта
- default:user_first_name - Имя
- default:user_last_name - Фамилия
- default:user_nickname - Ник
- default:user_display_name - Отображаемое на сайте имя
- default:user_description - Описание (биография).
- default:user_* - где вместо * можно указать любое значение из данных пользователя (см. get_userdata()). Если оригинальные данные пользователя (ключ) начинаются не с user_ , то их нужно начать с user_ . Допустим, у юзера есть метаполе vk и нам нужно указать тут значение этого метаполя. Тогда пишем так: default:user_vk
Ваше имя: Ваш E-mail:
Ещё один примерОдин из зарегистрированных пользователей на сайте решил воспользоваться формой. Логично сразу подставить его имя в поле «Имя», ведь оно известно. Используем атрибут default:
Теперь, когда авторизованный пользователь зайдет на страницу с формой - его отображаемое имя (display_name) будет поставлено в поле your-name автоматом. А если на эту же страницу зайдет неавторизованный пользователь, то он увидит плейсхолдер "Введите ваше имя".
Получение значений по умолчанию через атрибуты основного шоркода CF7Иногда может быть нужно использовать значение из атрибута шорткода в качестве дефолтного параметра для поля.
В этом случае, нужно использовать опцию тега default:shortcode_attr , которая «говорит» плагину получить в качестве дефолтного значение одноименное (с именем поля) значение атрибута шотркода.
Теперь, добавим атрибут с именем поля и нужным значением в шорткод плагина. Указанное значение будет подставлено в дефолтное значение одноименного поля формы:
Однако это еще не все! Как мы знаем для любого шорткода в WordPress ему указывается белый список атрибутов, которые в нём можно использовать. В этом случае, про наш новый атрибут шорткода contact-form-7 WP ничего не знает, поэтому его нужно добавить в белый список. Делается это через хук плагина:
Add_filter("shortcode_atts_wpcf7", "custom_shortcode_atts_wpcf7", 10, 3); function custom_shortcode_atts_wpcf7($out, $pairs, $atts) { if(isset($atts["myemail"])) $out["myemail"] = $atts["myemail"]; return $out; }
Данный код вставляется в functions.php.
Теперь при заходе на страницу с формой в поле email будет подставлено значение [email protected] .
Контактная форма - неотъемлемый атрибут большинства сайтов. Именно поэтому в каталоге WordPress так много плагинов для контактных форм. Один из самых популярных - это Contact Form 7. Плагин позволяет создавать формы любых видов; очень гибок и удобен в настройке; развивается уже много лет и содержит много наработок.
Создание и показ контактных форм Создание форм в админкеПосле установки плагина появится пункт меню "Contact Form 7", через который можно создавать и удалять формы.
Форма на картинке создана при активации плагина автоматически.
Используем форму по умолчанию, для этого создадим страницу "Связаться со мной" и вставим туда шорткод формы.

А теперь сохраним статью и посмотрим, как выглядит наша форма (используется тема Twenty Sixteen):

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

В верхнем поле - название формы (его видно только в админке), указываем понятное для себя название, например: "Отзыв о сайте", "Форма заявки на работу", "Форма обратной связи" и т.п.
Под заголовком - шорткод. Его используем в записях, для вывода формы.
И ниже - четыре вкладки:
Рассмотрим каждую вкладку отдельно.
Шаблон формы
В этой вкладке можно настроить поля и внешний вид формы. Рабочей областью является HTML редактор WP. Только вместо привычных кнопок мы видим кнопки вставки разных полей формы.
Вёрстка формыДля верстки можно использовать html-теги и шорткоды плагина. Шорткоды добавляют поля формы, а html теги позволяют создать произвольную HTML структуру. К примеру, наша дефолтная форма выглядит так:
Ваше имя (обязательно) Ваш e-mail (обязательно) Тема Сообщение
А при отображении в записи она превратится в такой HTML:
Ваше имя (обязательно)
Ваш e-mail (обязательно)
Тема
Сообщение
Давайте кликнем по кнопке «Текст». Открывается окно, где мы можем указать атрибуты текстовому полю. Указываем и жмем "Вставить тег".

Тег в последствии будет преобразован в текстовое поле с html кодом:
Шорткоды можно удобно создавать через конструктор шорткодов.
Но конструктор не дает возможность изменить шорткод (там можно только создать шорткод). Изменить шорткод можно двумя способами:
С конструктором вы и сами разберетесь.
А тут мы разберем синтаксис шорткода.

Для примера рассмотрим тег текстового поля с дополнительными опциями:
Text(обязательный) Тип поля: text, select, password, number и т.д. (в данном случае поле текстовое). Определяет, в какой элемент формы будет преобразован наш тег, а значит какой вид данных он будет принимать. * Звёздочка делает поле обязательным для заполнения (форма не будет отправлена и отобразиться уведомление о том, что поле надо заполнить). client-name(обязательный) Имя поля, используется как атрибут name в input, а так же используется при формировании шаблона отправляемого письма. id:my-id Атрибут id в input со значением my-id. Используется для оформления. class:my-class Атрибут class в input со значением my-class. Используется для оформления. placeholder "Введите имя" Использовать текст "Введите имя" как placeholder.
Соблюдайте порядок атрибутов тега: сначала идёт тип поля, затем его имя и только потом дополнительные опции.
Типы полей- Текстовые поля: text , email , tel , url , textarea
- Числовые поля: number , range
- Поля с датой: date
- Чекбоксы, радио, списки: checkbox , radio , select
- Поле с загрузкой файла: file
- CAPTCHA: captchac и captchar
- Опросы: quiz
- Поле "Принять": acceptance
- Кнопка "Отправить": submit
- Произвольный тип поля

Во второй вкладе можно тонко настроить шаблон (вёрстку) и свойства отправляемого письма. В полях данной вкладки можно использовать специальные теги полей формы - это дает возможность передавать в письме указанные в форме данные.
Теги состоят из имен полей из шаблона формы. Например, мы создали текстовое поле с именем: . Теперь в шаблоне письма можно использовать тег . В письме вместо этого тега будет подставлено значение поля, введенное пользователем (ФИО).
Заголовки письма:- Дополнительные заголовки - По умолчанию тут прописано Reply-To: . Заголовок Reply-To говорит нам, что на этот электронный ящик можно ответить нажав кнопку "Ответить" в почтовой программе, а тег формы - это имя поля из шаблона. Указанный пользователем email будет вставлен вместо этого тега. Получится что-то типа Reply-To: [email protected] .
Кому - электронный ящик, куда будет отправлено письмо. Можно указать сколько угодно ящиков через запятую.
От кого - имя и электронный ящик, от кого пришло письмо. Обычно тут указывается почта сервера (например [email protected]).
Можно указать любую почту, но если домен почты будет отличаться от домена сайта - форма не пройдет проверку и будет «ругаться» на этот параметр, хотя письма всё равно будут отправляться.
Тема - Заголовок письма. По нему будет понятно с какой формы были отправлены данные. К примеру, тема письма "Ошибка на сайте", "Заказ обратного звонка" и так далее. Выбираете такой заголовок, чтобы проще было работать с полученными письмами.
Это следующая важная часть данной вкладки. Тут указывается сам текст письма. В тексте используем всё те же теги формы (имена полей из шаблона формы).
Разберем дефолтное письмо:
От: Тема: Сообщение: -- Отправлено с сайта Изучаем плагин Contact Form 7 (http://test-wp.ru)
У нас было 4 поля, которые заполнял пользователь. После отправки письма теги превратятся в значения и мы получим такое письмо:
От: Дмитрий Тема: Вопрос про Contact Form 7 Сообщение: Привет! У меня возник вопрос по плагину Contact Form 7. Как его настроить? -- Отправлено с сайта Изучаем плагин Contact Form 7 (http://test-wp.ru)
Не обязательные поля в теле письмаЕсли юзер не заполнит поле, а оно используется в теле письма, то тело письма будет неполным. К примеру в теле написано Человек с города , но юзер не заполнил поле , а значит в письме мы получим Человек с города... Такая строка в письме лишняя. Чтобы убрать эту строку из письма, поставьте галочку на пункте "Исключить вывод строк с пустыми тегами сообщения". Обратите внимание, что это сработает только тогда, когда текст и шоткод поля находятся в одной и той же строке.
Опция "Использовать HTML-формат письма". Позволяет использовать в теле письма HTML теги. При этом можно использовать ограниченный список HTML тегов, потому что не все почтовые клиенты или сервисы умеют правильно обрабатывать сложную HTML разметку. Можно использовать: таблицы, маркированные списки, жирность, абзацы и так далее. Подробнее ищите в сети.
Contact Form 7 позволяет отправлять письмо на два адреса, причем настройки для каждого письма разные. Это может пригодиться, когда надо отправить администратору сайта письмо с полной информацией и дубликат менеджеру, где содержится только данные о заказе.
Уведомления при отправке формы
В данной вкладке вы можете отредактировать сообщения, которые выводит форма в той или иной ситуации: при удачной или неудачной отправке письма, или при ошибках.
Теги шаблона письма не работают в этих полях.
Дополнительные настройки
Эта вкладка предназначена для продвинутых пользователей и даёт возможность с помощью JS кода расширять возможности формы. К примеру, вешать события для аналитики.
Об использовании данного функционала я расскажу в отдельной статье.
Форма обратной связи крайне полезна для вашего сайта – она позволяет держать ваш адрес электронной почты подальше от чужих глаз (уменьшая количество спама) и помогает пользователям легко связаться с вами напрямую через сайт.
Если вы создали страницу Свяжитесь с нами на сайте WordPress, то добавить форму обратной связи, настроить её и начать получать сообщения не составит особого труда.
Самым легким способом для создания формы обратной связи является использование – существует много различных плагинов, и вы можете выбрать любой. Однако в этом руководстве мы будем использовать Contact Form 7.
С более чем 3 миллионами установок, Contact Form 7 является самой широко используемой формой обратной связи для WordPress. Её интуитивно понятный интерфейс и быстрая установка помогут вам создать форму обратной связи в считанные минуты.
Перед тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к панели управления WordPress
После активации плагина в левом меню панели появится новый раздел Contact Form 7 .
Если вы не уверены какие из элементов формы вам нужны, то просто оставьте их как есть, вы сможете вернуться и отредактировать их позже.
В зависимости от выбранных элементов ваш код должен выглядеть примерно так:
Ваше имя (обязательно) Ваш e-mail (обязательно) Тема Сообщение
- Вы можете добавлять и удалять элементы в зависимости от ваших нужд. Для удобства используйте специальные инструменты над областью с самой формой.
- Значок * в коде означает, что данное поле обязательно для заполнения.
Когда посетитель отправит сообщение через форму обратной связи, то вы получите сообщение содержащее его имя, контактные данные и само его содержание.
Вы можете настроить это сообщение в разделе Письмо – некоторые из тегов, которые вы можете использовать в письме перечислены над самим письмом. Попробуйте изменить шаблон письма добавив в него некоторые теги – вы можете вернуться в любой момент и изменить его снова.
ВАЖНО! Убедитесь, что вы вписали правильный адрес электронной почты в поле Кому – это тот адрес, на который будут доставляться все сообщения.
Шаг 4 – Настройка уведомленийВо вкладке Уведомления вы можете настроить сообщения, которые увидит ваш посетитель при успешной отправке письма или какой-либо ошибке (некорректный адрес электронной почты или не заполнение одного из обязательных полей и т.д.).
Шаг 5 – Сохранение и публикация формыКогда вы закончите настройку, вы сможете сохранить изменения нажав на кнопку Сохранить
в верхней правой части панели.
После сохранения, вверху страницы появится шорткод. Он будет выделен синим цветом и должен выглядеть примерно так:
Очень важно проверить работу формы обратной связи и позаботиться о её корректном внешнем виде. Также убедитесь в стабильности доставки сообщений через форму.
Чтобы сделать это, просто посетите страницу вашего сайта с формой и отправьте сообщение с помощью неё – вы всегда можете вернуться обратно к редактору формы и сделать необходимые изменения.
ЗаключениеЭто руководство помогло вам узнать, как создать форму обратной связи с помощью плагина для WordPress – Contact Form 7. Теперь вы можете получать сообщения от своих пользователей напрямую через сайт.
Хотите узнать еще больше? Вы можете поэкспериментировать с тегами и шаблонами и изменить практически всё. Вы также можете попробовать настроить Flamingo – плагин для хранения сообщений, чтобы хранить все полученные сообщения в базе данных (это довольно полезно, если у вас есть проблемы с почтовым сервером).
В данной статье рассмотрим как сделать форму обратной связи на сайте при помощи плагина Fast Secure Contact Form. Защита от спама (!), легкие настройки, широкие возможности, красивая форма.
Fast Secure Contact Form - как сделать форму обратной связиФорма обратной связи обязательно должна быть на сайте. Ее можно установить на странице "Контакты", "Обо мне", "О нас", "Услуги". Поисковые системы приветствуют интерактив и повышают сайт в поисковой выдаче. Если вас не интересует и вы не планируете зарабатывать на своем сайте, все равно установите форму обратной связи. Со временем у вас обязательно появятся постоянные читатели и партнеры. Предоставьте им возможность связаться с вами.
В сравнении с другими плагинами Fast Secure Contact Form не использует JavaScript, что снижает использование ресурсов веб-сервера (даже меньше, чем простой плагин Contact Form), защищает от спама при помощи плагина Akismet, который установлен в базовой версии WordPress, а главное (для девочек) можно сделать красивые формы обратной связи без особых знаний.
Плагин Fast Secure Contact Form на английском языке. Здесь вы найдете частичный перевод по настройкам и установке формы (версия 4.0.32) на сайт WordPress (совместим с версией 4.1).
Удалите внешние ссылкиПосле установки и активации плагина, удалите ссылку на страницу автора плагина:
Плагины - Fast Secure Contact Form - Изменить - файл si-contact-form.php (в предыдущих версиях - si-contact-form-display.php)
Вот так выглядит форма с настройками по умолчанию. Уже неплохо. Но можно еще лучше. В следующих статьях: добавляем поля, настраиваем, украшаем.
В этой же вкладке можно изменить формат полей: дата, время, начало недели, типы и размер вложенных файлов и сохранить пустые строки в сообщении (текстовое поле).
Сохраните сделанные строки при помощи синей кнопочки Save Changes и перейдите к следующем настройкам .
Если у вас остались вопросы как сделать форму обратной связи Fast Secure Contact Form, задавайте вопросы в комментариях. Постараемся на них ответить.
Если форма расположена просто на странице, тогда там все понятно – там появляются сообщения об ошибках и сообщение после успешной отправки сообщения сразу под формой.
Рассмотрим, какие могут быть интересные варианты событий после отправки формы CF7 в pop-up окне, то есть во всплывающем окне. Как сделать такую форму, я описывал в статье Как сделать форму обратной связи во всплывающем окне для WordPress .
Код добавляем в блок Дополнительные настройки вашей формы.
Выводим алерт ‘Спасибо за Вашу заявку!’ – примитивно и некрасиво.
On_sent_ok: "alert("Спасибо за Вашу заявку!");"
Делаем редирект на страницу благодарности
On_sent_ok: "location="http://site.tu/thankyou/";"
Просто закрываем поп-ап – не самый лучший вариант, пользователь может не понять, все ли прошло успешно
On_sent_ok: $.fancybox.close();
Выводим поп-ап окно “Спасибо за заказ” после успешной отправки сообщенияВыводим поп-ап окно “Спасибо за заказ”, при этом само окно находится в блоке с id="popup_msg" , внешний вид и стили нужно будет оформлять под свой дизайн, чтобы все было красиво + сделать кнопку ‘Закрыть’ окно благодарности.
Этот код добавляем в блок Дополнительные настройки вашей формы CF7:
On_sent_ok: "$.fancybox ({ href: "#popup_msg" });"
Само окно имеет такой вид:
Спасибо! Закрыть окно
Этот код всплывающего окна можно разместить где угодно, хоть в футере, хоть под формой, основной плюс в том, что это окно могут вызывать любые другие формы и не нужно делать под каждую форму своё.
И для кнопки “Закрыть окно” добавляем такой код в файл скриптов:
$(".popup-close-btn").on("click", function() { $.fancybox.close(); });
Как сделать скачивание файла pdf после заполнения формы c помощью плагина Contact Form 7Открываем pdf сразу на этой же странице
On_sent_ok: "location = "http://site.ua/wp-content/uploads/2016/08/catalog.pdf";"
Открываем pdf на новой странице
On_sent_ok: "window.open("http://site.ua/wp-content/uploads/2016/08/catalog.pdf", "_blank");"
Метод, использующий on_sent_ok hook, больше не рекомендуется. Эта функция будет отменена к концу 2017 года.
Теперь для редиректа на другую страницу после успешной отправки формы нужно использовать событие wpcf7mailsent
document.addEventListener("wpcf7mailsent", function(event) { location = "http://example.com/"; }, false);
Например, такой вариант для открытия модального окна с id="sentMessage" :
Document.addEventListener("wpcf7mailsent", function(event) { $("#sentMessage").modal(); }, false);
Если у вас несколько форм, тогда для каждого ID формы можно создавать свои события:
Document.addEventListener("wpcf7mailsent", function(event) { var id = event.detail.contactFormId; if (id == 4 || id == 44 || id == 45) { $.magnificPopup.open({ items: { src: "#popup_msg" }, type: "inline" }, 0); } }, false);
id – это номер формы
$.magnificPopup.open – в данном примере используется Magnific Popup
У многих возникают сложности с данным моментом, поэтому решил его все же вынести в статью.
Данный скрипт выведет на экран окно id="popup_msg" после успешной отправки одной из форм (id == 17754 или id == 17758 или id == 17757):
Document.addEventListener("wpcf7mailsent", function(event) { var id = event.detail.contactFormId; if (id == 17754 || id == 17758 || id == 17757) { $.fancybox({href: "#popup_msg"}); } }, false);
Простой разбор кода
id == 17754 || id == 17758 || id == 17757 – окно будет показываться только для этих форм (или-или).
Окно с сообщением об успешной отправке (можно добавить его в код, или лучше в виджет футера например, если шаблон не хочется изменять, или еще 100 вариантов):
Спасибо! Наш менеджер свяжется с вами в ближайшее время. Закрыть окно
Если скрипт вы добавляете не в файл скриптов, а в футер или редактор js-кода, тогда оберните его в данный код:
JQuery(document).ready(function($) { // code ... });


