Как установить плагин contact form 7. Все поля (теги) формы

Contact Form 7 может управлять многочисленными контактными формами, где вы можете гибко настраивать содержимое форм и почты с достаточно простой разметкой. Формы имеют встроенную поддержку Ajax отправки, CAPTCHA, спам фильтра Akismet и не только.

Документация и поддержка

Скриншоты

Установка

  1. Загрузите всю папку contact-form-7 в директорию /wp-content/plugins/ .
  2. Активируйте плагин на странице «Плагины» в панели управления WordPress.

В меню консоли WordPress вы найдёте вкладку ‘Обратная связь’.

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

Отзывы

I see a lot of people hating on this plugin because they"re using some unsupported version that is bundled in a theme, - all I can say from my own experience is that after using it for several years on many sites is a big thank you to the devs that keep it up to date and free for everyone. It"s extremely easy to set up and customize. Cheers!

Участники и разработчики

«Contact Form 7» - проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

Журнал изменений

Для получения дополнительной информации смотрите Релизы .

5.1.6

  • CSS: removes a style rule from the stylesheet that was unnecessary and conflicting with Twenty Twenty’s rules.
  • REST API: retrieves the contact form ID explicitly from the route parameters.

5.1.5

  • Config Validator: New test item for the unavailable_html_elements error.
  • Config Validator: New test item for the attachments_overweight error.

5.1.4

  • reCAPTCHA: Представляем константы WPCF7_RECAPTCHA_SITEKEY и WPCF7_RECAPTCHA_SECRET.
  • reCAPTCHA: Представляем перехватчики фильтра wpcf7_recaptcha_sitekey и wpcf7_recaptcha_secret.
  • Добавление параметра $status к фильтру wpcf7_form_response_output.
  • Создает случайный код, когда пользователь является зарегистрированным пользователем.
  • Представляем WPCF7_ContactForm::unit_tag(), публичный метод, возвращающий тэг юнита.
  • reCAPTCHA: выдаёт иное сообщение в спам-журнал в случаях, когда маркер ответа пуст.
  • Флажок согласия: поддержка опции label_first в согласительном тэге формы.

5.1.3

  • Исправлена ошибка, приводившая к невозможности отменить выбор параметра во вкладке Почта.

5.1.2

  • Постоянный контакт: Представлен селектор списка контактов.
  • Постоянный контакт: Представлена дополнительная настройка constant_contact.
  • reCAPTCHA: представлены перехватчики фильтров wpcf7_recaptcha_actions и wpcf7_recaptcha_threshold.

5.1.1

  • reCAPTCHA: Изменяет реакцию на пустые токены ответа.

5.1

  • Представлен модуль интеграции Постоянный контакт.
  • Обновлён модуль reCAPTCHA для поддержки reCAPTCHA v3.
  • Добавляет правила стиля Тёмного режима.

5.0.5

  • Исправлена проблема несоответствия между get_data_option() и get_default_option() в классе WPCF7_FormTag.
  • Глушит ошибки PHP, возникающие при вызовах unlink().
  • Представлена wpcf7_is_file_path_in_content_dir() для поддержки константы UPLOADS.

5.0.4

  • Явно устанавливает аргумент power_type в вызове register_post_type(), для исправления проблемы, связанной с несанкционированным повышением привилегий.
  • Вложение локального файла — запрещено указывать абсолютные пути к файлам, расположенным вне директории wp-content.
  • Валидатор конфигурации — добавляет тестовый элемент для обнаружения некорректных настроек файлов вложений.
  • Исправлена ошибка в функции обратной совместимости JavaScript для устаревших браузеров, которые не поддерживают атрибут-заполнитель HTML5.
  • Чекбокс согласия — отключает функцию do-not-store форм-тэга.

5.0.3

  • CSS: Применение стиля курсора «не разрешено» при наведение на кнопки отправки в неактивном состоянии.
  • Флажок согласия: ревизия пользовательского интерфейса генератора тегов, для поощрения использования лучших опций защиты личных данных.
  • Внедрение функции wpcf7_anonymize_ip_addr().
  • Представлена опция consent_for:storage для всех типов форм-тэгов.

5.0.2

  • Добавлен раздел «Уведомления о приватности» в файл readme.txt.
  • Обновлен контент в мета-блоке Информация.
  • Используйте get_user_locale() вместо get_locale(), где это более уместно.
  • Флажок согласия: Сброс статуса отключенных кнопок отправки после успешного применения.

