wp_insert_post() combiné à un champ de disponibilité par chambre suffit largement à un hôtel indépendant d’une dizaine de chambres, sans qu’il soit nécessaire de connecter le site à un channel manager tiers, souvent facturé à l’abonnement et pensé pour synchroniser plusieurs plateformes de réservation simultanément. Beaucoup d’établissements indépendants n’ont besoin, dans un premier temps, que d’un formulaire de demande de réservation affichant une disponibilité simplifiée.
Ce tutoriel ne traite pas de la gestion multi-établissements, qui suppose une synchronisation entre plusieurs sites et plusieurs calendriers distincts : il montre comment construire, chambre par chambre, un système de demande de réservation avec disponibilité affichée, directement dans Elementor.
Étape 1 : structurer les chambres et leur disponibilité
Chaque chambre est déclarée comme un type de contenu personnalisé chambre, avec un champ ACF de type Répéteur nommé periodes_indisponibles, contenant pour chaque ligne une date de début et une date de fin. Cette structure reste lisible manuellement par le personnel de l’hôtel, qui met à jour les périodes bloquées directement depuis l’administration WordPress, sans interface de calendrier complexe.
Étape 2 : afficher la disponibilité sur la fiche chambre
Un widget Texte dynamique, alimenté par une fonction PHP personnalisée enregistrée comme Dynamic Tag, compare la date du jour aux périodes indisponibles enregistrées et affiche soit « Disponible ce mois-ci », soit les prochaines dates libres. Cette fonction reste volontairement simple, sans calendrier interactif, pour limiter le développement nécessaire :
<?php
function chambre_est_disponible( $chambre_id, $date_debut, $date_fin ) {
$periodes = get_field( 'periodes_indisponibles', $chambre_id );
if ( ! $periodes ) {
return true;
}
foreach ( $periodes as $periode ) {
if ( $date_debut < $periode['date_fin'] && $date_fin > $periode['date_debut'] ) {
return false;
}
}
return true;
}

Étape 3 : construire le formulaire de demande de réservation
Le widget Formulaire d’Elementor Pro rassemble les champs nécessaires : sélection de la chambre (liste déroulante alimentée dynamiquement depuis les chambres publiées), dates d’arrivée et de départ, nombre de personnes, coordonnées de contact. Avant l’envoi, un script associé à l’action elementor_pro/forms/validation vérifie côté serveur la disponibilité de la chambre sélectionnée sur la période demandée, en appelant la fonction chambre_est_disponible(), et bloque la soumission avec un message clair si la période est déjà occupée.
Étape 4 : notifier l’équipe et le client
À la soumission validée, deux actions se déclenchent : un e-mail à l’équipe de réception avec le détail de la demande, et un e-mail de confirmation de réception au client, précisant qu’il s’agit d’une demande et non d’une réservation définitive tant que l’équipe n’a pas confirmé manuellement. Cette confirmation manuelle reste volontairement dans le flux, en l’absence de connexion à un module de paiement en ligne qui aurait automatisé la validation.
Étape 5 : bloquer la période une fois la réservation confirmée
Une fois la demande validée par l’équipe, celle-ci ajoute manuellement la période dans le champ periodes_indisponibles de la chambre concernée, ce qui la rend automatiquement indisponible pour toute nouvelle demande sur ces dates. Cette étape manuelle, qui peut sembler rudimentaire comparée à un channel manager automatisé, reste parfaitement gérable pour un volume de réservations limité.
Le conseil qu’on donne à ce type d’établissement : ne pas suréquiper le site tant que le volume de réservations ne le justifie pas. Un channel manager apporte une vraie valeur à partir du moment où l’hôtel est présent sur plusieurs plateformes de réservation, pas avant.
En résumé
Un hôtel indépendant peut gérer ses demandes de réservation avec un type de contenu personnalisé, un champ de périodes indisponibles et un formulaire Elementor Pro validé côté serveur, sans passer par un channel manager. Cette solution reste manuelle sur la confirmation finale, mais couvre largement les besoins d’un établissement de taille modeste.