wp cron event run recalcul_tarifs_hotel : cette unique commande WP-CLI a évité bien des allers-retours frustrants sur un projet pour un petit hôtel indépendant, où un bloc de réservation affichait des tarifs recalculés chaque nuit par une tâche planifiée, mais où l’équipe voulait pouvoir vérifier immédiatement l’effet d’un changement de grille tarifaire sans attendre le lendemain matin.
Ce billet montre comment utiliser cette commande pour forcer un recalcul de tarif hors de son horaire habituel, dans le cadre d’un bloc de réservation hôtelière. La configuration du cron système du serveur, sujet distinct relevant de l’hébergement, n’est pas traitée ici.
Le problème : une tâche planifiée invisible au quotidien
Le bloc de réservation affichait un tarif calculé à partir d’une grille saisonnière, recalculée chaque nuit à 3 heures du matin par un événement cron WordPress nommé recalcul_tarifs_hotel. Ce fonctionnement convenait très bien en usage courant, mais posait un problème pratique dès qu’une modification de grille tarifaire devait être vérifiée dans la journée : attendre la prochaine exécution nocturne rendait tout test immédiat impossible.
Le snippet commenté : la commande et son contexte
# Lister les événements cron planifiés, pour retrouver le bon nom
wp cron event list
# Forcer l'exécution immédiate de l'événement, sans attendre son horaire
wp cron event run recalcul_tarifs_hotel
La commande wp cron event run exécute immédiatement la fonction associée à l’événement cron, exactement comme si son horaire programmé venait d’être atteint. Aucune attente, aucune manipulation de date système : la tâche s’exécute dans la seconde, avec un retour direct dans le terminal indiquant son succès ou son échec.

La fonction déclenchée, côté PHP
add_action( 'recalcul_tarifs_hotel', function() {
$chambres = get_posts( array( 'post_type' => 'chambre', 'numberposts' => -1 ) );
foreach ( $chambres as $chambre ) {
$tarif_base = (float) get_post_meta( $chambre->ID, 'tarif_base', true );
$coefficient = obtenir_coefficient_saison( date( 'n' ) );
update_post_meta( $chambre->ID, 'tarif_calcule', $tarif_base * $coefficient );
}
} );
Le bloc de réservation, lui, se contente de lire la méta-donnée tarif_calcule déjà calculée, sans jamais effectuer ce calcul lui-même au moment de l’affichage. Cette séparation entre calcul planifié et lecture au vol garde le bloc rapide, même sur un catalogue de plusieurs dizaines de chambres.
Variantes utiles autour de cette commande
wp cron event delete recalcul_tarifs_hotelpour supprimer une occurrence mal planifiée avant d’en reprogrammer une proprewp cron testpour vérifier que le mécanisme de déclenchement du cron WordPress fonctionne correctement sur l’environnement en cours- Un script de déploiement qui appelle automatiquement
wp cron event runjuste après toute mise à jour de la grille tarifaire, pour éviter d’y penser manuellement
Une variante pour vérifier la planification elle-même
Avant même de forcer une exécution, il est utile de vérifier que l’événement est bien planifié comme prévu, à l’heure attendue :
# Afficher le prochain horaire prévu pour l'événement recherché
wp cron event list --fields=hook,next_run_relative --format=table
Cette commande a permis de repérer, sur ce projet, qu’un déploiement récent avait involontairement dupliqué l’événement cron, planifié deux fois à quelques minutes d’écart. Sans cette vérification, le recalcul de tarif aurait continué de s’exécuter deux fois chaque nuit, sans qu’aucune erreur ne le signale jamais dans les journaux du site.
Ce que cette commande ne remplace pas
Le cron de WordPress, par défaut, ne se déclenche qu’à l’occasion d’une visite sur le site, ce qui peut retarder l’exécution réelle d’une tâche planifiée sur un site à faible trafic nocturne. La commande wp cron event run reste un outil de test et de forçage ponctuel, elle ne remplace en rien la mise en place d’un vrai cron système fiable, configuré au niveau du serveur pour déclencher WordPress à intervalles réguliers.
Sur tout projet qui dépend d’un recalcul planifié, on garde toujours cette commande sous la main en phase de recette : elle évite d’attendre une exécution nocturne pour vérifier qu’un correctif fonctionne bien.
En résumé
La commande wp cron event run permet de forcer immédiatement l’exécution d’une tâche planifiée, un outil précieux en phase de test ou juste après une modification de données qui dépendent d’un recalcul périodique. Elle complète, sans le remplacer, un cron système correctement configuré au niveau de l’hébergement.