Если вы используете WPForms для создания форм на своем сайте, рано или поздно столкнетесь с проблемой спам-отправок. Чтобы сохранить чистоту данных и не перегружать почту ненужными сообщениями, необходимо обеспечить надежную защиту форм от спам-ботов. В этой статье подробно рассмотрим, как интегрировать Google reCAPTCHA и классическую CAPTCHA в WPForms, а также приведем примеры кода для расширенной настройки.
Почему важна защита форм от спама в WordPress
Спам-боты автоматически заполняют и отправляют формы обратной связи, регистрации, комментариев и другие, что приводит к:
- засорению базы данных бесполезными записями;
- нагрузке на сервер и замедлению работы сайта;
- получению большого количества спам-сообщений на email;
- ухудшению пользовательского опыта.
WPForms предлагает несколько способов защиты, но наиболее эффективными являются Google reCAPTCHA и классическая CAPTCHA с вопросами и картинками.
Как добавить Google reCAPTCHA в формы WPForms
Google reCAPTCHA – это бесплатный сервис от Google, который помогает отличать людей от ботов. В WPForms реализована поддержка reCAPTCHA версий v2 Checkbox и invisible.
Шаг 1. Получение ключей reCAPTCHA
Перейдите на сайт Google reCAPTCHA, зарегистрируйте ваш домен и получите Site Key и Secret Key. Для WPForms рекомендуем использовать reCAPTCHA v2 (Checkbox), так как она проще для пользователей и надежна.
Шаг 2. Настройка WPForms
В админке WordPress перейдите в WPForms > Настройки > reCAPTCHA, вставьте ключи и выберите тип reCAPTCHA. Сохраните настройки.
Шаг 3. Включение reCAPTCHA в форму
Отредактируйте нужную форму в WPForms, перейдите в раздел Настройки > Защита от спама и включите reCAPTCHA. После сохранения на фронтенде в форме появится виджет reCAPTCHA.
Добавление собственной CAPTCHA с вопросом
Иногда стандартные reCAPTCHA неудобны или их отключают пользователи. В таких случаях можно добавить простую текстовую CAPTCHA с вопросом.
Пример реализации текстовой CAPTCHA для WPForms
Добавим в форму дополнительное поле типа «Текст» с вопросом и проверим ответ через хук wpforms_validate.
function wpform_ru_custom_captcha_validation($fields, $entry, $form_data) {
// ID поля с вопросом (замените на свой)
$captcha_field_id = 5;
$expected_answer = '7'; // например, вопрос: Сколько будет 3 + 4?
if ( isset($fields[$captcha_field_id]) ) {
$user_answer = trim($fields[$captcha_field_id]['value']);
if ($user_answer !== $expected_answer) {
wpforms()->process->errors[$form_data['id']][$captcha_field_id] = 'Ответ на вопрос указан неверно';
}
}
}
add_action('wpforms_process_validate', 'wpform_ru_custom_captcha_validation', 10, 3);
Этот код проверяет правильность ответа и выводит ошибку, если ответ неверен. Чтобы реализовать, нужно добавить в форму поле с вопросом, например, «Сколько будет 3 + 4?» и запомнить его ID.
Использование плагина WPForms Custom Captcha
Для более сложных CAPTCHA можно использовать сторонние расширения, например WPForms Custom Captcha от WPSHOP.RU. Он позволяет создавать собственные вопросы, использовать изображения и гибко настраивать защиту без сложного кода.
Советы по борьбе со спамом в WPForms
- Включайте honeypot – скрытое поле, которое заполняют только боты. В WPForms эта функция включена по умолчанию.
- Ограничьте количество отправок с одного IP с помощью плагинов безопасности.
- Используйте фильтры и черные списки слов в настройках WPForms.
- Обновляйте WPForms и плагины для защиты от уязвимостей.
Заключение
Защита форм WPForms от спама – важный этап в настройке сайта. Интеграция Google reCAPTCHA проста и эффективна, но при необходимости можно расширить функционал кастомными CAPTCHA на основе собственного кода или плагинов, таких как WPForms Custom Captcha. Правильная настройка защиты обеспечит чистоту данных и комфорт вашим пользователям.