5.0.1

  • Исправлено некорректное использование _n().
  • Проверка конфигурации: исправлено неверное количество предупреждений на вкладке «Дополнительные параметры».
  • Проверка конфигурации: исправлена неправильная обработка специального почтового тега [_site_admin_email] в поле заголовка «От».
  • Флажок Acceptance: указанные атрибуты class и id были применены к неправильному элементу HTML.
  • Проверка конфигурации: если для почтовых ящиков, таких как Cc или Reply-To, существует дополнительный почтовый заголовок, но возможное пустое значение, будет возвращена ошибка «Неверный синтаксис почтового ящика».
  • Явно укажите четвертый параметр add_action(), чтобы избежать передачи непреднамеренных значений параметров.
  • Проверьте, не является ли целевой каталог пустым, прежде чем удалять его.

5.0

  • Дополнительные настройки: on_sent_ok и on_submit были удалены.
  • Новая дополнительная настройка: skip_mail.
  • Фламинго: заголовок входящего канала изменяется вместе с изменением заголовка соответствующей контактной формы.
  • События DOM. Весь объект ответа API доступен через свойство event.detail.apiResponse.
  • Почта HTML: добавляет атрибуты, связанные с языком, в заголовок HTML.
  • Загрузка файла: Устанавливает атрибут принятия в поле загрузки.
  • Представлен новый класс WPCF7_MailTag.
  • Позволяет прервать попытку отправки почты, используя перехватчик действия wpcf7_before_send_mail. Кроме того, вы можете установить пользовательский статус и сообщение через перехватчик действия.
  • Флажок Acceptance: позволяет указывать условия в части содержимого тега формы.
  • Флажок Acceptance: Поддерживает параметр опциональности.
  • Новые специальные почтовые теги: [_site_title], [_site_description], [_site_url], [_site_admin_email], [_invalid_fields], [_user_login], [_user_email], [_user_url], [_user_first_name], [_user_last_name], [_user_nickname], and [_user_display_name].
  • Новые перехватчики фильтров: wpcf7_upload_file_name, wpcf7_autop_or_not, wpcf7_posted_data_{$type}, and wpcf7_mail_tag_replaced_{$type}
  • Новые функции form-tag: zero-controls-container и not-for-mail

Добрый день дорогие читатели блога. Продолжаем тему форм обратной связи на WordPress. И раз реч зашла о них, предлагаю сегодня поговорить о плагине WP Contact Form 7. Далее я раскажу вам пошаговую настройку плагина, а также вкратце опишу дополнения для этого плагина.

Навигация по странице:

Описание WordPress Contact Form 7

2) Активировать плагин Contact Form 7 в админке WordPress.

3) Перейти на новую созданную вкладку, как показано на рисунке:

4) Нажать вкладку "Добавить новую" и указать язык формы по умолчанию, или выбрать нужный

5) Указываем имя контактной формы и нажимаем сохранить.

6) Теперь у нас появился шорткод, который уже можно скопировать и вставить в пост или сайдбар для того, чтобы вывести форму - contact-form-7 id="1252" title="Форма номер 1" (надо взять в квадратные скобки как на рисунке).

7) Вот как то так выглядит наша форма:

Конечно не очень красиво, но никто не мешает создать свои стили или сделать свою форму и туда вносить вставки.

Как вывести Contact Form 7 в произвольное место шаблона

В п.6 пошаговой настройки я показывал вам, как можно взять шорткод кода CF7 и далее описал что этот код можно выводить в виджет или в пост, страницу. В дополнение, хочу сказать, что вы можете вывести Contact form 7 в любое произвольное место шаблона. Для этого следует вставить вот такой несложный код:

Вот и все, если вы все сделали правильно, то получите вывод Contact Form 7 в произвольное место шаблона WordPress.

Настройка полей ввода Contact Form 7

Благодаря ему, у вас дополнительно появятся такие боксы как:

Настройка ответа reply-to для contact form 7

В новой версии плагина CF7 4.4 и выше, разработчик рекомендует вводить в поле from (вот оно на скине ниже)

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

Как сделать ответ пользователю с почтовика?

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

Решение этой проблемы есть и как всегда простое. Вам нужно в поле Additional Headers добавить код:

Reply-To:

Разумеется your-email-sh нужно заменить на свой шорткод почты. Смотрите скин ниже:


Теперь, когда вам придет письмо с обратной связи вордпресс, вы сможете нажать в почтовике ответить и ваш ответ будет отправлен на правильный e-mail.

Если после этий действий вы столкнулись с проблемой - стоить прочесть пост перейдя по ссылке. Там описанные основные проблемы и причины траблов в плагине Contact Form 7.

