Как включить reCAPTCHA на всех страницах OpenCart

Защита сайта от спама и ботов — важная задача для любого интернет-магазина. OpenCart предоставляет встроенную интеграцию с Google reCAPTCHA, которая помогает защитить формы на сайте. Однако, по умолчанию, reCAPTCHA доступна не на всех страницах. В этой статье рассмотрим, как включить reCAPTCHA на всех страницах OpenCart.

1. Создание учетной записи и ключей reCAPTCHA

Перед настройкой убедитесь, что у вас есть ключи Google reCAPTCHA:

  1. Перейдите на страницу Google reCAPTCHA и нажмите «Admin Console».
  2. Войдите в свой аккаунт Google и выберите опцию «+ Создать».
  3. Заполните форму:
  • Название: Укажите название сайта для удобного поиска.
  • Тип reCAPTCHA: Выберите v2 (для отображения окна проверки) или Invisible reCAPTCHA v3 (более скрытая версия).
  • Домен: Укажите домен сайта, на котором будет использоваться reCAPTCHA.
  1. Сохраните ключи: Site Key (Сайт-Ключ) и Secret Key (Секретный Ключ). Они понадобятся для интеграции в OpenCart.

2. Настройка reCAPTCHA в панели администрирования OpenCart

Теперь настроим reCAPTCHA в OpenCart:

  1. Войдите в административную панель OpenCart и перейдите в раздел Extensions > Extensions.
  2. В выпадающем меню выберите Anti-Fraud или Captcha (в зависимости от версии OpenCart).
  3. В списке расширений найдите Google reCAPTCHA и нажмите «Edit».
  4. Введите свои Site Key и Secret Key в соответствующие поля.
  5. Включите Google reCAPTCHA для выбранных страниц:
  • Если хотите включить его на страницах регистрации, обратной связи и логина, установите флажок для этих страниц.
  1. Нажмите Сохранить.

3. Добавление reCAPTCHA на дополнительные страницы

В стандартной установке OpenCart reCAPTCHA не отображается на всех страницах. Чтобы активировать её для других страниц, потребуется внести изменения в код:

Пример добавления reCAPTCHA в кастомную форму

  1. Перейдите в раздел настроек для страницы, на которую хотите добавить reCAPTCHA.
  2. Откройте файл шаблона для этой страницы, обычно расположенный в catalog/view/theme/ваша_тема/template/.
  3. Найдите файл, отвечающий за форму, на которую нужно добавить reCAPTCHA. Например, это может быть contact.twig для страницы контактов.
  4. Добавьте код reCAPTCHA прямо перед кнопкой отправки формы:
   <div class="g-recaptcha" data-sitekey="ВАШ_САЙТ_КЛЮЧ"></div>
  1. Подключите Google reCAPTCHA скрипт в этом файле, добавив в <head>:
   <script src="https://www.google.com/recaptcha/api.js" async defer></script>

Включение проверки на серверной стороне

После добавления reCAPTCHA в форму, вам нужно настроить серверную проверку. Для этого:

  1. Найдите контроллер формы, например, contact.php, расположенный в catalog/controller/information/contact.php.
  2. В функции отправки формы добавьте проверку reCAPTCHA:
   $recaptcha_response = $this->request->post['g-recaptcha-response'];
   $secret_key = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ';

   $url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . $secret_key . '&response=' . $recaptcha_response;
   $response = file_get_contents($url);
   $response_data = json_decode($response);

   if (!$response_data->success) {
       $json['error'] = 'Ошибка проверки reCAPTCHA. Попробуйте еще раз.';
   }
  1. Теперь при отправке формы будет выполнена проверка reCAPTCHA.

4. Тестирование работы reCAPTCHA на сайте

После внесения изменений протестируйте работу reCAPTCHA на всех страницах, где она была добавлена:

  1. Откройте форму, куда добавлена защита, и попробуйте отправить её как обычный пользователь.
  2. Проверьте, появляется ли окно проверки и правильно ли оно работает.
  3. В случае с reCAPTCHA v3 убедитесь, что показатель проверки возвращает «успешно» в ответах.

5. Распространенные ошибки и их устранение

Если reCAPTCHA не работает, обратите внимание на следующие моменты:

  • Проверьте правильность ключей. Если вы случайно перепутали сайт-ключ и секретный ключ, защита работать не будет.
  • Убедитесь, что скрипт подключен. Проверьте, что скрипт Google reCAPTCHA включен на всех страницах, где вы добавили reCAPTCHA.
  • Проверка версии reCAPTCHA. Убедитесь, что в настройках выбрана та же версия reCAPTCHA, что и на сайте (v2 или v3).
  • Отключите кэширование. Некоторые кэш-плагины могут мешать обновлению страниц, убедитесь, что кэш обновлен.

Заключение

Добавление reCAPTCHA на все страницы OpenCart улучшит защиту сайта и предотвратит спам-активность. Выполняя шаги из этого руководства, вы сможете настроить reCAPTCHA на любых формах сайта, защищая их от автоматических отправок и сохраняя ваш магазин в безопасности.

Комментариев: 0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *