Что умеет
Плагин встраивает в Contact Form 7 сервис Yandex SmartCaptcha. Он отсеивает автоматическую рассылку через ваши формы: подозрительные отправки блокируются, а обычные посетители проходят проверку либо одним кликом, либо вовсе незаметно, если включена невидимая капча.
Плагин обращается к сервису в трёх случаях: проверка ключа клиента, загрузка задания и проверка результата. Всё это происходит на серверах Яндекса.
Установка и настройка
Нужны установленные и активные Contact Form 7 и сам плагин. Получите ключи в консоли Yandex Cloud: подключите сервис SmartCaptcha и создайте ключ клиента и ключ сервера. Откройте страницу интеграций Contact Form 7, введите оба ключа. После этого в редакторе формы появится кнопка тега Yandex Captcha, нажмите её и добавьте тег в форму. Для невидимой капчи отметьте соответствующий вариант.
Если нужно запускать капчу с задержкой, вызовите пользовательское событие cfycInitEvent:
document.dispatchEvent(new CustomEvent('cfycInitEvent'));
Подводные камни
Если ключи неверные или не совпадает домен, форма не отправится: проверьте домены в настройках SmartCaptcha и убедитесь, что используется ключ сервера, а не клиента, в нужном поле.
Капча не должна стоять вместе с другой защитой от спама на той же форме, например, reCAPTCHA или Turnstile, иначе формы будут отклоняться без понятных причин. Оставьте один способ.
Кэширующие плагины и оптимизация JavaScript (отложенная загрузка, объединение) иногда ломают капчу. После включения протестируйте отправку формы с разных браузеров и телефона, а при необходимости исключите скрипт капчи из оптимизации.
Запросы к Яндексу — это обработка данных посетителей внешним сервисом. Упомяните это в политике конфиденциальности по 152-ФЗ. Сам SmartCaptcha платный по тарифам Yandex Cloud, поэтому уточните условия использования до запуска на сайте с большим трафиком.
Кому подойдёт
Российским сайтам на Contact Form 7, которым нужна защита от ботов без зависимости от зарубежных сервисов. Если вы работаете с другими сервисами Яндекса, посмотрите Яндекс Метрика и YaMaps.