Sept nuits consécutives valent-elles vraiment le même tarif unitaire qu’une seule nuit de passage ? Pour un hôtel indépendant qui souhaite récompenser les longs séjours, la réponse est non, mais installer un module de tarification dynamique complet pour ce seul besoin représente un investissement disproportionné.
Un simple calcul basé sur le nombre de nuitées saisi lors de la réservation, comparé à des paliers définis par l’hôtelier lui-même, suffit largement à obtenir un système de remise crédible et facile à faire évoluer.
Définir les paliers de remise
Plutôt que de coder les seuils en dur dans le thème, un champ personnalisé de type répétable, associé aux réglages de l’hôtel, permet à l’hôtelier de modifier lui-même les paliers sans intervention d’un développeur à chaque ajustement saisonnier.
$paliers = get_field( 'paliers_remise_sejour', 'option' );
// Exemple de structure retournée :
// [
// [ 'nuitees_minimum' => 3, 'remise_pourcentage' => 5 ],
// [ 'nuitees_minimum' => 7, 'remise_pourcentage' => 10 ],
// [ 'nuitees_minimum' => 14, 'remise_pourcentage' => 15 ],
// ]
Calculer le tarif final du séjour

Le calcul retient le palier le plus élevé atteint par le nombre de nuitées réservées, puis applique la remise correspondante au tarif total du séjour, et non à chaque nuit prise séparément, ce qui simplifie la lecture du récapitulatif pour le client.
function calculer_tarif_sejour( $tarif_nuit, $nombre_nuitees, $paliers ) {
$tarif_brut = $tarif_nuit * $nombre_nuitees;
$remise = 0;
foreach ( $paliers as $palier ) {
if ( $nombre_nuitees >= $palier['nuitees_minimum'] ) {
$remise = max( $remise, (float) $palier['remise_pourcentage'] );
}
}
$tarif_final = $tarif_brut * ( 1 - $remise / 100 );
return array(
'tarif_brut' => $tarif_brut,
'remise' => $remise,
'tarif_final' => round( $tarif_final, 2 ),
);
}
La fonction max() appliquée à chaque itération garantit que le palier le plus avantageux l’emporte, même si les paliers sont saisis dans le désordre par l’hôtelier dans l’écran de réglages.
Afficher la remise de façon transparente
- Tarif brut affiché en premier, barré si une remise s’applique
- Pourcentage de remise indiqué explicitement, jamais deviné par le client
- Tarif final mis en avant visuellement, sans ambiguïté sur le montant à payer
La transparence sur le mode de calcul évite les questions au moment du paiement, un client qui comprend pourquoi il économise étant nettement plus enclin à prolonger encore son séjour.
Le cas des réservations modifiées
Une réservation initialement prévue pour cinq nuits, prolongée en cours de séjour à huit nuits, doit recalculer automatiquement la remise applicable au moment de la modification, sans conserver le taux initialement affiché lors de la réservation d’origine.
Un tarif dégressif mal recalculé après modification de séjour donne l’impression au client d’avoir été mal informé, même quand l’erreur est purement technique.
Combiner avec des périodes de forte demande
Certains hôteliers souhaitent suspendre la remise pendant les périodes de très forte affluence. Un simple champ « paliers_actifs » booléen, contrôlé manuellement selon le calendrier, permet de couper temporairement le dispositif sans toucher au code.
Communiquer les paliers avant la réservation
Afficher les paliers de remise dès la page de recherche de disponibilités, avant même que le client ne saisisse le nombre de nuitées souhaité, encourage naturellement à prolonger le séjour d’une ou deux nuits pour franchir un seuil avantageux. Un simple encart « réservez trois nuits ou plus et économisez 5 % » influence concrètement la décision de réservation.
Un test simple à mener
Comparer le taux de remplissage des séjours de six et sept nuits avant et après l’affichage explicite des paliers donne une indication fiable de l’effet réel du dispositif sur le comportement de réservation, sans nécessiter d’outil statistique complexe pour l’observer.
En résumé
Un calcul basé sur des paliers configurables couvre la grande majorité des besoins de tarification dégressive d’un hôtel indépendant, sans recourir à un moteur de tarification complexe. Le paiement en plusieurs fois, souvent demandé pour les longs séjours, reste un sujet distinct qui dépend d’un prestataire de paiement dédié.