Как установить recapcha v3 на 1C-Битрикс?

В общем задался задачей самостоятельно подключить к форме обратной связи капчу. И не простую "я не робот", а версии #3.

Нашел руководство: https://fstrange.ru/coder/php/bitrix-recaptcha-v3.html
И начал по нему выполнять задачу.

Первое что сделал - нашел файл шаблона, который выводит мою форму:
/local/templates/site_name/components/bitrix/form.result.new/.default/template.php

В него добавил скрытое поле:
<input type="hidden" name="recaptcha_response" id="recaptchaResponse">


Далее в папке /local/templates/site_name/components/bitrix/form.result.new/.default/ создал файл component_epilog.php и наполнил его этим кодом:

<?php
  $APPLICATION->AddHeadScript("/www.google.com/recaptcha/api.js?render=6Ld4DtEUAAAAAGWUfXOC07l8ca0NKwkeYaEbYciS");
  $APPLICATION->AddHeadScript("
  <script>
  var onloadCallbackRecap = function() {
  grecaptcha.ready(function () {
  grecaptcha.execute('6Ld4DtEUAAAAAGWUfXOC07l8ca0NKwkeYaEbYciS', { action: 'contact_callback' }).then(function (token) {
  var recaptchaResponse = document.getElementById('recaptchaResponse');
  recaptchaResponse.value = token;
  });
  });
  };
  </script>
  ");
?>


Где - 6Ld4DtEUAAAAAGWUfXOC07l8ca0NKwkeYaEbYciS ключ сайт.

Если я правильно понимаю в коде сайта должен появится код скрипта что я вставил выше. Но его нет. Кеш чистил. Что я сделал не так на этом этапе?
  • Вопрос задан
  • 2054 просмотра
Решения вопроса 1
pro6ka
@pro6ka
web developer
$APPLICATION->AddHeadScript("
  <script>
  var onloadCallbackRecap
// ..e

Замените AddHeadScript на AddHeadString. А вообще, что вам мешает использовать script.js компонента, он для этого и предназначен. Результат будет тот же, а работать в разы удобнее. Или просто в теге script напишите.
И описанные вами методы давно depricated, вместо них есть Bitrix\Main\Page\Asset
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы