Отправить заявку на SEO-продвижение сайта от Ant-Team.ru

Заказать

Защита формы обратной связи от спама на WordPress и ContactForm

Эту статью стоит читать, если на следующие вопросы вы ответите “да”:

  • У вас есть сайт на WordPress и Contact Form 7?
  • Вы не хотите использовать капчу?
  • Вас достал спам, идущий в ящик?

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

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

Защита формы от спама: начинаем практику

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

  1. В левом меню щелкаем Contact Form 7 (Рисунок 1).
  2. Заходим поочередно в каждую форму, используемую у вас на сайте (Рисунок 1).

Рисунок 1. Заходим в каждую форму.

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

Рисунок 2. Добавляем скрытое поле.

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

Заполнено ли скрытое поле в форме обратной связи

Сначала немного общей информации.

У WordPress в каждой теме есть некий файл functions.php, в который можно внести свой собственный PHP-код.

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

Поэтому мы сейчас внесем небольшой код в файл functions.php, который добавит необходимую нам функциональность.

1. Находим functions.php

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

Рисунок 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);

Сохраняете файл. Наслаждаетесь отсутствием спама.

 Послесловие

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

Если вы хотите получать уведомления о наших новых статьях максимально оперативно, то подписывайтесь на наш канал в телеграм. Мы публикуем только полезный контент по SEO, например, статьи про показатели E-A-T, оценку качества контента или SEO-эксперимент о том, зачем нужен H1 и сколько их может быть на странице.