Простейшая блокировка спама в Contact Form 7 (WordPress)

Вообще проблема со спамом в Contact Form решается установкой Aksimet или reCAPTCHA, но если по каким-то причинам вы этими плагинами воспользоваться не можете, то самый простой способ — добавить элементы проверки на саму форму.
Глубоко лезть в код не придётся, достаточно будет отредактировать тэги внутри плагина.

Заходим в консоль WordPress, нажимаем на элемент управления «Contact Form 7» (слева), получаем список используемых форм. По клику на названии формы, она откроется на редактирование. Нам нужна вкладка «Шаблон формы», которая откроется первой по умолчанию. Суть задачи состоит в том, чтобы добавить новый чекбокс с надписью «я робот», с отметкой которого сообщение не отправится (как оказалось после нескольких экспериментов, спам-боты прекрасно обходят чекбокс «я не робот» без капчи). Полностью конечно это от спама не избавит, но существенно снизит его количество.
Ставим курсор в то место, где вам нужно расположить чекбокс (обычно это перед кнопкой отправки формы) и жмём на панели инструментов кнопку «принятие». (Почитать документацию про неё можно здесь.)
В открывшемся окне, вам будет достаточно заполнить поле «Условие», оно отвечает за текст, который будет стоять перед чекбоксом. Это как раз будет та самая фраза «Я робот». Затем отмечаем чекбокс «Сделать эту работу обратно пропорциональной» — это инвертирует его действие (т.е. сообщение не отправится, пока чекбокс отмечен). После нажатия на кнопку «Вставить тэг», код формы примет вид вроде:

[...]

[acceptance acceptance-640 default:on invert] Я робот [/acceptance]
[submit "Отправить"]

Сохраняем, смотрим на результат. Теперь отправка не сработает, пока пользователь не снимет отметку «Я робот». Пример работы можно посмотреть на странице контактов данного сайта.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре × 2 =