Добавление reCAPTCHA на Prestashop 1.6
Как обезопасить свой сайт на Prestashop от спама.
Для начала заходим на сайт Google reCaptcha.
Нажимаем кнопку Get reCAPTCHA
Регистрируем сайт и получаем ключ
Ключ получили, теперь осталось интегрировать в формы на сайте.
Интегрируем каптчу в форму обратной связи.
Открываем файл в папке themes/ваш-шаблон/contact-form.tpl
В самом верху файла вставляем код. (не забываем вставить Ваш ключ в этот script).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <script> (function($) { $(document).ready(function() { $('#submitMessage').attr('disabled', 'disabled'); }); })(jQuery); var verifyCallback = function(response) { //alert(response); $('#submitMessage').removeAttr('disabled'); }; var onloadCallback = function() { grecaptcha.render('captcha', { 'sitekey' : 'ВАШ-КЛЮЧ', 'callback' : verifyCallback, 'theme' : 'light' }); }; </script> |
Теперь опускаемся ниже к строке
1 | <div class="submit"> |
и сверху ставим заглушку для captcha
1 2 3 | <div id="captcha"></div> <div class="submit"> |
также можно сразу выставить кнопке которая отправляем запрос статус Disabled
1 | <button type="submit" name="submitMessage" id="submitMessage" class="button btn btn-default button-medium" disabled="disabled"> |
И в самом низу вставляем
1 | <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> |
Все форма работает!
По такому же методу можно сделать каптчу и на других страницах сайта.
Интегрируем каптчу в форму регистрации пользователей.
Открываем файл themes/ваш-шаблон/authentication.tpl
вверху вставляем скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <script> (function($) { $(document).ready(function() { $('#SubmitCreate').attr('disabled', 'disabled'); }); })(jQuery); var verifyCallback = function(response) { $('#SubmitCreate').removeAttr('disabled'); }; var onloadCallback = function() { grecaptcha.render('captcha', { 'sitekey' : 'ВАШ-КЛЮЧ', 'callback' : verifyCallback, 'theme' : 'light' }); }; </script> |
далее находим форму которая регистрирует пользователей и вставляем заглушку для вывода каптчи и делаем кнопку не активной
1 2 3 4 | <div id="captcha"></div> <div class="submit"> {if isset($back)}<input type="hidden" class="hidden" name="back" value="{$back|escape:'html':'UTF-8'}" />{/if} <button class="btn btn-default button button-medium exclusive" type="submit" id="SubmitCreate" disabled="disabled" name="SubmitCreate"> |
Не забываем вставить script в самый низ сайта.
1 | <script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> |
Готово!
Спасибо, работает отлично. Наконец-то избавился от спама в пользователях и на почте. Еще и нагрузка на сервер снизилась.
а в 1.7 будет работать на shop.usd.ooo ?
скорей всего да