Эту статью стоит читать, если на следующие вопросы вы ответите “да”:
- У вас есть сайт на WordPress и Contact Form 7?
- Вы не хотите использовать капчу?
- Вас достал спам, идущий в ящик?
Сразу отвечу на вопрос. Этот способ не остановит весь спам, который идет в ящик, но серьезно снизит его количество.
Суть способа очень проста, и многие о нем знают. В коде формы размещается специальное скрытое поле, и если форму заполняет бот, то он вводит данные в скрытое поле, если форму заполняет человек, то он не видит скрытое поле и не заполняет его. Дальше мы делаем проверку на заполнение скрытого поля, и если оно заполнено, значит, форму заполнял бот. Все очень просто, но требует вмешательства программиста. WordPress и ContactForm позволяют сделать подобную проверку без программиста, достаточно знаний средней руки веб-мастера.
От слов к делу, начинаем практику
Прежде всего нам необходимо добавить скрытое поле ко всем наши формам, реализованным на Contact Form 7. Для этого выполняем следующий порядок действий:
- В левом меню щелкаем Contact Form 7 (Рисунок 1).
- Заходим поочередно в каждую форму, используемую у вас на сайте (Рисунок 1).

Рисунок 1.
- Добавляем код [hidden your-check-bot] к каждой форме (Рисунок 2). Теоретически не важно, куда вставлять этот код. Но я придерживаюсь мнения, что лучше его вставить до тега submit.

Рисунок 2. Добавляем скрытое поле.
Вот так за пару минут мы смогли справиться с задачей номер один: разместить в каждой форме на сайте скрытое поле. Теперь можно переходить ко второй задаче: проверке, заполнено ли оно при отправке сообщения.
Заполнено поле или нет, вот в чем вопрос
Сначала немного общей информации.
У WordPress в каждой теме есть некий файл functions.php, в который можно внести свой собственный PHP-код. Но если вы не хотите внедрять код своими руками в тему, вы можете использовать готовый плагин. Скачать этот плагин можно по ссылке тут.
А у Contact Form 7 есть ряд возможностей по работе с хуками, которые добавляют ей функциональности.
Поэтому мы сейчас внесем небольшой код в файл functions.php, который добавит необходимую нам функциональность.
1. Находим functions.php
а) Внести корректировки можно через админку сайта, если у вас настроены соответствующие разрешения на файлах, что само по себе не очень безопасно. Как найти файл через админку, смотрите на Рисунке 3.

b) Второй способ — использовать FTP. Для этого заходим в корневую директорию вашего сайта, далее папка wp-content, далее themes, далее папка с вашей темой для сайта, и в ней уже находим файл functions.php.
2. Осталось лишь прописать логику работы. Уважаемые читатели, автор — не программист, а честно нашел этот код где-то на просторах интернета, скорее всего, здесь (но это не точно), и слегка его отдредактировал. Если вы супер-пупер прогер, и этот код заставляет шевелиться ваши волосы не только на голове, то пишите мне в FB, мы поменяем код, ссылку на вас поставим здесь.
Итак, вы просто берете файл functions.php и после кода <? на следующей строчке вставляете код:
function wpds_validate_bot($result, $tags){
if (!empty($_POST['your-check-bot'])) {
return false;
}
return $result;
}
add_filter('wpcf7_validate', 'wpds_validate_bot', 10, 2);
Сохраняете файл. Наслаждаетесь отсутствием спама.

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