Un cabinet regroupant quatre praticiens (deux kinésithérapeutes, une ostéopathe, un podologue) souhaitait un système de prise de rendez-vous en ligne directement sur son site, sans passer par une plateforme tierce facturée à l’utilisation et sans dépendre d’une extension métier de calendrier de rendez-vous, jugée trop coûteuse au vu du volume de rendez-vous du cabinet. Le cahier des charges excluait explicitement toute intégration Calendly, déjà écartée après un essai jugé trop rigide sur la gestion multi-praticiens.
Le défi technique principal ne tenait pas à la prise de rendez-vous en elle-même, plutôt bien gérée par le module de formulaires multi-étapes d’Elementor Pro, mais à la logique de disponibilité propre à chaque praticien, avec des plannings et des durées de consultation différentes selon la spécialité.
Architecture retenue
Chaque praticien a été modélisé comme une entrée d’un post type personnalisé « Praticien », avec des champs ACF associés (spécialité, jours de disponibilité, durée de consultation par défaut, créneau de pause déjeuner). Une table personnalisée en base de données, créée via une simple requête dbDelta lors de l’activation du plugin maison du site, stocke les créneaux déjà réservés, associés à l’identifiant du praticien concerné.
Le formulaire côté visiteur
Le formulaire multi-étapes natif d’Elementor Pro gère la première partie du parcours : sélection du praticien, puis de la spécialité si le praticien en propose plusieurs, avant d’afficher les créneaux disponibles. Cette dernière étape ne pouvait pas reposer sur un simple champ Elementor natif, puisque les créneaux affichés dépendent d’un calcul en temps réel croisant le planning du praticien et les réservations déjà enregistrées : elle a nécessité un point de terminaison REST personnalisé, interrogé en AJAX depuis un script lié au formulaire.

Le point sensible : aucune donnée de santé stockée
Un cabinet médical impose une vigilance particulière sur les données personnelles collectées. Le choix a été fait, dès la conception, de ne jamais demander ni stocker de motif de consultation ou toute autre information relevant du secret médical dans le formulaire de prise de rendez-vous en ligne. Seuls sont collectés : nom, prénom, téléphone, e-mail, praticien choisi et créneau. Le motif de visite, si le patient souhaite le préciser, reste géré par téléphone ou lors de la consultation elle-même, jamais via le formulaire du site.
- Formulaire Elementor Pro limité aux données de contact strictement nécessaires à la prise de rendez-vous.
- Aucun champ libre permettant de décrire un symptôme ou une pathologie.
- Confirmation par e-mail générée sans mention du motif de consultation, uniquement le praticien et le créneau retenu.
- Durée de conservation des rendez-vous passés limitée à douze mois, purgée automatiquement par une tâche planifiée WP-Cron.
Gestion des conflits de créneaux
Deux patients ne doivent jamais pouvoir réserver le même créneau du même praticien simultanément. Le point de terminaison de réservation vérifie la disponibilité du créneau juste avant l’écriture en base, dans une transaction courte, et renvoie une erreur explicite si le créneau vient d’être pris entre l’affichage du formulaire et sa soumission, un cas rare mais réel constaté lors des tests de charge simulés avec plusieurs soumissions simultanées.
function reserver_creneau( $praticien_id, $date, $heure ) {
global $wpdb;
$table = $wpdb->prefix . 'creneaux_reserves';
$existe = $wpdb->get_var( $wpdb->prepare(
"SELECT COUNT(*) FROM {$table} WHERE praticien_id = %d AND date_rdv = %s AND heure_rdv = %s",
$praticien_id, $date, $heure
) );
if ( $existe > 0 ) {
return new WP_Error( 'creneau_pris', 'Ce créneau vient d\'être réservé.' );
}
return $wpdb->insert( $table, [
'praticien_id' => $praticien_id,
'date_rdv' => $date,
'heure_rdv' => $heure,
] );
}
Un système de rendez-vous multi-praticiens n’est pas un formulaire compliqué, c’est un calcul de disponibilité qui se cache derrière un formulaire simple. La complexité mérite d’être traitée là où elle se trouve réellement.
En résumé
Pour un cabinet médical de taille modeste, un système de rendez-vous multi-praticiens sur mesure, construit autour des formulaires Elementor Pro et d’un point de terminaison REST léger, offre une alternative crédible aux extensions métier onéreuses, à condition de traiter avec le sérieux nécessaire la question des données personnelles collectées et la logique de disponibilité par praticien, qui reste le cœur technique réel du projet.