Активирането на reCAPTCHA в PrestaShop (всички версии) може и е препоръчително да се извърши с подходящ модул за системата. Можете да потърсите такъв модул в официалната директория с модули, които се предлагат за версията на вашия PrestaShop магазин.
Регистрация в Google reCAPTCHA
За да можете да използвате reCAPTCHA, първо е необходимо да създадете акаунт на адрес:
https://www.google.com/recaptcha/admin
След като регистрирате вашия сайт в платформата, за него ще се генерират 2 ключа – Site key (Ключ за сайта) и Secret key (Таен ключ).
Ключът за сайта ще е необходим за активиране на reCAPTCHA в сайта.
Ръчно активиране на reCAPTCHA в PrestaShop 1.6
Активирането на reCAPTCHA в PrestaShop 1.6 е възможно и чрез ръчно редактиране на няколко системни файла. Активирането на reCAPTCHA по този начин не е препоръчително, тъй като не е препоръчителна промяна на системните файлове на PrestaShop.
След като разполагате с ключа за сайта, за да активирате reCAPTCHA на формата за контакт в сайта, може да направите редакция в два файла на системата.
Файл contact-form.tpl
Това е темплейтният файл, който се използва за формата за контакт.
За темата default-bootstrap този файл се намира в директория:
/themes/default-bootstrap/contact-form.tpl
Във файла contact-form.tpl, точно над реда, съдържащ кода <div class="submit">
, поставете кода:
<div>
<script src='https://www.google.com/recaptcha/api.js'></script>
<div class="g-recaptcha" data-sitekey="6LcPTG4UAAAAALdAKJmiy"></div>
</div>
6LcPTG4UAAAAALdAKJmiy – заменете с вашия ключ за сайта (Site key)
Файл ContactControler.php
Копирайте файла ContactControler.php, който се намира в директория:
/controllers/front/ContactController.php
и поставете копието в директория:
/override/controllers/front/ContactControler.php
След това във файла-копие (/override/controllers/front/ContactControler.php) поставете точно под реда $this->errors[] = Tools::displayError('Invalid email address.');
следния код:
} elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))) {
$this->errors[] = Tools::displayError('Captcha error');