wpforms.ru wordpress WPForms.ru

Как удалить спам из форм WPForms с помощью кода и плагинов

Борьба со спамом — одна из самых актуальных задач для владельцев сайтов на WordPress, особенно если вы используете формы обратной связи через WPForms. В этой статье мы детально разберём, как эффективно удалять спам-ответы из WPForms, используя не только популярные плагины, но и кастомные решения на PHP. Рассмотрим проверенные методы, которые помогут сохранить базу данных чистой и уменьшить нагрузку на сайт.

Почему спам в WPForms — проблема и как его распознать

Спам-ответы в формах WPForms могут не только засорять базу данных, но и создавать ложное впечатление активности, мешать анализу пользовательских данных. Основные признаки спама — частые одинаковые сообщения, подозрительные ссылки, автоматические заполнения полей, нереалистичные email-адреса.

WPForms не имеет встроенного мощного антиспам-механизма, поэтому важно использовать дополнительные инструменты и кастомные фильтры.

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

Использование плагинов для борьбы со спамом в WPForms

Плагин WPForms Anti-Spam

Один из простых способов — установить официальный аддон WPForms Anti-Spam (доступен в премиум-версии). Он интегрируется с Google reCAPTCHA и Honeypot, автоматически блокируя большинство роботов.

Преимущества:

  • Простая настройка через интерфейс WPForms.
  • Автоматическая защита без дополнительного кода.
  • Поддержка Google reCAPTCHA v2 и v3.

Недостатки:

  • Платный аддон.
  • Не всегда ловит сложные спам-боты.

Плагин Antispam Bee

Antispam Bee — бесплатный плагин, который можно настроить для работы с WPForms, удаляя спам-ответы по определённым критериям.

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

Кастомные решения: фильтрация и удаление спама с помощью кода

Если вы хотите более тонко контролировать процесс и автоматизировать удаление спама, можно использовать кастомный код в functions.php вашей темы или в собственном плагине.

Рассмотрим пример функции, которая автоматически удаляет записи WPForms, содержащие определённые ключевые слова, типичные для спама.

function wpformsru_delete_spam_entries() {
    if ( ! class_exists('WPForms_Entry') ) {
        return;
    }
    $entries = WPForms_Entry::get_entries(
        array(
            'form_id' => 123, // замените на ID вашей формы
            'number' => 100,
            'field_filters' => array(),
        )
    );

    foreach ( $entries as $entry ) {
        $fields = $entry->fields;
        foreach ( $fields as $field ) {
            if ( isset($field['value']) ) {
                $text = strtolower($field['value']);
                $spam_keywords = array('viagra', 'free money', 'click here', 'cheap');
                foreach ( $spam_keywords as $keyword ) {
                    if ( strpos($text, $keyword) !== false ) {
                        WPForms_Entry::delete( $entry->entry_id );
                        break 2;
                    }
                }
            }
        }
    }
}
add_action('wpforms_process_complete', 'wpformsru_delete_spam_entries', 10, 4);

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

Также можно расширить этот код, добавив проверку email, IP, пользовательских меток.

Как добавить Honeypot и reCAPTCHA в WPForms вручную

Кроме плагинов, важно внедрить антиспам-механизмы в саму форму.

Honeypot

WPForms имеет встроенный Honeypot, его нужно просто активировать в настройках формы:

  • Откройте редактирование формы в WPForms.
  • Перейдите в Settings → General.
  • Включите опцию Enable anti-spam honeypot.

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

Google reCAPTCHA

Для добавления reCAPTCHA:

  • Зарегистрируйтесь на https://www.google.com/recaptcha/admin и получите ключи.
  • В WPForms перейдите в Settings → reCAPTCHA и вставьте ключи.
  • В настройках формы включите reCAPTCHA.

Это значительно повышает защиту от спама, особенно в сочетании с Honeypot и кастомными фильтрами.

Очистка базы данных от старого спама через WP-CLI и SQL

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

Использование WP-CLI

WPForms сохраняет записи в таблице wp_wpforms_entries. Для удаления спама по ключевым словам можно выполнить команду:

wp db query "DELETE FROM wp_wpforms_entries WHERE entry_data LIKE '%viagra%' OR entry_data LIKE '%free money%';"
<

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

Использование PHPMyAdmin или SQL-запроса

Аналогично можно выполнить запрос через интерфейс базы данных:

DELETE FROM wp_wpforms_entries WHERE entry_data LIKE '%click here%' OR entry_data LIKE '%cheap%';

Это поможет быстро очистить базу от нежелательных данных.

Заключение: комплексный подход к удалению спама в WPForms

Для эффективной борьбы со спамом в WPForms рекомендуется комбинировать:

  • Включение Honeypot и Google reCAPTCHA.
  • Использование специализированных плагинов, например, WPForms Anti-Spam или Antispam Bee.
  • Добавление кастомных фильтров и автоматического удаления спама через код.
  • Регулярная очистка базы данных с помощью WP-CLI или SQL.

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

×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