Formulaire de contact amélioré : installation et aide
Démarrage rapide
- Téléversez le ZIP du module dans "Modules > Module Manager" et ouvrez "Configure".
- Modifiez "Default Contact Form" dans Formulaire de contact > Formulaires, notamment Titre du formulaire et E-mail de l'administrateur.
- Vérifiez Envoyer un e-mail à l'admin, Envoyer une confirmation au client et Case à cocher RGPD sur le formulaire.
- Vérifiez les champs actifs dans Champs, en gardant un champ de type e-mail pour les confirmations.
- Configurez Informations entreprise, Adresse et horaires et Protection anti-spam.
- Activez Remplacer la page de contact native si vous souhaitez que l'URL de contact normale utilise ce formulaire.
- Effectuez un envoi de test après Temps d'envoi min. et vérifiez Soumissions ainsi que les deux destinations e-mail.
Nécessite PrestaShop 1.6.1 ou une version ultérieure et PHP 7.1 ou une version ultérieure.
Manuel de configuration
Installer et préparer votre premier formulaire
- Téléversez le ZIP de Better Contact Form dans "Modules > Module Manager" et ouvrez "Configure".
- Ouvrez Formulaire de contact > Formulaires et modifiez "Default Contact Form".
- Vérifiez Titre du formulaire, Description, E-mail de l'administrateur, Message de confirmation et Libellé RGPD dans chaque langue.
- Ouvrez Champs et vérifiez les champs installés : nom, e-mail, téléphone, sujet et message.
- Configurez la page de contact et les réglages e-mail décrits ci-dessous.
- Envoyez un message de test. Confirmez sa présence dans Soumissions et vérifiez les deux boîtes de notification.
Nécessite PrestaShop 1.6.1 ou une version ultérieure et PHP 7.1 ou une version ultérieure.
Le menu du module contient Tableau de bord, Formulaires, Champs, Soumissions et Paramètres. "Configure" ouvre l'écran de configuration sous Paramètres.
Configurer la page de contact
Paramètres généraux
| Paramètre | Valeur par défaut | Fonction |
|---|---|---|
| Remplacer la page de contact native | Non | Dirige l'URL de contact normale, y compris ses réécritures par langue, vers la page du module. Activez après avoir testé votre formulaire. |
| Activer le balisage Schema.org | Oui | Ajoute des données LocalBusiness sur la page de contact principale du module et des données FAQPage si du contenu FAQ existe. |
Sans remplacement, vous pouvez ouvrir le contrôleur frontal display du module via un lien de module généré par PrestaShop. Le traitement SEO propre au module considère les pages id_form spécifiques comme des variantes noindex, follow. Une autorité SEO centrale des pages peut contrôler les métadonnées finales.
Informations entreprise
| Paramètre | Valeur par défaut | Votre action |
|---|---|---|
| Afficher les cartes d'informations commerciales | Oui | Affiche les cartes d'adresse, téléphone et e-mail de la boutique depuis les paramètres PrestaShop. |
| Numéro WhatsApp | Vide | Saisissez un numéro international avec indicatif, par exemple +48511511286. Laissez vide pour l'omettre. |
| Afficher les liens sociaux | Oui | Affiche les liens de profils sociaux enregistrés. |
| Afficher la section FAQ | Oui | Affiche les questions et réponses enregistrées. |
"Social Links" et "FAQ Items" sont des valeurs JSON stockées, pas des champs modifiables dans le formulaire de configuration actuel. Les liens sociaux sont une liste vide par défaut. La FAQ contient par défaut trois questions génériques sur le délai de réponse, l'assistance téléphonique et les visites au bureau. Vérifiez ce contenu avant d'activer la section pour les clients. Il peut ne pas correspondre à votre activité.
Adresse et horaires
| Paramètre | Valeur par défaut | Votre action |
|---|---|---|
| Afficher la carte | Oui | Active le bloc carte. Les deux coordonnées doivent aussi être renseignées. |
| Latitude de la carte | Vide | Saisissez la latitude du repère. |
| Longitude de la carte | Vide | Saisissez la longitude du repère. |
| Niveau de zoom de la carte | 15 | Réglez le zoom OpenStreetMap. Le formulaire suggère de 1 à 18. |
| Afficher les horaires d'ouverture | Oui | Affiche le planning hebdomadaire enregistré et le calcul actuel ouvert/fermé. |
| Fuseau horaire | PrestaShop PS_TIMEZONE |
Saisissez un identifiant de fuseau horaire PHP valide si vos horaires utilisent un autre fuseau. Il n'est pas fixé à Europe/Warsaw. |
Le JSON stocké opening_hours définit par défaut du lundi au vendredi de 09:00 à 17:00, avec fermeture le samedi et le dimanche. Le formulaire actuel n'a pas d'éditeur de planning. Un développeur peut actualiser la structure stockée avec les clés mon, tue, wed, thu, fri, sat, sun ; chacune contient des chaînes open et close. Les valeurs vides signifient fermé. Vérifiez le planning affiché et le fuseau horaire avant publication.
Paramètres e-mail et anti-spam
| Paramètre | Valeur par défaut | Utilisation à l'exécution |
|---|---|---|
| Envoyer une notification à l'admin | Oui | Repli global lorsqu'un formulaire ne fournit pas son propre réglage. |
| Adresse e-mail admin | E-mail de la boutique | Destinataire de repli si E-mail de l'administrateur est vide sur le formulaire. Séparez plusieurs adresses par des virgules. |
| Envoyer une confirmation au client | Oui | Repli global lorsqu'un formulaire ne fournit pas son propre réglage. Nécessite un e-mail client soumis. |
Le formulaire installé possède ses propres réglages e-mail. Modifiez-les dans Formulaires pour arrêter les e-mails de ce formulaire. Le réglage global ne remplace pas comme commande générale les paramètres par formulaire déjà renseignés.
Protection anti-spam
| Paramètre | Valeur par défaut | Utilisation à l'exécution |
|---|---|---|
| Activer la protection Honeypot | Oui | Préférence globale enregistrée. Le réglage Activer le honeypot de chaque formulaire contrôle sa protection. |
| Activer la vérification basée sur le temps | Oui | Préférence globale enregistrée. Le réglage Activer la vérification du délai de soumission de chaque formulaire contrôle sa vérification du délai. |
| Temps d'envoi minimum (secondes) | 3 | Préférence globale enregistrée. Chaque formulaire utilise sa propre valeur Temps d’envoi min.. |
| Soumissions max. par IP/heure | 10 | Marque un nouveau message si cette IP a déjà atteint ce nombre d'envois dans la dernière heure. Définissez 0 pour désactiver. |
| Mots bloqués | Vide | Saisissez un fragment de texte insensible à la casse par ligne. Une correspondance dans les valeurs soumises marque le message comme spam. |
| Adresses IP bloquées | Vide | Saisissez une IP exacte par ligne. Les envois correspondants sont marqués comme spam. |
Le honeypot masqué est website_url_confirm. La vérification du délai utilise l'horodatage de rendu soumis et signale aussi les horodatages absents ou invalides. Ces contrôles n'affichent pas de CAPTCHA.
Les spams sont enregistrés avec un motif, mais sans notifications e-mail. Le visiteur reçoit le message de confirmation habituel. Il s'agit d'un signalement, pas d'une interdiction de visiter la boutique.
Créer et modifier des formulaires
Ouvrez Formulaires et ajoutez ou modifiez une ligne. Le formulaire installé porte le nom interne "Default Contact Form". Son Titre du formulaire anglais est "Contact us", et sa description est "Send us a message and we will get back to you as soon as possible." Les nouveaux champs de texte nécessitent votre propre contenu.
| Champ | Valeur du formulaire installé | Votre action |
|---|---|---|
| Nom interne | "Default Contact Form" | Définissez un libellé privé d'organisation. |
| Titre du formulaire | "Contact us" | Définissez le titre multilingue affiché en boutique. |
| Description | Description de contact installée | Définissez l'introduction multilingue. |
| Message de confirmation | Merci pour votre message ! Nous avons reçu votre demande et vous répondrons rapidement. | Définissez la confirmation multilingue affichée après enregistrement. |
| Envoyer un e-mail à l'admin | Oui | Activez les notifications pour ce formulaire. |
| E-mail de l'administrateur | Vide | Remplacez le destinataire global ou laissez vide pour le repli. Séparez les adresses par des virgules. |
| Objet de l'e-mail | Nouvel envoi du formulaire de contact | Définissez l'objet administrateur multilingue. L'expéditeur ajoute le nom de la boutique. |
| Envoyer une confirmation au client | Oui | Activez l'accusé de réception à l'adresse e-mail soumise. |
| Activer le honeypot | Oui | Vérifie le champ masqué anti-robot de ce formulaire. |
| Activer la vérification du délai de soumission | Oui | Vérifie le temps écoulé pour ce formulaire. |
| Temps d'envoi min. | 3 secondes | Modifiez le délai minimal du formulaire. |
| Case à cocher RGPD | Oui | Exige la case de consentement avant l'enregistrement. |
| Libellé RGPD | J'accepte le traitement de mes données personnelles conformément à la politique de confidentialité. | Définissez le texte de consentement multilingue. |
| Actif | Oui | Désactivez pour arrêter l'affichage et les envois du formulaire. |
Ajouter et ordonner les champs
Ouvrez Champs et sélectionnez le Formulaire souhaité. Les nouveaux champs sont de type Texte par défaut, facultatifs, actifs, avec Position 0 et des textes et valeurs de validation vides.
| Champ | Votre action |
|---|---|
| Formulaire | Affectez le champ à son formulaire. |
| Libellé | Définissez un libellé visible multilingue. |
| Nom du champ | Définissez une clé soumise telle que company_name, order_number, website ou vat_number. Le nom POST devient mpr_cf_FIELD_NAME. |
| Type de champ | Choisissez text, email, phone, textarea, select, checkbox, url, number ou file. |
| Texte indicatif | Définissez une indication de saisie multilingue. |
| Description | Définissez une aide multilingue sous le champ. |
| Obligatoire | Exige une valeur soumise. |
| Règle de validation | Indiquez éventuellement une méthode Validate existante de PrestaShop, telle que isName, isEmail, isPhoneNumber ou isMessage. |
| Options | Saisissez une valeur autorisée de Sélection / liste déroulante par ligne. |
| Position | Définissez l'ordre des champs. |
| Actif | Masquez ou affichez ce champ. |
Pour une liste de sujets, saisissez une ligne pour Question sur une commande, Demande de retour, Conseil produit, Compte professionnel et Autre. Les champs e-mail, téléphone, URL, nombre et liste déroulante reçoivent aussi des contrôles propres à leur type.
Gardez un champ de type e-mail pour les confirmations client. Utilisez name ou full_name comme clé du nom pour le copier dans la colonne de nom client de l'envoi.
Téléversement de fichier affiche un champ fichier, mais les fichiers téléversés ne sont pas enregistrés. Ne l’utilisez pas pour collecter des pièces jointes. Les champs fichier obligatoires peuvent être refusés comme vides.
Intégrer et styliser un formulaire
Utilisez un modèle Smarty de thème ou de module qui exécute les hooks. Coller du Smarty dans du HTML CMS ordinaire ne le fait pas exécuter par PrestaShop.
{hook h='displayMprContactForm'}
{hook h='displayMprContactForm' id_form=2}
Le premier appel utilise le formulaire actif par défaut. Le second sélectionne un formulaire par identifiant.
Dans Styles du thème, vérifiez la palette détectée, les textes, fonds, bordures, couleurs de succès/erreur, couleur de focus et rayons. Les paramètres privés comprennent "Form spacing" (20px), "Card shadow" (0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04)), "Raised card shadow" (0 4px 6px -1px rgba(0, 0, 0, 0.07), 0 2px 4px -2px rgba(0, 0, 0, 0.05)) et "WhatsApp color" (#25D366).
Pour modifier le balisage, surchargez ces modèles du module dans votre thème :
themes/your-theme/modules/mprcontactform/views/templates/front/contact_form.tpl
themes/your-theme/modules/mprcontactform/views/templates/front/contact_page.tpl
Utilisez .mpr-contactform .mpr-cf-title, .mpr-contactform .mpr-cf-btn et .mpr-contact-page .mpr-cp-card--whatsapp pour vos styles de thème personnalisés.
Un développeur actualisant les liens sociaux stockés peut utiliser un objet JSON dont les clés sont facebook, instagram, x, linkedin, youtube, tiktok, pinterest ou whatsapp, avec une URL de profil pour chaque valeur. Cela ne crée pas de champ supplémentaire dans le back-office.
Les modèles e-mail sous views/templates/mails/ reçoivent {form_title}, {customer_name}, {customer_email}, {field_data}, {submission_date}, {ip_address}, {shop_name} et {shop_url}.
Vérifier les envois et dépanner
Envoyez un message normal après avoir attendu plus longtemps que le délai minimal du formulaire. Vérifiez dans Soumissions le formulaire, nom, e-mail, IP, statut, indicateur spam, date et valeurs des champs. Consultez le détail de ligne pour lire les valeurs. Les actions groupées permettent de marquer les messages comme lus, comme spam ou de les supprimer.
Si un e-mail manque, vérifiez d'abord l'envoi enregistré : son motif de spam, puis les réglages e-mail par formulaire, les destinataires et la livraison des e-mails PrestaShop. Un envoi enregistré montre que le formulaire a fonctionné ; l'e-mail peut malgré tout ne pas arriver.
Si un formulaire manque, vérifiez son état Actif, ses champs actifs et l'identifiant de formulaire sélectionné. Si le routage de remplacement échoue, vérifiez Remplacer la page de contact native et la réécriture de l'URL de contact. Si la carte ou les liens sociaux sont absents, vérifiez leurs réglages et les coordonnées ou liens stockés.
Désinstaller
Sauvegardez les définitions des formulaires et les envois avant désinstallation. Celle-ci supprime le schéma du module, dont les formulaires, champs et envois, ainsi que sa configuration et ses entrées administratives. Elle supprime aussi son inscription à Theme Detector. Utilisez Actif par formulaire ou désactivez le module pour le suspendre en conservant les enregistrements.
Questions
Pas encore de questions sur ce module
Posez vos questions sur l'installation, la compatibilité ou la configuration. Les réponses apparaissent ici.
Problèmes connus
13
Renforcement de la sécurité
Deux formulaires sur la page de contact native
E-mails de notification non distribués
Les réponses aux confirmations n’arrivaient pas à la boutique
Libellés d’administration restés en anglais
Horaires par défaut dans le mauvais fuseau horaire
Échec des pages de contact avec une prise en charge différente du thème
Ressources du formulaire de contact manquantes
Le CSS regroupé perturbait les styles du formulaire de contact
Styles manquants pour le formulaire de contact natif
Styles manquants pour le formulaire autonome
Liens de langue incorrects sur la page de contact
Nom de la boutique absent du titre de la page de contact
Demandes de fonctionnalités
7
Implémenté
Formulaire de contact par défaut traduit
Formulaires de contact personnalisés
Protection antispam intégrée
Apparence des formulaires adaptée au thème
Mises à jour en un clic
Versions linguistiques de la page de contact
Cloudflare Turnstile
Journal des modifications
v1.4.82026-09-06
- FixedContact form stylesheet now loads on the native PrestaShop contact page (registered via actionFrontControllerSetMedia with a PS 1.6 link fallback)
Versions précédentes
v1.4.72026-08-10
- FixedFront-office form styling on the standalone contact page
v1.4.62026-05-27
- AddedLocalize default contact forms
- AddedUse shared theme style tokens
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedVendor prestashop compat as files
- FixedSuppress contact schema on noindex form variants
- FixedCapture contact user agent safely
- FixedUse local CSS path for CCC bundling compatibility
v1.4.62026-05-26
- Fixeddemo installation by refreshing shared package wiring and autoload registration.
- Addedlazy post-install integrity runner so first-visit install checks fire consistently.
- Cleaned the customer ZIP packaging for current shared admin, integrity, update, selector, and search assets.
v1.3.02026-04-20
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedautomatic theme detection for Classic and Hummingbird style compatibility
- Addedadmin menu management via MenuInstaller for streamlined module setup
- AddedLicense management tab with key management and renewal options
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedadmin list columns with visual badge indicators and multiselect filters
- Improvedsettings form organization with tabbed layout
- ImprovedSEO handling with proper canonical URLs and meta tags on all front pages
- FixedAdd canonical route name for getModuleLink resolution
- FixedAppend shop name to contact page meta title
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.2.02026-02-13
- AddedPrestaShop 9 and Hummingbird theme compatibility
- Addedfile attachment support with configurable allowed file types and maximum upload size
- Improvedform-specific recipient email and customer confirmation settings
- Fixedhoneypot field interfering with PS native form validation on older jQuery builds
- Addedminimum submit-time anti-bot checks as companion protection to honeypot fields
v1.0.02025-12-04
- Initialrelease of Better Contact Form
- InitialCustom field builder: add text, textarea and select fields via the back office interface
- InitialHoneypot anti-bot protection with no CAPTCHA friction for legitimate users
- InitialForm-specific recipient email address for admin notifications
- InitialInquiry log in back office with full submission history and CSV export
v1.1.02025-09-16
- Addedcustom field types: email, phone, URL, number, checkbox, file upload, textarea and select
- Addedconfigurable success messages and customer confirmation emails per form
- Improvedback office submission tracking and filtering
- Fixedsubmitted form data not saved to inquiry log when email delivery fails
Demo
Testez le module complet avant d'acheter
Achetez la licence plus tard et gardez vos réglages.
- Votre démo de 30 jours Testez-le sur votre propre boutique pendant 30 jours à partir de la première installation.
- Boutique de démo prête Découvrez une boutique de démo prête dans votre navigateur.
- Sans inscription Ni compte, ni e-mail, ni domaine de boutique requis.
En téléchargeant, vous acceptez les conditions de la démo et la politique de confidentialité.
En ouvrant cette démo, vous acceptez les conditions de la démo et la politique de confidentialité.