Ладно, я понял что описать лучше сразу все, заодно и себе на проект поставлю:
1. Идем на сайт гугла -
регистрируем новую рекапчу2 и получаем ключи.
2.
Подключаем JS в head.tpl используемого шаблона
у меня стоит шаблон трансформер вот путь до этого файла - ваш_сайт/themes/transformer/templates/_partials (у вас путь может быть другим, в зависимости от шаблона)
- в head.tpl нужно добавить строку:
HTML:
<script src='https://www.google.com/recaptcha/api.js'></script>
Можно в любое место, но лучше в самый конец перед закрывающим тегом.
3.
Выводим капчу в форме обратной связи
В файле contactform.tpl путь: ваш_сайт/themes/transformer/modules/contactform/views/templates/widget (у вас путь может быть другим, в зависимости от шаблона)
Вставляем
HTML:
<div class="text-right g-recaptcha" data-sitekey="ваш Ключ с сайта капчи (который слева)"></div>
я добавил перед закрывающим тегом </section>
4.
Добавляем обработку капчи в ContactController.php
Добавляем в файле ContactController.php путь ваш_сайт/controllers/front
Код:
parent::initContent();
$this->setTemplate('contact');
function SiteVerify($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$curlData = curl_exec($curl);
curl_close($curl);
return $curlData;
}
$recaptcha = Tools::getValue('g-recaptcha-response');
if(!empty($recaptcha)){
$google_url="https://www.google.com/recaptcha/api/siteverify";
$secret='Ваш Секретный ключ с сайта капчи (который справа)';
$ip=$_SERVER['REMOTE_ADDR'];
$url=$google_url."?secret=".$secret."&response=".$recaptcha."&remoteip=".$ip;
$res=SiteVerify($url);
$res= json_decode($res, true);
if(!$res['success']){
exit();
}
}
else{
$this->errors[] = Tools::displayError('Отметьте галочкой, что Вы не робот, пожалуйста');
}
вставляем сразу после $this->setTemplate('contact');
Это строка 41
Профит! Идем на сайт, переходим на страницу с контактной формой и проверяем работу:
Видим что капча висит, кстати забыл сказать что вывести ее лучше где то рядом с кнопкой и потом поправить стилями для красоты
Проверяем форму на отправку без галочки капчи:
Ну и проверяем с галочкой