Action Scheduler est le planificateur de tâches de WooCommerce, partagé par de nombreuses extensions : e-mails différés, synchronisations, renouvellements d’abonnements, mises à jour de la base. L’alerte signale des tâches dont l’heure est dépassée depuis longtemps sans exécution. Le mécanisme qui les déclenche est probablement à l’arrêt.
Pourquoi cette erreur apparaît
- WP-Cron ne se déclenche plus : désactivé dans wp-config.php sans tâche cron de remplacement, ou site trop peu visité pour lancer les tâches à temps.
- Les requêtes du site vers lui-même (boucle locale) sont bloquées par un pare-feu, une protection par mot de passe ou un problème de certificat.
- Des tâches très lourdes, ou qui plantent, saturent la file et retardent toutes les autres.
- La table des actions est devenue énorme et chaque passage du planificateur prend trop de temps.
- L’hébergement coupe les processus longs : délai d’exécution ou mémoire trop limités.
Comment corriger le problème
Ouvrir la liste des actions en retard
Cliquez sur le lien de l’alerte, ou ouvrez la page des actions planifiées (Scheduled Actions), dans le menu Outils ou dans WooCommerce > État. Le filtre des actions en retard montre les tâches concernées : leur nom (hook) indique l’extension qui les a créées.
Consulter la santé du site
Dans Outils > Santé du site, regardez si WordPress signale un problème d’événement planifié ou de requête de boucle locale. L’un ou l’autre suffit à expliquer une file bloquée.
Exécuter une action à la main
Survolez une action en retard et choisissez de l’exécuter (Run). Si elle passe, le planificateur fonctionne mais n’est jamais déclenché. Si elle échoue, le message enregistré dans le journal de l’action désigne l’extension fautive.
Remplacer WP-Cron par une vraie tâche cron
Sur un site peu visité, WP-Cron se déclenche trop rarement. Créez d’abord chez votre hébergeur (cPanel, Plesk ou espace client) une tâche cron qui appelle wp-cron.php toutes les cinq minutes, comme la seconde ligne, avec l’adresse de votre site. Ajoutez ensuite la première ligne dans wp-config.php, après en avoir gardé une copie.
define( 'DISABLE_WP_CRON', true );
*/5 * * * * wget -q -O /dev/null "https://exemple.fr/wp-cron.php?doing_wp_cron"
Traiter la file avec WP-CLI
En SSH, WP-CLI exécute les actions en attente par lots, sans la limite de temps d’une requête web. Lancez un premier lot pour observer les erreurs éventuelles, puis répétez ou retirez l’option -batches pour tout traiter.
wp action-scheduler run --batch-size=100 --batches=1
Ne supprimez pas en masse les actions en attente : certaines correspondent à des e-mails, des renouvellements d’abonnement ou des mises à jour qui ne seraient jamais rejoués.
Un autre message d'erreur ? Collez-le dans le décodeur : il le reconnaît et vous oriente vers la bonne fiche.
Ouvrir le décodeur