Используется для работы Yandex SmartCaptcha. Принимает в себя два параметра:
form
- DOMElement
формы.sendHandler
- Callback, который будет вызван после проверки токена
на стороне сервераНужно вызывать для каждой формы на сайте, которая использует Яндекс
SmartCaptcha. В переданном form
функция при вызове сама создает
<input type="hidden" name="captcha-widget-id" value="<ID_ВИДЖЕТА_КАПЧИ>">
Этот скрытый инпут нужен для идентификации того, на каком контейнере
вызывать метод window.smartcaptcha.execute(<ID_ВИДЖЕТА_КАПЧИ>)
mediamint_yandexCaptchaWrapper.js
указать свои параметры:
<КЛЮЧ_КЛИЕНТА>
в функции initYandexCaptcha()
<ПУТЬ_К_ВАЛИДАТОРУ_КЛЮЧА_СЕРВЕРА>
в функции
validateYandexCaptchaToken()
// Yandex Captcha $asset->addJs(“https://smartcaptcha.yandexcloud.net/captcha.js?render=onload&onload=initYandexCaptcha”);
$asset->addJs(SITE_TEMPLATE_PATH.”/mediamint_yandexCaptchaWrapper.js”);
* HTML
```html
<head>
...
<script src="https://smartcaptcha.yandexcloud.net/captcha.js?render=onload&onload=initYandexCaptcha" defer></script>
<script src="<path_to_folder>/mediamint_yandexCaptchaWrapper.js"></script>
</head>
4. В JavaScript файле страницы
```javascript
// Отправка формы через fetch и сохранение данных
async function sendForm(form) {
// ...
}
document.addEventListener("DOMContentLoaded", () => {
// получение DOMElement формы с id=callback-form
// Пример - <form action="" method="POST" id="callback-form">
const formElement = document.getElementById("callback-form");
// Вызываем функцию-обёртку
sendFormWrapper(form, sendForm);
})