Formulaire de contact amélioré : installation et aide

Démarrage rapide

  1. Téléversez le ZIP du module dans "Modules > Module Manager" et ouvrez "Configure".
  2. Modifiez "Default Contact Form" dans Formulaire de contact > Formulaires, notamment Titre du formulaire et E-mail de l'administrateur.
  3. Vérifiez Envoyer un e-mail à l'admin, Envoyer une confirmation au client et Case à cocher RGPD sur le formulaire.
  4. Vérifiez les champs actifs dans Champs, en gardant un champ de type e-mail pour les confirmations.
  5. Configurez Informations entreprise, Adresse et horaires et Protection anti-spam.
  6. Activez Remplacer la page de contact native si vous souhaitez que l'URL de contact normale utilise ce formulaire.
  7. 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

  1. Téléversez le ZIP de Better Contact Form dans "Modules > Module Manager" et ouvrez "Configure".
  2. Ouvrez Formulaire de contact > Formulaires et modifiez "Default Contact Form".
  3. Vérifiez Titre du formulaire, Description, E-mail de l'administrateur, Message de confirmation et Libellé RGPD dans chaque langue.
  4. Ouvrez Champs et vérifiez les champs installés : nom, e-mail, téléphone, sujet et message.
  5. Configurez la page de contact et les réglages e-mail décrits ci-dessous.
  6. 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

E-mail

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é

RésoluMis à jour :
Corrigé dans : 1.7.5
Renforcement de la sécurité.

Deux formulaires sur la page de contact native

RésoluMis à jour :
Corrigé dans : 1.7.2
L’activation du remplacement de la page de contact pouvait laisser visibles à la fois le formulaire natif et son remplaçant.

E-mails de notification non distribués

RésoluMis à jour :
Corrigé dans : 1.7.2
Sous PrestaShop 1.7 à 9, les e-mails de notification de contact et de confirmation pouvaient ne pas être envoyés car leurs modèles étaient introuvables.

Les réponses aux confirmations n’arrivaient pas à la boutique

RésoluMis à jour :
Corrigé dans : 1.7.2
La réponse à un e-mail de confirmation client pouvait utiliser une adresse de réponse incorrecte.

Libellés d’administration restés en anglais

RésoluMis à jour :
Corrigé dans : 1.7.2
Certains paramètres et libellés courts de l’administration n’utilisaient pas leurs traductions disponibles.

Horaires par défaut dans le mauvais fuseau horaire

RésoluMis à jour :
Corrigé dans : 1.6.0
Les nouveaux formulaires de contact utilisaient un fuseau horaire fixe au lieu de celui de la boutique.

Échec des pages de contact avec une prise en charge différente du thème

RésoluMis à jour :
Corrigé dans : 1.6.0
Les pages de contact pouvaient échouer lorsqu’un autre module installé fournissait un ancien composant de prise en charge du thème.

Ressources du formulaire de contact manquantes

RésoluMis à jour :
Corrigé dans : 1.4.9
Des ressources manquantes de l’administration et de la boutique pouvaient perturber l’apparence ou les commandes du formulaire.

Le CSS regroupé perturbait les styles du formulaire de contact

RésoluMis à jour :
Corrigé dans : 1.4.9
L’activation du CSS regroupé pouvait empêcher le chargement correct des styles du formulaire de contact.

Styles manquants pour le formulaire de contact natif

RésoluMis à jour :
Corrigé dans : 1.4.8
Les formulaires affichés sur la page de contact native pouvaient apparaître sans les styles du module.

Styles manquants pour le formulaire autonome

RésoluMis à jour :
Corrigé dans : 1.4.7
Un formulaire affiché sur sa propre page pouvait apparaître sans la mise en page ni les styles prévus.

Liens de langue incorrects sur la page de contact

RésoluMis à jour :
Corrigé dans : 1.4.4
Changer de langue sur la page de contact pouvait mener à une adresse de contact incorrecte.

Nom de la boutique absent du titre de la page de contact

RésoluMis à jour :
Corrigé dans : 1.4.4
Le titre de la page de contact n’incluait pas le nom de la boutique.

Demandes de fonctionnalités

7

Implémenté

Formulaire de contact par défaut traduit

Implémenté
Crée un formulaire de contact par défaut lorsqu’aucun formulaire n’existe, avec des libellés, textes indicatifs, choix d’objet et texte de consentement au traitement des données traduits. Les langues non prises en charge utilisent les textes anglais.

Formulaires de contact personnalisés

Implémenté
Créez des formulaires avec des champs configurables, acheminez les notifications et conservez un historique des envois.

Protection antispam intégrée

Implémenté
Configurez la protection honeypot, les vérifications du délai d'envoi et les limites de fréquence pour les formulaires de contact.

Apparence des formulaires adaptée au thème

Implémenté
Ajustez l'apparence des formulaires avec les styles du thème de la boutique.

Mises à jour en un clic

Implémenté
Mettez le module à jour depuis sa page d'administration.

Versions linguistiques de la page de contact

Implémenté
Fournissez des adresses alternatives de la page de contact pour les langues actives de la boutique.

Cloudflare Turnstile

Implémenté
Protégez éventuellement les envois de formulaires de contact avec 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.
Lancer la boutique de démo

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é.

Chargement...
Retour en haut