Résoudre les problèmes
Erreur « An error occurred while sending the message » dans le formulaire de contact de PrestaShop
Le message An error occurred while sending the message, please try again. indique que le module contactform a rejeté l'envoi, mais n'en identifie pas à lui seul la cause. Dans les versions actuelles, il peut apparaître si le champ piège url contient des données, si le jeton manque, ne correspond pas à la session ou a expiré.
Ouvrez une nouvelle copie du formulaire et faites un seul test en examinant la requête dans l'onglet Réseau / Network des outils du navigateur. Vérifiez si url et token sont envoyés, et notez la version de PrestaShop, du module contactform et du thème. Certaines versions du module fixent une expiration de 600 secondes : un onglet resté ouvert plus longtemps peut donc aussi échouer.
Si la requête ne contient pas ces champs, comparez le modèle du module avec l'override actif du thème :
/themes/Nombre_Tema/modules/contactform/views/templates/widget/contactform.tpl
La solution à privilégier est de mettre à jour le thème ou de demander au développeur un override compatible avec la version installée de contactform. Seulement si vous avez confirmé que l'override est ancien et que les champs manquent, ajoutez le bloc équivalent à celui du modèle officiel avant le bouton d'envoi :
<style>
input[name=url] {
display: none !important;
}
</style>
<input type="text" name="url" value="" />
<input type="hidden" name="token" value="{$token|escape:'htmlall':'UTF-8'}" />
Videz le cache de PrestaShop et refaites l'envoi depuis une page fraîchement chargée. Si les champs étaient déjà présents, ne modifiez pas le modèle : examinez la réponse exacte, les cookies et les journaux de l'application avant d'attribuer l'échec au thème.
Consultez le modèle officiel du module contactform correspondant à la version installée.
Cache, session et distribution
Vérifiez qu'un cache de page ou un CDN ne réutilise pas le formulaire avec le jeton d'une autre session ou un jeton expiré. Testez depuis une page fraîchement chargée et conservez les cookies pendant l'envoi ; ne supprimez ni la validation du jeton ni le champ piège pour forcer l'acceptation.
Le bloc présenté ne fonctionne que si cette version du module fournit la variable token au modèle. Comparez avec l'étiquette de la version installée, pas seulement avec la branche dev du dépôt. Une fois le formulaire accepté, vérifiez aussi la destination du message : passer la validation ne garantit pas que le SMTP le distribue.
Cela peut aussi vous aider
- Erreur lors de l'installation de modules dans PrestaShop, The file is missing Diagnostiquez The file is missing à partir du code d'envoi de PHP et des journaux avant de modifier...
- Update Assistant affiche « Please fix the following error(s) » Repérez le prérequis ou le chemin non accessible en écriture qui bloque Update Assistant de PrestaSh...
- Activer temporairement le mode debug de PrestaShop Obtenez l'exception exacte en activant temporairement _PS_MODE_DEV_ depuis le back-office ou defines...
- Avertissement « Suppression d'activité en cours ! » dans Moodle Repérez la tâche ad hoc course_delete_modules qui maintient une suppression en attente et exécutez l...
Quelque chose cloche ou a changé ? Racontez-nous et nous le vérifions.