reCAPTCHA v3

reCAPTCHA v3

modstore.pro: https://modstore.pro/packages/utilities/recaptchav3

Github: https://github.com/ig0r74/reCaptchaV3

Google reCAPTCHA v3 для FormIt и AjaxForm

Нужно добавить хук rcv3 в hooks вызова FormIt / AjaxForm (самым первым) и сниппет rcv3_html в форму (внутри тэга form):

[[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]]

Данный сниппет добавляет в форму input и регистрирует js-скрипты.

В системных настройках Formit указать ключи:

Получить ключи можно на этой странице https://www.google.com/recaptcha/admin.

Пример вызова:


{'!AjaxForm' | snippet : [
    'snippet' => 'FormIt',
    'form' => 'tpl.AjaxForm.example',
    'emailTpl' => 'contactEmailTpl',
    'hooks' => 'rcv3,email',
    'emailFrom' => $_modx->config.emailsender,
    'emailFromName' => $_modx->config.site_name,
    'emailSubject' => 'Сообщение с сайта ' ~ $_modx->config.site_name,
    'emailTo' => $_modx->config.emailsender,
    'validate' => 'name:required,clientemail:email:required',
    'validationErrorMessage' => 'В форме содержатся ошибки!',
    'successMessage' => 'Сообщение успешно отправлено',
    'rcv3Action' => 'contactform',
]}

Параметр rcv3Action предназначен для изменения идентификатора action. Подробнее в документации: https://developers.google.com/recaptcha/docs/v3#actions

Результат работы:

Форма 1:

Форма 2: