reCAPTCHA v3
![reCAPTCHA v3](assets/uploads/img/reCAPTCHAv3.png)
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 указать ключи:
- секретный -
formit.recaptcha_private_key
- и публичный -
formit.recaptcha_public_key
Получить ключи можно на этой странице 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