WordPress — самая популярная CMS в России: более 40% сайтов работают на ней. Подключить капчу к формам Contact Form 7, WPForms или WooCommerce можно за 5 минут — без программиста и без плагинов с ежемесячной подпиской. Пошаговая инструкция по интеграции слайдер-капчи СВАЙПЕР (verifsite.ru) на WordPress.

Что понадобится

  • Сайт на WordPress 5.0+ с доступом к админке.
  • Права на редактирование темы или установку плагинов.
  • Email для регистрации в СВАЙПЕР — site-key придёт сразу.
  • 5–10 минут времени.

Шаг 1. Получите site-key в личном кабинете

  1. Перейдите на verifsite.ru/cabinet/register.
  2. Введите email и подтвердите регистрацию.
  3. В кабинете нажмите «Добавить сайт», укажите домен (например, example.ru).
  4. Скопируйте site-key и site-secret — secret понадобится для серверной проверки.

Бесплатный тариф — 5 000 проверок в месяц, карта не нужна. Платные планы — на странице тарифов.

Шаг 2. Добавьте виджет на сайт

Есть три способа. Выберите удобный.

Способ A: через footer.php (рекомендуется)

Самый надёжный метод — скрипт загружается на всех страницах, капча работает везде, где вы её вызовете.

  1. В админке WordPress: Внешний вид → Редактор тем → footer.php (или «Редактор файлов темы»).
  2. Найдите закрывающий тег </body>.
  3. Вставьте перед ним код виджета:

Код для footer.php:

<script
  src="https://verifsite.ru/widget.js"
  data-site-key="ВАШ_SITE_KEY"
  data-api="https://verifsite.ru"
  data-lang="ru"
  data-mode="hard"
  defer
></script>

Замените ВАШ_SITE_KEY на ключ из кабинета. Сохраните файл.

Важно: при обновлении темы footer.php может перезаписаться. Используйте дочернюю тему (child theme) или способ B/C ниже.

Способ B: плагин «Insert Headers and Footers»

  1. Установите плагин WPCode (ранее Insert Headers and Footers) из каталога WordPress.
  2. Перейдите в Code Snippets → Header & Footer.
  3. В поле «Footer» вставьте тот же скрипт widget.js.
  4. Сохраните. Скрипт переживёт обновление темы.

Способ C: functions.php дочерней темы

Добавьте в functions.php дочерней темы:

add_action('wp_footer', function() {
  ?>
  <script
    src="https://verifsite.ru/widget.js"
    data-site-key="ВАШ_SITE_KEY"
    data-api="https://verifsite.ru"
    data-lang="ru"
    data-mode="hard"
    defer
  ></script>
  <?php
});

Шаг 3. Защитите формы

Виджет загружен — теперь нужно показать капчу перед отправкой формы и проверить токен на сервере.

Contact Form 7

  1. Установите плагин-обёртку или добавьте хук в functions.php.
  2. Перед кнопкой «Отправить» капча появится автоматически, если виджет в режиме hard.
  3. Добавьте серверную проверку через хук wpcf7_before_send_mail:

add_action('wpcf7_before_send_mail', function($contact_form) {
  $submission = WPCF7_Submission::get_instance();
  if (!$submission) return;
  $data = $submission->get_posted_data();
  $token = $data['swyper-token'] ?? '';
  if (!swyper_verify_token($token)) {
    $submission->set_status('validation_failed');
    $submission->set_response('Пройдите проверку капчи.');
  }
});

Функция swyper_verify_token() — REST-запрос к https://verifsite.ru/api/v1/introspect с site-secret. Полный пример — в документации API.

WPForms

  1. В настройках формы включите «Spam Protection» → Custom CAPTCHA.
  2. Или добавьте HTML-блок с контейнером для капчи и обработайте событие slider-captcha:passed.
  3. Серверная проверка — через хук wpforms_process_before.

WooCommerce (оформление заказа)

  1. Добавьте капчу на страницу checkout через хук woocommerce_review_order_before_submit.
  2. Проверяйте токен в woocommerce_checkout_process — без этого боты обойдут фронтенд.

