WordPress — самая популярная CMS в России: более 40% сайтов работают на ней. Подключить капчу к формам Contact Form 7, WPForms или WooCommerce можно за 5 минут — без программиста и без плагинов с ежемесячной подпиской. Пошаговая инструкция по интеграции слайдер-капчи СВАЙПЕР (verifsite.ru) на WordPress.
Что понадобится
- Сайт на WordPress 5.0+ с доступом к админке.
- Права на редактирование темы или установку плагинов.
- Email для регистрации в СВАЙПЕР — site-key придёт сразу.
- 5–10 минут времени.
Шаг 1. Получите site-key в личном кабинете
- Перейдите на verifsite.ru/cabinet/register.
- Введите email и подтвердите регистрацию.
- В кабинете нажмите «Добавить сайт», укажите домен (например,
example.ru). - Скопируйте site-key и site-secret — secret понадобится для серверной проверки.
Бесплатный тариф — 5 000 проверок в месяц, карта не нужна. Платные планы — на странице тарифов.
Шаг 2. Добавьте виджет на сайт
Есть три способа. Выберите удобный.
Способ A: через footer.php (рекомендуется)
Самый надёжный метод — скрипт загружается на всех страницах, капча работает везде, где вы её вызовете.
- В админке WordPress: Внешний вид → Редактор тем → footer.php (или «Редактор файлов темы»).
- Найдите закрывающий тег
</body>. - Вставьте перед ним код виджета:
Код для 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»
- Установите плагин WPCode (ранее Insert Headers and Footers) из каталога WordPress.
- Перейдите в Code Snippets → Header & Footer.
- В поле «Footer» вставьте тот же скрипт widget.js.
- Сохраните. Скрипт переживёт обновление темы.
Способ 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
- Установите плагин-обёртку или добавьте хук в functions.php.
- Перед кнопкой «Отправить» капча появится автоматически, если виджет в режиме
hard. - Добавьте серверную проверку через хук
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
- В настройках формы включите «Spam Protection» → Custom CAPTCHA.
- Или добавьте HTML-блок с контейнером для капчи и обработайте событие
slider-captcha:passed. - Серверная проверка — через хук
wpforms_process_before.
WooCommerce (оформление заказа)
- Добавьте капчу на страницу checkout через хук
woocommerce_review_order_before_submit. - Проверяйте токен в
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. Проверьте работу
- Откройте страницу с формой в режиме инкогнито.
- Убедитесь, что слайдер-капча отображается перед кнопкой отправки.
- Пройдите капчу и отправьте тестовую заявку.
- Попробуйте отправить форму без прохождения капчи (через curl) — сервер должен отклонить.
- Проверьте на мобильном — жест свайпа должен работать плавно.
Таблица: способы интеграции 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 минут.