На этом все. Надеюсь вам стало понятно как делается настройка плагина и его макетов.

Contact Form 7
  • Все поля (теги) формы
  • Как сделать обязательным одно из полей: почта или телефон
  • 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

Поле предназначено для ввода email.

Поддерживаются атрибуты:

  • class
  • minlength и maxlength
  • size
  • placeholder
  • akismet:author_email
  • default:user_email или default:любая@почта.ру

url

Поле для ввода интернет адреса (URL).

Поддерживаются атрибуты:

  • class
  • minlength и maxlength
  • size
  • placeholder
  • akismet:author_url
  • default:user_url или default:значение

tel

Поле для ввода номера телефона.

Поддерживаются атрибуты:

  • class
  • minlength и maxlength
  • size
  • placeholder

textarea

Поле для ввода многострочного текста.

Поддерживаются атрибуты:

  • class
  • minlength и maxlength
  • placeholder
  • (cols)x(rows) - где cols - ширина поля в символах, а rows - высота поля в строках текста. Имеет 3 формата: (cols)x(rows) , (cols)x и x(rows) .

Для textarea значение поля можно указать двумя способами:

  1. Текст по умолчанию...

Если в textarea будут html теги, то после отправки формы вы, возможно, получите 500 ошибку сервера!

count (счётчик символов)

Тег count позволяет установить счетчик, когда нужно показать пользователю, сколько введено символов или сколько символов осталось до максимального значения (если параметр maxlength).

Чтобы активировать счётчик, нужно вставить в шаблон формы тег счётчика с указанием имени текстового поля, для которого он будет считать символы.

Тег счётчика можно использовать в любом месте шаблона формы.

Например, у нас есть текстовое поле для сообщения:

Тогда делаем так:

Поле ограничено - минимум 10 и максимум 140 символами. В данном случае счётчик будет показывать сколько всего введено символов.

Иногда удобнее показать сколько символов осталось ввести, ведь пользователь не знает об ограничении по максимуму. Для этого в теге нужно указать опцию down - .

number

Поле для ввода числа. При фокусе в поле значения можно изменять вращением колесика мыши.

Поддерживает атрибуты:

  • class
  • placeholder
  • min
  • max

range

Ползунок для выбора чисел в указанном диапазоне.

Поддерживает атрибуты:

  • class
  • placeholder - отображаются только в браузерах, не поддерживающих данный тип поля и отображающих взамен текстовое поле.
  • min - Устанавливает нижнее значение для ввода числа: min:20
  • max - Устанавливает верхнее значение для ввода числа: min:100
  • step - Устанавливает шаг изменения числа для ползунков и полей ввода чисел: min:5

checkbox и radio

  • Радиокнопки - это переключатели, позволяющие выбрать только один вариант из нескольких.
  • Чекбоксы - это флажки, позволяющие выбрать сразу несколько вариантов.

Поддерживаемые атрибуты:

  • 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 - варианты ответов

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 сервиса.

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

  1. Зайти в админку reCAPTCHA .
  2. Зарегистрировать сайт.
  3. Получить ключ сайта и секретный ключ (это два разных ключа: ключ сайта может быть один, а секретных ключей много).

Атрибуты:

  • class
  • theme - Цветовая схема виджета. Может быть dark или light (по умолчанию).
  • size - Размер виджета. Может быть compact (компактный) или normal (по умолчанию).

Теперь в шаблоне формы используйте тег .

Quiz (вопрос-ответ)

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

Атрибуты:

  • class
  • size - Размер поля и его длина. Одно из значений может быть опущено.

Из примера видно, что вопрос и ответ разделяется знаком | . Вопрос и ответ можно писать абсолютно любой, например математический:

Можно указать несколько пар вопрос-ответ, вопрос будет выбран случайно каждый раз при показе формы:

Для этого поля можно указать параметры minlength и maxlength:

При создание тега quiz с несколькими вопросами при помощи генератора пишите каждую пару вопрос-ответ с новой строки.

hidden

Скрытое поле - не видно пользователю. Может хранить в себе ценную информацию. Информация может быть добавлена с помощью Javascript или создана с помощью опции default .

Атрибуты:

  • class
  • default - Сюда можно передать параметр, который будет преобразован по определенному правилу. Подробнее читайте в описании атрибута (опции в начале статьи).

submit

Кнопка отправки данных формы (сабмита). При нажатии на эту кнопку происходит отправка всех данных формы на сервер.

Атрибуты:

  • class

Можно указать текст кнопки:

Пример использования всех поддерживаемых параметров:

ajax-loader

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

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