Шаг 4. Серверная верификация (обязательно)

Капча на фронтенде без серверной проверки бесполезна — бот отправит форму напрямую, минуя JavaScript. Добавьте в functions.php:

function swyper_verify_token($token) {
  if (empty($token)) return false;
  $response = wp_remote_post('https://verifsite.ru/api/v1/introspect', [
    'headers' => [
      'Content-Type' => 'application/json',
      'X-Site-Secret' => 'ВАШ_SITE_SECRET'
    ],
    'body' => json_encode([
      'siteKey' => 'ВАШ_SITE_KEY',
      'token' => $token
    ])
  ]);
  if (is_wp_error($response)) return false;
  $body = json_decode(wp_remote_retrieve_body($response), true);
  return !empty($body['valid']);
}

Никогда не публикуйте site-secret в JavaScript или в публичных репозиториях.

Шаг 5. Проверьте работу

  1. Откройте страницу с формой в режиме инкогнито.
  2. Убедитесь, что слайдер-капча отображается перед кнопкой отправки.
  3. Пройдите капчу и отправьте тестовую заявку.
  4. Попробуйте отправить форму без прохождения капчи (через curl) — сервер должен отклонить.
  5. Проверьте на мобильном — жест свайпа должен работать плавно.

Таблица: способы интеграции WordPress

Способ Сложность Переживает обновление темы Рекомендация
footer.php родительской темы Низкая Нет Только для теста
footer.php дочерней темы Низкая Да Хороший вариант
WPCode / Insert Headers Низкая Да Лучший для новичков
functions.php + wp_footer Средняя Да (child theme) Для разработчиков
Кастомный плагин Высокая Да Для агентств / хостингов

Частые проблемы и решения

Проблема Решение
Капча не появляется Проверьте site-key, убедитесь что скрипт в footer, нет конфликта с другой капчей
Форма отправляется без капчи Добавьте серверную проверку — фронтенд alone недостаточен
Конфликт с reCAPTCHA Удалите старый скрипт Google и ключи из настроек плагинов
Кэширование (WP Rocket, LiteSpeed) Исключите страницы с формами из кэша или используйте AJAX-отправку
Скрипт пропал после обновления темы Переходите на child theme или WPCode

Чеклист готовности

  • ☐ Site-key и site-secret получены в кабинете
  • ☐ widget.js добавлен в footer (child theme или WPCode)
  • ☐ Старая reCAPTCHA удалена
  • ☐ Серверная верификация через introspect API настроена
  • ☐ Тест на десктопе и мобильном пройден
  • ☐ Попытка обхода через curl отклоняется

Для хостинг-провайдеров и агентств

Если вы подключаете капчу клиентам массово, посмотрите программу для хостингов — white label, пакетные тарифы, API для автоматизации. Сравнение с reCAPTCHA и GeeTest — на странице сравнения. Другие CMS и фреймворки — в разделе интеграций. Готовый сниппет для вставки в тему можно скопировать в кабинете сразу после создания сайта.

Безопасность и производительность

Виджет СВАЙПЕР загружается асинхронно (defer) и не блокирует отрисовку страницы — важно для Core Web Vitals и SEO. Скрипт весит меньше типичного reCAPTCHA SDK с зависимостями от Google. Храните site-secret только в wp-config.php или переменных окружения, если используете Docker или managed-хостинг — так secret не попадёт в бэкапы темы. Для multisite-инсталляций один site-key на сеть или отдельный ключ на каждый домен — настройка в личном кабинете за минуту. После запуска добавьте цель в Яндекс.Метрике на событие slider-captcha:passed, чтобы отслеживать долю успешных прохождений в воронке заявок.

Вывод

Интеграция СВАЙПЕР с WordPress — одна строка скрипта в footer и функция серверной проверки в functions.php. Без ежемесячных плагинов, без привязки к Google Cloud, с оплатой в рублях при росте трафика. Начните с бесплатного тарифа, защитите одну форму, измерьте результат — полная настройка укладывается в 5–10 минут.