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

Elementor

Billetterie d’événement professionnel sous Elementor, avec quotas par créneau

400 places, six créneaux, zéro extension d'événementiel dédiée. Le tutoriel pour gérer une billetterie de salon B2B avec quotas limités par créneau, directement dans Elementor.

Par WordPress Développement • 29 avril 2024 • 4 min de lecture • Aucun commentaire
Billetterie d'événement professionnel sous Elementor, avec quotas par créneau

400 places réparties sur six créneaux, sans dépassement toléré : voilà le cahier des charges d’un organisateur de salon professionnel qui ne voulait pas investir dans une extension d’événementiel complète pour un événement ponctuel de deux jours. Ce tutoriel montre comment gérer des créneaux à quota limité directement avec Elementor Pro Forms et quelques champs personnalisés, sans passer par un plugin de billetterie dédié.

Il ne traite pas de la billetterie grand public récurrente, qui suppose une gestion de plusieurs dates, de tarifs multiples et souvent de paiement en ligne à grande échelle : le cas ici reste celui d’un événement B2B ponctuel, à créneaux fixes et places gratuites ou facturées hors ligne.

Étape 1 : structurer les créneaux

Chaque créneau est déclaré comme un type de contenu personnalisé creneau_salon, avec deux champs ACF : places_totales (nombre entier fixé à la création) et places_restantes (nombre entier décrémenté à chaque inscription validée). Séparer ces deux champs permet de conserver la capacité initiale comme référence, tout en suivant l’évolution des places disponibles.

Étape 2 : afficher les créneaux disponibles

Un Loop Grid liste les six créneaux, avec dans chaque Loop Item le nombre de places restantes affiché via un Dynamic Tag lié au champ places_restantes. Une condition d’affichage masque le bouton d’inscription et affiche « Complet » dès que ce champ atteint zéro, évitant qu’un visiteur ne tente de s’inscrire à un créneau déjà saturé.

L'essentiel à retenir : Un champ ACF numérique décrémenté à chaque inscription validée ; Un formulaire bloqué automatiquement quand le quota d'un créneau est atteint ; Aucune récurrence de billetterie, un événement ponctuel à quotas fixes

Étape 3 : construire le formulaire d’inscription

Le formulaire d’inscription contient un champ caché préréglé avec l’identifiant du créneau choisi (transmis depuis le Loop Grid via un paramètre d’URL), et les coordonnées classiques du participant. La vérification et la décrémentation du quota se font côté serveur, via l’action elementor_pro/forms/validation, pour empêcher toute inscription qui dépasserait la capacité même en cas de double soumission rapprochée :

<?php
add_action( 'elementor_pro/forms/validation', function( $record, $ajax_handler ) {
    $champs = $record->get( 'fields' );
    $creneau_id = (int) $champs['creneau_id']['value'];
    $restantes  = (int) get_field( 'places_restantes', $creneau_id );

    if ( $restantes <= 0 ) {
        $ajax_handler->add_error( 'creneau_id', 'Ce créneau est complet.' );
    }
}, 10, 2 );

add_action( 'elementor_pro/forms/process', function( $record, $handler ) {
    $champs = $record->get( 'fields' );
    $creneau_id = (int) $champs['creneau_id']['value'];
    $restantes  = (int) get_field( 'places_restantes', $creneau_id );
    update_field( 'places_restantes', max( 0, $restantes - 1 ), $creneau_id );
}, 10, 2 );

Étape 4 : gérer le risque de double inscription simultanée

Sur un créneau très demandé, deux visiteurs peuvent soumettre le formulaire à quelques secondes d’intervalle, alors qu’il ne reste qu’une place. Le hook de validation s’exécutant avant celui de traitement, un contrôle strict au moment de la décrémentation, avec une vérification immédiate avant écriture, limite le risque de dépassement, sans toutefois éliminer complètement une collision à la microseconde près sur un trafic extrêmement concentré, un cas resté marginal pour ce volume d’inscriptions.

Étape 5 : envoyer la confirmation avec le créneau retenu

La notification de confirmation envoyée au participant reprend dynamiquement le nom du créneau choisi et son horaire, en s’appuyant sur les balises dynamiques natives du champ formulaire, sans nécessiter de champ supplémentaire dédié à cet affichage.

Le conseil qu’on retient de ce projet : pour un événement ponctuel à quotas fixes, la robustesse vient moins de la sophistication de l’outil que de la rigueur du contrôle serveur au moment de l’inscription. Un simple champ décrémenté, bien protégé, suffit largement.

En résumé

Une billetterie de salon B2B avec quotas par créneau se construit efficacement avec un type de contenu personnalisé, un champ de places restantes décrémenté côté serveur et un formulaire Elementor Pro Forms correctement validé. Cette approche évite le coût et la complexité d’une extension d’événementiel dédiée pour un événement ponctuel à structure simple.

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