Comment utiliser WP Cron et Action Scheduler dans WordPress : Guide complet
- Actus
Rédigé par Hugo
31 Mar. 2025
Table des matières
+
-
- WP Cron : Le gestionnaire de tâches intégré de WordPress
- Qu'est-ce que WP Cron ?
- Pourquoi utiliser WP Cron ?
- Créer une tâche programmée avec WP Cron
- Créer une tâche récurrente avec WP Cron
- Créer un intervalle personnalisé dans WP Cron
- Gérer les tâches programmées dans WordPress
- Action Scheduler : Une alternative plus puissante pour WooCommerce
- Pourquoi utiliser Action Scheduler ?
- Programmer une tâche avec Action Scheduler
- Supprimer une tâche programmée
- Avec WP Cron
- Avec Action Scheduler
- Gérer les tâches d'Action Scheduler dans WooCommerce
- WP Cron vs Action Scheduler : Quelle solution choisir ?
- Conclusion
La gestion des tâches programmées est essentielle pour le bon fonctionnement d’un site WordPress, notamment pour exécuter des mises à jour, des actions récurrentes ou encore automatiser certaines tâches. Dans WordPress, deux outils permettent de gérer ces actions programmées : WP Cron et Action Scheduler.
Dans cet article, nous allons voir en détail :
- Ce qu’est WP Cron et comment l’utiliser pour programmer des tâches automatiques.
- Comment Action Scheduler, utilisé notamment par WooCommerce, permet d’améliorer la gestion des tâches en arrière-plan.
- Comment créer, programmer et supprimer des tâches avec ces deux systèmes.
WP Cron : Le gestionnaire de tâches intégré de WordPress
Qu’est-ce que WP Cron ?
WP Cron est le système de planification des tâches utilisé par WordPress pour exécuter des actions à intervalles réguliers. Contrairement aux cron jobs classiques sur les serveurs, WP Cron ne fonctionne pas selon un calendrier fixe, mais se déclenche à chaque chargement de page. Cela signifie que si votre site n’a pas de trafic régulier, certaines tâches peuvent être retardées.
Pourquoi utiliser WP Cron ?
- Planifier des mises à jour automatiques (WordPress, plugins, thèmes).
- Exécuter des tâches en arrière-plan, comme l’envoi d’e-mails, la synchronisation de contenu, ou la mise en cache.
- Automatiser la publication différée d’articles.
- Gérer des actions répétitives sur votre site WordPress.
Créer une tâche programmée avec WP Cron
Pour programmer une tâche avec WP Cron, nous utilisons la fonction wp_schedule_single_event().
Exemple : Supposons que nous voulons marquer automatiquement une commande WooCommerce comme complétée après deux jours :
add_action( 'woocommerce_thankyou', 'auto_complete_orders_after_two_days' );
function auto_complete_orders_after_two_days( $order_id ) {
wp_schedule_single_event(
time() + 2 * DAY_IN_SECONDS, // Exécution dans 2 jours
'auto_complete_order',
array( $order_id )
);
}
add_action( 'auto_complete_order', 'auto_complete_order_function' );
function auto_complete_order_function( $order_id ) {
$order = wc_get_order( $order_id );
if ( $order && $order->get_status() === 'processing' ) {
$order->update_status( 'completed' );
}
}
Explications :
- wp_schedule_single_event() permet d’exécuter l’action auto_complete_order après 2 jours.
- add_action( 'auto_complete_order', 'auto_complete_order_function' ) associe cette action à la fonction qui modifie le statut de la commande.
- time() + 2 * DAY_IN_SECONDS programme l’exécution dans 2 jours.
Créer une tâche récurrente avec WP Cron
Si vous souhaitez exécuter une action de manière régulière (ex. tous les jours), utilisez wp_schedule_event() :
if (! wp_next_scheduled('auto_complete_all_orders') ) {
wp_schedule_event(
time() + DAY_IN_SECONDS * 2, // Démarrage dans 2 jours
'every2days', // Intervalle personnalisé
'auto_complete_all_orders'
);
}
add_action( 'auto_complete_all_orders', 'process_auto_complete_orders' );
function process_auto_complete_orders() {
$orders = wc_get_orders(array(
'status' => array('wc-processing'),
'date_created' => '>' . ( time() - 2 * DAY_IN_SECONDS ),
'return' => 'ids',
));
foreach ($orders as $order_id) {
$order = wc_get_order($order_id);
$order->update_status('completed');
}
}
Ici, nous avons défini un intervalle personnalisé pour exécuter la tâche tous les 2 jours.
Créer un intervalle personnalisé dans WP Cron
Par défaut, WordPress propose des intervalles comme hourly, daily, weekly, etc. Si vous avez besoin d’une autre fréquence (ex. toutes les 2 heures), il faut la déclarer via cron_schedules :
add_filter( 'cron_schedules', function( $schedules ) {
$schedules['every2days'] = array(
'interval' => 2 * DAY_IN_SECONDS,
'display' => 'Toutes les 2 jours'
);
return $schedules;
});
Gérer les tâches programmées dans WordPress
Pour voir et gérer les tâches WP Cron en cours, vous pouvez utiliser le plugin Advanced Cron Manager.
- Installation : Recherchez « Advanced Cron Manager » dans le répertoire des plugins et activez-le.
- Gestion : Vous verrez toutes les tâches programmées dans l’interface WordPress.
Action Scheduler : Une alternative plus puissante pour WooCommerce
Si vous utilisez WooCommerce, WP Cron peut être limité. C’est là qu’intervient Action Scheduler, un outil développé par WooCommerce pour gérer des tâches à plus grande échelle.
Pourquoi utiliser Action Scheduler ?
- Meilleure gestion des files d’attente : Exécution fiable même en cas de faible trafic.
- Plus efficace pour WooCommerce : Compatible avec les commandes, stocks, abonnements.
- Exécution en arrière-plan avec action_scheduler_run_queue.
Programmer une tâche avec Action Scheduler
Comme WP Cron, Action Scheduler permet d’exécuter des tâches automatiques.
Exemple : Exécution unique après 2 jours :
as_schedule_single_action(
time() + 2 * DAY_IN_SECONDS,
'auto_complete_order',
array( $order_id ),
'order-group',
true
);
Exemple : Tâche récurrente :
as_schedule_recurring_action(
time() + 2 * DAY_IN_SECONDS,
2 * DAY_IN_SECONDS,
'auto_complete_all_orders',
array(),
'order-group',
true
);
Supprimer une tâche programmée
Avec WP Cron
Si vous souhaitez annuler une tâche, utilisez wp_unschedule_event() :
wp_unschedule_event(
wp_next_scheduled('auto_complete_order'),
'auto_complete_order',
array($order_id)
);
Ou pour supprimer toutes les occurrences :
wp_clear_scheduled_hook('auto_complete_order', array($order_id));
Avec Action Scheduler
Pour annuler une action planifiée :
as_unschedule_action('auto_complete_order', array($order_id), 'order-group');
Pour supprimer toutes les occurrences :
as_unschedule_all_actions('auto_complete_all_orders', array(), 'order-group');
Gérer les tâches d’Action Scheduler dans WooCommerce
WooCommerce intègre une interface pour gérer les tâches planifiées :
- Accédez à WooCommerce > Status > Scheduled Actions.
- Vous pouvez y voir toutes les actions programmées et en exécuter ou supprimer.
WP Cron vs Action Scheduler : Quelle solution choisir ?
Fonctionnalité | WP Cron | Action Scheduler |
Mode de déclenchement | Dépend du trafic | Exécute via un cron serveur |
Fiabilité | Moins fiable si peu de visiteurs | Très fiable |
Gestion WooCommerce | Limitée | Optimisé pour WooCommerce |
Exécution en arrière-plan | Non | Oui |
Si vous gérez un site WooCommerce avec des commandes fréquentes, Action Scheduler est fortement recommandé. Pour des tâches basiques comme des mises à jour ou des publications planifiées, WP Cron suffira.
Conclusion
Que vous utilisiez WP Cron ou Action Scheduler, il est essentiel de bien planifier vos tâches automatiques pour optimiser votre site WordPress. WP Cron est simple mais limité, tandis qu’Action Scheduler offre plus de flexibilité pour les sites WooCommerce.
En comprenant comment utiliser ces outils, vous pourrez automatiser des tâches essentielles et améliorer les performances de votre site WordPress.Si vous souhaitez approfondir le sujet, pensez à tester des plugins comme Advanced Cron Manager ou explorer la documentation officielle de WooCommerce Action Scheduler. Pour en savoir plus, adressez-vous à une agence experte WordPress !
Besoin d’aide pour créer un site performant ?
Réservez votre audit stratégique offert pour propulser la croissance de votre entreprise grâce à votre site web !
D'autres articles pouvant vous plaire !

Boostez l’engagement avec Notification Master : des notifications ciblées à portée de clic
Dans le monde du marketing numérique, capter l’attention de vos utilisateurs est un vrai défi. Entre les e-mails qui tombent…
Utiliser les retours clients pour améliorer votre boutique WooCommerce
Pourquoi les retours clients sont-ils cruciaux ? Dans l’univers impitoyable du e-commerce, savoir ce que pensent vos clients est un…
Les plugins de liens internes pour WordPress : Boostez votre SEO sans (trop) de sueur !
Les liens internes, c’est le petit détail qui fait toute la différence en SEO. Un bon maillage interne guide les…