# Simulateur de devis de déménagement sous Elementor, sans plugin externe

> developer.wordpress.org rappelle que les hooks de formulaire Elementor Pro s'exécutent côté serveur avant l'envoi. La recette pour estimer un devis de déménagement directement dans la page, sans plugin de calcul externe.

- Auteur : WordPress Développement
- Publié le : 2024-04-20
- Mis à jour le : 2024-04-20
- Catégorie : Elementor
- URL : https://www.wpmoderne.fr/elementor/simulateur-devis-demenagement-sous-elementor-plugin-externe/

## L’essentiel

- Un formulaire à champs multiples avec logique conditionnelle native
- Un calcul de devis exécuté côté serveur avant confirmation
- Aucune réservation de créneau intégrée à cette recette

developer.wordpress.org rappelle, dans la documentation des hooks d'Elementor Pro Forms, que l'action `elementor_pro/forms/process` s'exécute côté serveur avant l'envoi des notifications, ce qui en fait le point d'ancrage idéal pour un calcul métier sensible comme l'estimation d'un devis de déménagement. Une entreprise de déménagement qui souhaite proposer une simulation directement sur son site n'a pas nécessairement besoin d'un plugin de calcul externe facturé à l'utilisation : la logique conditionnelle native du formulaire, combinée à un peu de PHP, couvre déjà une bonne partie du besoin.

Cette recette ne traite pas de la réservation d'un créneau de déménagement, qui suit un parcours de planification distinct avec sa propre disponibilité d'équipes : elle se limite à la logique de champs conditionnels permettant d'estimer un devis indicatif, affiché directement dans la page après soumission du formulaire.

## Le problème posé

Une estimation de devis de déménagement dépend de plusieurs variables : la surface du logement à déménager, la distance entre les deux adresses, la présence ou non d'un ascenseur, et parfois des options comme le démontage de meubles. L'enjeu est d'organiser un formulaire qui n'affiche que les champs pertinents selon les réponses précédentes, sans surcharger le visiteur avec un formulaire figé de quinze champs affichés d'emblée.

## Structurer les champs avec logique conditionnelle

Le widget Formulaire d'Elementor Pro permet, pour chaque champ, de définir une règle de visibilité conditionnelle basée sur la valeur d'un champ précédent. Par exemple, un champ « étage sans ascenseur » n'apparaît que si le champ « présence d'un ascenseur » est réglé sur « non ». Cette logique se configure directement dans l'onglet Contenu du widget, sans code, via le bouton `Ajouter une règle` de chaque champ concerné.

```
<?php
// Calcul de devis exécuté avant l'envoi des notifications
add_action( 'elementor_pro/forms/process', function( $record, $handler ) {
    $champs = $record->get( 'fields' );
    $surface        = (int) $champs['surface']['value'];
    $distance_km    = (int) $champs['distance_km']['value'];

    $base = 25 * $surface;
    if ( $distance_km > 50 ) {
        $base += 150;
    }
    if ( 'non' === $champs['ascenseur']['value'] ) {
        $base *= 1.2;
    }

    $record->set( 'devis_estime', round( $base, 2 ) );
}, 10, 2 );
```

> L'essentiel à retenir : Un formulaire à champs multiples avec logique conditionnelle native ; Un calcul de devis exécuté côté serveur avant confirmation ; Aucune réservation de créneau intégrée à cette recette

## Afficher le résultat sans recharger la page

Une fois le calcul effectué côté serveur, le résultat est renvoyé au navigateur via la réponse AJAX native d'Elementor Pro Forms, puis affiché dans un widget masqué par défaut, révélé au moment de la confirmation. Ce fonctionnement évite d'exposer la logique de calcul en JavaScript côté client, ce qui aurait permis à n'importe quel visiteur d'inspecter et de reproduire la formule de tarification, potentiellement sensible commercialement.

## Ajouter un message de nuance sur l'estimation

Un message clair doit accompagner le résultat, précisant qu'il s'agit d'une estimation indicative et non d'un devis contractuel définitif, celui-ci nécessitant une visite ou un échange téléphonique préalable avec un conseiller. Ce message se place dans le même widget que le résultat, juste en dessous du montant affiché.

## Variantes possibles

- Ajouter un champ pour le nombre de pièces à emballer, afin d'affiner l'estimation selon un tableau PHP ou un fichier de configuration séparé.
- Envoyer automatiquement l'estimation par e-mail au visiteur, avec un lien vers la prise de rendez-vous téléphonique pour finaliser le dossier.
- Ajouter une option de comparaison entre une formule économique et une formule avec emballage inclus, affichée côte à côte après soumission du formulaire.

> Un point de vigilance qu'on rappelle systématiquement sur ce type de projet : la grille tarifaire doit rester alignée avec celle utilisée en interne par les équipes commerciales, sous peine d'afficher une estimation qui ne correspondra jamais au devis réel proposé ensuite.

## En résumé

Un simulateur de devis de déménagement basique se construit avec la logique conditionnelle native d'Elementor Pro Forms et un calcul PHP exécuté côté serveur via le hook `elementor_pro/forms/process`, sans dépendre d'un plugin de calcul externe. La formule reste volontairement indicative, la finalisation du devis restant du ressort d'un conseiller ou d'une visite sur place.
