Le WordPress d'aujourd'hui, décodé pour les développeurs

Elementor

Un devis BTP chiffré en direct dans un formulaire Elementor Pro

Calculer une surface et un prix indicatif directement dans un formulaire Elementor Pro, sans base de données externe, pour un artisan du bâtiment.

Par WordPress Développement • 18 février 2021 • 4 min de lecture • Aucun commentaire
Un devis BTP chiffré en direct dans un formulaire Elementor Pro

« Combien coûterait approximativement la réfection de ma terrasse ? » Une question que reçoit régulièrement, par téléphone, un artisan spécialisé en revêtements extérieurs, avant même le premier rendez-vous sur place. Plutôt que de répondre au cas par cas, il souhaitait qu’un premier chiffrage indicatif apparaisse directement sur son site, à partir de quelques informations simples saisies par le visiteur.

Le widget Formulaire d’Elementor Pro permet ce calcul en direct grâce à un peu de JavaScript personnalisé, sans dépendre d’une base de données externe ni d’un service de devis en ligne payant : tout se joue dans le navigateur, avant même l’envoi du formulaire par e-mail.

Structurer les champs du formulaire

Le formulaire comprend trois champs numériques visibles : la longueur en mètres, la largeur en mètres, et un champ de sélection pour le type de revêtement souhaité (dalle béton, bois composite, pierre naturelle), chacun associé dans le code à un tarif au mètre carré différent. Un quatrième champ, de type texte caché, reçoit le résultat du calcul juste avant l’envoi, pour que ce montant indicatif apparaisse dans l’e-mail de notification reçu par l’artisan.

Il est essentiel de préciser clairement, dans un texte au-dessus du formulaire, que ce montant reste une estimation grossière avant visite technique, pour éviter tout malentendu avec un client qui prendrait ce chiffre pour un devis ferme et définitif.

Le calcul côté navigateur

L'essentiel à retenir : Le calcul se fait entièrement côté navigateur avant l'envoi du formulaire ; Un champ caché stocke le résultat pour l'inclure dans l'e-mail final ; Aucune base de données ni service tiers n'est nécessaire pour ce calcul

Le calcul repose sur un petit script JavaScript ajouté via l’action personnalisée du widget Formulaire, déclenché à chaque changement de valeur dans les champs concernés. La surface se calcule en multipliant longueur par largeur, puis ce résultat est multiplié par le tarif correspondant au revêtement choisi, avant d’être affiché à l’écran et copié dans le champ caché.

document.addEventListener('input', function (e) {
  if (!e.target.closest('.elementor-form')) return;
  const longueur = parseFloat(document.querySelector('[name="form_fields[longueur]"]').value) || 0;
  const largeur  = parseFloat(document.querySelector('[name="form_fields[largeur]"]').value) || 0;
  const tarifs   = { beton: 45, composite: 68, pierre: 92 };
  const type     = document.querySelector('[name="form_fields[revetement]"]').value;
  const total    = longueur * largeur * (tarifs[type] || 0);
  document.querySelector('#estimation-visible').textContent = total.toFixed(0) + ' euros environ';
  document.querySelector('[name="form_fields[estimation]"]').value = total.toFixed(0);
});

Envoyer le résultat par e-mail à l’artisan

Le champ caché contenant l’estimation s’ajoute simplement aux autres champs dans le modèle d’e-mail configuré au niveau de l’action « Envoi d’e-mail » du formulaire, avec sa propre balise de fusion. L’artisan reçoit ainsi directement dans sa boîte de réception le montant calculé, en plus des coordonnées du demandeur, sans avoir à ressaisir quoi que ce soit avant de rappeler le client.

  • Trois champs numériques et un menu déroulant, rien de plus côté saisie.
  • Un script déclenché à chaque saisie, sans bouton de calcul séparé à cliquer.
  • Un champ caché qui transporte le résultat jusqu’à l’e-mail final.

Fiabiliser le calcul face aux erreurs de saisie

Il faut prévoir le cas d’une saisie vide ou d’un texte non numérique dans les champs de dimensions, pour éviter qu’un résultat erroné du type « NaN » ne s’affiche à l’écran ou ne parte dans l’e-mail final. La fonction parseFloat associée à une valeur de repli à zéro, comme dans l’exemple ci-dessus, couvre déjà l’essentiel de ces cas limites courants.

Ce que ce dispositif ne couvre pas

La signature électronique du devis final, une fois le rendez-vous effectué et le chiffrage définitif établi, sort totalement du cadre de ce formulaire indicatif : elle relève d’un outil de signature dédié, distinct de ce premier contact chiffré en ligne. Ce formulaire ne remplace jamais la visite technique, il la précède simplement en filtrant les demandes clairement hors budget.

Toujours arrondir le résultat affiché à la dizaine d’euros la plus proche plutôt que d’afficher un chiffre à la décimale près : un montant trop précis donne l’illusion trompeuse d’un devis ferme, ce qui est exactement l’inverse de l’effet recherché ici.

En résumé

Un calcul simple en JavaScript, un champ caché et une action d’envoi d’e-mail bien configurée suffisent à donner à un visiteur un premier ordre de grandeur avant même le premier contact téléphonique. Pas besoin de base de données externe ni de service de devis en ligne payant pour ce niveau de précision, largement suffisant en amont d’une visite technique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi