Générer les clés de l’API reCAPTCHA
https://www.google.com/recaptcha/admin
Dans le fichier contact-form.tpl du répertoire du thème, ajouter le code suivant avant le bouton submit. En modifiant avec la clé générée
<script src='https://www.google.com/recaptcha/api.js'></script> <div class="g-recaptcha" data-sitekey="xxxxxxxxxxxxxxxxxxxxxxxx"></div>
Dans le dossier /override/controllers/front/ ajouter un fichier ContactController.php avec le contenu suivant en changeant
la clé privé :
<?php
class ContactController extends ContactControllerCore {
public function postProcess()
{
if (Tools::isSubmit('submitMessage')) {
// Ma clé privée
$secret = "xxxxxxxxxxxxxxxxxxxxxx";
// Paramètre renvoyé par le recaptcha
$response = $_POST['g-recaptcha-response'];
// On récupère l'IP de l'utilisateur
$remoteip = $_SERVER['REMOTE_ADDR'];
$api_url = "https://www.google.com/recaptcha/api/siteverify?secret="
. $secret
. "&response=" . $response
. "&remoteip=" . $remoteip ;
$decode = json_decode(file_get_contents($api_url), true);
if ($decode['success'] != true)
{
$this->errors[] = Tools::displayError('Erreur de captcha');
}
}
parent::postProcess();
$_POST['submitMessage'] = NULL ;
}
}
Supprimer le fichier class_index.php dans le dossier /cache/