WP Manifestindependent plugin directory
manifest / forms / darktech-yandex-smartcaptcha

DarkTech Yandex SmartCaptcha

Плагин для WordPress — добавляет шорткод и серверную валидацию Yandex SmartCaptcha для форм Elementor Pro и Contact Form 7

★ 6stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/darktechcode/darktech-yandex-smartcaptcha/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

DarkTech Yandex SmartCaptcha для WordPress

Плагин добавляет Yandex SmartCaptcha в WordPress и умеет работать с:

  • стандартными формами WordPress: вход, регистрация, восстановление пароля, комментарии
  • Elementor через шорткод
  • Contact Form 7 через собственный form-tag

Что умеет плагин

  • рендерит виджет Yandex SmartCaptcha на фронтенде
  • выполняет серверную проверку токена через Yandex API
  • поддерживает стандартные формы входа, регистрации, восстановления пароля и комментариев WordPress
  • позволяет включать капчу отдельно для регистрации, восстановления пароля, входа и комментариев
  • поддерживает динамические формы Elementor
  • поддерживает Contact Form 7
  • пишет логи в wp-content/debug.log при включённом debug-режиме
  • позволяет менять имя скрытого поля для шорткода
  • автоматически подставляет язык виджета на основе locale WordPress
  • сохраняет ранее сохранённые настройки через fallback на прежний option key

Установка

  1. Скачайте плагин.
  2. Загрузите папку darktech-yandex-smartcaptcha в /wp-content/plugins/.
  3. Активируйте плагин в WordPress.
  4. Перейдите в Настройки > Yandex SmartCaptcha.
  5. Сохраните Client key и Server key.
  6. Отметьте формы WordPress, где нужна капча.

Настройка ключей

  1. Откройте Yandex Cloud Console.
  2. Создайте или выберите SmartCaptcha-виджет.
  3. Скопируйте Client key и Server key.
  4. Вставьте их в настройки плагина.

Использование в Elementor

  1. Откройте форму в Elementor.
  2. Добавьте в форму html поле.
  3. Вставьте в него шорткод:
[darktech-captcha]

Шорткод выведет контейнер SmartCaptcha и скрытое поле, которое плагин использует для серверной проверки. Имя скрытого поля для этой интеграции задаётся в настройке Shortcode token field name.

Использование в Contact Form 7

Добавьте в шаблон формы такой form-tag:

[darktech_captcha*]

Пример полной формы:

[text* your-name placeholder "Ваше имя"]
[email* your-email placeholder "Email"]
[textarea your-message placeholder "Сообщение"]
[darktech_captcha*]
[submit "Отправить"]

Если имя поля не указано явно, используется имя по умолчанию darktech-captcha.

Использование в стандартных формах WordPress

На странице настроек отметьте нужные пункты в блоке Где использовать капчу:

  • регистрация пользователей
  • восстановление пароля
  • вход в админку
  • добавление комментариев, включая комментарии без авторизации

Плагин сам выводит виджет в выбранных стандартных формах и проверяет токен до выполнения действия.

Отладка

Чтобы включить логирование, добавьте в wp-config.php:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

После этого включите Debug logging в настройках плагина.

Структура

  • darktech-yandex-captcha.php — bootstrap плагина, загрузка классов и запуск DarkTech_YSC_Plugin
  • includes/class-darktech-ysc-plugin.php — композиция зависимостей и регистрация WordPress hooks
  • includes/class-darktech-ysc-plugin-config.php — общие константы: shortcode, option key, endpoint, script handles, defaults
  • includes/class-darktech-ysc-options-repository.php — чтение настроек плагина и fallback на legacy option key
  • includes/class-darktech-ysc-options-sanitizer.php — санитизация значений настроек перед сохранением
  • includes/class-darktech-ysc-token-field-name-sanitizer.php — нормализация имени скрытого поля токена
  • includes/class-darktech-ysc-settings-page.php — вывод страницы настроек в Настройки > Yandex SmartCaptcha
  • includes/class-darktech-ysc-settings-registrar.php — регистрация settings section и settings fields
  • includes/class-darktech-ysc-assets.php — регистрация и подключение Yandex API script и ysc-frontend.js
  • includes/class-darktech-ysc-widget-renderer.php — HTML-разметка SmartCaptcha для shortcode, стандартных форм WordPress и Contact Form 7
  • includes/class-darktech-ysc-shortcode-handler.php — регистрация shortcode [darktech-captcha]
  • includes/class-darktech-ysc-elementor-integration.php — валидация токена в отправках Elementor Pro Forms
  • includes/class-darktech-ysc-cf7-integration.php — регистрация form-tag'ов Contact Form 7 и серверная валидация
  • includes/class-darktech-ysc-wordpress-core-integration.php — вывод и проверка капчи в стандартных формах WordPress
  • includes/class-darktech-ysc-token-validator.php — запрос к Yandex SmartCaptcha Validate API и разбор ответа
  • includes/class-darktech-ysc-request-data.php — безопасное чтение $_POST, $_REQUEST и IP-адреса
  • includes/class-darktech-ysc-logger.php — логирование в debug.log, если включены debug-настройки
  • ysc-frontend.js — рендер виджета, синхронизация токена, повторная инициализация для динамического DOM, Elementor и CF7

Совместимость

  • WordPress 6.2+
  • PHP 7.4+
  • Elementor Pro
  • Contact Form 7

Changelog

1.2.0

  • добавлена капча для регистрации пользователей
  • добавлена капча для восстановления пароля
  • добавлена капча для входа в админку
  • добавлена капча для комментариев, включая отправку без авторизации
  • добавлены настройки выбора форм WordPress, где используется капча

1.1.3

  • удалена поддержка устаревшего shortcode-алиаса
  • удалены устаревшие form-tag алиасы Contact Form 7

1.1.2

  • отложен рендер SmartCaptcha внутри скрытых Elementor popup
  • добавлена переинициализация и сброс виджета на события открытия/закрытия popup

1.1.1

  • исправлена регистрация validation hook для Elementor Pro Forms
  • фронтенд-скрипты подключаются предсказуемо при наличии Client key
  • улучшено восстановление виджета после динамического рендера Elementor и сброса одноразового токена

1.1.0

  • плагин переработан под общий сценарий, а не только под Elementor
  • обновлены адреса Yandex SmartCaptcha API и скрипта виджета
  • добавлена поддержка Contact Form 7 через form-tag [darktech_captcha*]
  • улучшена инициализация виджета для динамических форм
  • убран небезопасный принудительный form.submit() из JavaScript
  • README приведён в соответствие с реальной функциональностью

1.0.0

  • первый релиз

Лицензия

GPL-2.0-or-later