Combien de visiteurs un site naturel classé peut-il accueillir par demi-journée sans dégrader l’expérience ni l’environnement lui-même ? C’est la question de départ d’un projet de billetterie touristique confié récemment : vendre des forfaits de visite guidée à l’avance, tout en garantissant qu’aucun créneau ne dépasse jamais sa capacité d’accueil réelle, même en cas de forte demande simultanée. WooCommerce Bookings, l’extension officielle de réservation, répond précisément à ce besoin sans développement sur mesure lourd. Ce cas ne traite pas la billetterie à l’entrée physique du site, gérée par un autre système sur place.
Structurer le produit de réservation
WooCommerce Bookings transforme un produit classique en produit réservable, avec un type de durée configurable : ici, des créneaux de demi-journée fixes, du matin et de l’après-midi, plutôt qu’une durée libre choisie par le client. Chaque créneau reçoit sa propre capacité maximale, réglée directement dans les paramètres de disponibilité du produit, indépendamment du système de stock classique de WooCommerce qui gère les produits physiques.
// Exemple de configuration programmatique d'une règle de disponibilité
$regle = new WC_Booking_Rule();
$regle->set_type( 'range' );
$regle->set_range_type( 'daily' );
$regle->set_range_from_day( 1 ); // lundi
$regle->set_range_to_day( 5 ); // vendredi
Configurer les quotas par créneau

La capacité globale de chaque créneau se règle via l’option de disponibilité personnalisée du produit réservable, qui accepte un nombre maximal de réservations simultanées. Pour un forfait avec guide, cette capacité correspond typiquement à la taille maximale d’un groupe encadrable en sécurité, un chiffre défini avec l’exploitant du site avant toute mise en ligne. Une fois ce quota atteint, WooCommerce Bookings masque automatiquement le créneau complet dans le calendrier de réservation présenté au client, sans intervention manuelle.
update_post_meta( $produit_reservable_id, '_wc_booking_max_bookings_per_block', 15 );
Ce réglage doit être testé en conditions réelles avant l’ouverture des ventes : réserver manuellement jusqu’au quota, vérifier que le créneau se grise correctement dans le calendrier, puis tenter une réservation supplémentaire pour confirmer le blocage effectif côté serveur, et pas seulement côté affichage.
Suivre les réservations en temps réel
Le tableau de bord natif de WooCommerce Bookings liste chaque réservation par créneau, avec son statut de confirmation, mais un exploitant de site touristique a souvent besoin d’une vue synthétique par jour plutôt que par commande individuelle. Une requête personnalisée, exécutée via get_wc_bookings(), permet de construire ce récapitulatif quotidien à destination de l’équipe sur place :
$reservations_du_jour = get_wc_bookings( array(
'booking_start' => strtotime( 'today' ),
'booking_end' => strtotime( 'tomorrow' ),
) );
$total_visiteurs = 0;
foreach ( $reservations_du_jour as $reservation ) {
$total_visiteurs += $reservation->get_persons_total();
}
Gérer les modifications et annulations
Un forfait vendu plusieurs semaines à l’avance génère mécaniquement des demandes de modification de date. WooCommerce Bookings permet de configurer une fenêtre de modification autorisée, au-delà de laquelle le client doit contacter directement l’exploitant. Cette règle doit être clairement affichée sur la fiche produit avant l’achat, pour éviter les litiges lors d’une demande tardive de changement de créneau.
Anticiper les pics de demande saisonniers
Pour un site à forte saisonnalité, les créneaux du week-end en haute saison se remplissent généralement en quelques jours après l’ouverture des ventes. Un cache de page désactivé sur les pages de calendrier de réservation pendant cette période reste indispensable, pour que la disponibilité affichée corresponde toujours à la réalité du quota, sans décalage lié à une page mise en cache trop longtemps.
- Définir la capacité réelle de chaque créneau avec l’exploitant avant toute mise en ligne.
- Tester le blocage effectif du quota, pas seulement son affichage visuel.
- Désactiver le cache sur les pages de réservation en période de forte demande.
- Documenter clairement la politique de modification et d’annulation sur la fiche produit.
Prévoyez toujours une marge de sécurité de quelques places sous la capacité réelle annoncée au public : un imprévu logistique le jour même reste plus facile à absorber sur un créneau qui n’était pas vendu à cent pour cent de sa capacité théorique.
En résumé
WooCommerce Bookings répond efficacement à un besoin de quotas stricts par créneau, à condition de configurer soigneusement la capacité maximale, de la tester en conditions réelles avant ouverture, et de désactiver le cache sur les pages de réservation pendant les périodes de forte affluence. Cette rigueur de configuration évite la survente tout en gardant une expérience de réservation fluide pour le visiteur.