Si votre environnement d'hébergement limite le planificateur de tâches intégré de WordPress, ou si vous avez besoin que les flux soient actualisés à une heure précise qui ne correspond pas aux intervalles horaire, bi-quotidien ou quotidien du plugin, vous pouvez plutôt déclencher les actualisations de flux à partir d'une tâche cron au niveau du serveur. Cela vous donne un contrôle exact sur le calendrier et évite de dépendre du trafic des visiteurs pour déclencher le planificateur de WordPress.
Symptômes courants : flux bloqués sur d’anciennes données, heures d’actualisation qui varient entre les visites, ou environnements d’hébergement qui désactivent wp-cron.
Product Feed Pro et Product Feed Elite prennent tous deux en charge deux approches : une commande WP-CLI (recommandée) et un script PHP autonome pour les serveurs sans WP-CLI.
Avant de commencer
- Product Feed Pro ou Product Feed Elite installé et actif
- Au moins un flux de produits créé et configuré
- Accès SSH ou cPanel à votre serveur pour ajouter des tâches cron
- Votre ID de flux (voir l’étape 1 dans l’une ou l’autre méthode ci-dessous)
- Version 13.5.4 ou ultérieure pour la prise en charge de WP-CLI
Méthode 1 : WP-CLI (recommandée)
WP-CLI est disponible sur la plupart des hébergements WordPress gérés. C'est le moyen le plus simple et le plus fiable de déclencher une actualisation de flux à partir d'une tâche cron du serveur. Aucun fichier PHP à gérer, aucun amorçage de WordPress requis.
Étape 1 : Trouver votre ID de flux
- Accédez à Flux de produits → Gérer les flux dans votre administration WordPress.
- Cliquez sur le flux que vous souhaitez actualiser.
- Regardez dans la barre d’URL de votre navigateur. L’ID du flux est la valeur du paramètre
id— par exemple,admin.php?page=adt-edit-feed&id=123signifie que votre ID de flux est123.

Étape 2 : Désactiver l’intervalle d’actualisation intégré
Pour empêcher le planificateur du plugin d’exécuter une actualisation en double en parallèle de votre tâche cron :
- Pendant que vous modifiez le flux, accédez à l’onglet Général.
- Définissez Intervalle d’actualisation sur Aucune actualisation.
- Cliquez sur Enregistrer les modifications.

Étape 3 : Ajouter la tâche cron du serveur
Sur votre serveur, ajoutez une entrée cron qui exécute wp adt-feed refresh à votre calendrier choisi. Remplacez /chemin-vers-wordpress par le répertoire racine réel de votre site et 123 par votre ID de flux :
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 >> /tmp/feed-refresh-123.log 2>&1
Cet exemple s’exécute tous les jours à 2h00 du matin. Ajustez l’expression de planification pour correspondre à vos besoins.
Pour actualiser plusieurs flux dans une seule tâche cron, listez leurs ID séparés par des espaces :
0 2 * * * cd /path-to-wordpress && wp adt-feed refresh 123 456 789
Méthode 2 : Script PHP
Utilisez cette méthode si votre serveur ne prend pas en charge WP-CLI.
Étape 1 : Trouver votre ID de flux
Suivez les mêmes étapes que dans la Méthode 1, Étape 1 ci-dessus. Cliquez sur votre flux pour le modifier et lisez la valeur id= de l'URL.
Étape 2 : Créer le script PHP
Créez un nouveau fichier nommé feed-refresh-123.php (remplacez 123 par l'ID de votre flux) et enregistrez-le dans le répertoire de votre thème enfant — par exemple, wp-content/themes/votre-theme-enfant/feed-refresh-123.php.
Ajoutez ce code au fichier, en remplaçant 123 par l'ID réel de votre flux :
/**
* Product Feed Generation Cron Script
*/
// Start timing
$start_time = microtime(true);
// Simple logging function
function log_message($message) {
$timestamp = date('Y-m-d H:i:s');
$log_entry = "[$timestamp] $message";
error_log($log_entry);
echo $log_entry . "\n";
}
log_message("Feed generation started");
try {
// Load WordPress (3 levels up from wp-content/themes/your-child-theme/)
require_once(__DIR__ . '/../../../wp-load.php');
$feed_id = 123; // Change this to your actual feed ID
$feed = \AdTribes\PFP\Helpers\Product_Feed_Helper::get_product_feed($feed_id);
if ($feed) {
$feed->generate();
$execution_time = round(microtime(true) - $start_time, 2);
log_message("Feed ID $feed_id generated successfully in {$execution_time}s");
} else {
log_message("ERROR: Failed to get feed ID $feed_id");
}
} catch (Exception $e) {
log_message("ERROR: " . $e->getMessage());
}
Étape 3 : Désactiver l'intervalle d'actualisation intégré
Suivez les mêmes étapes que dans la Méthode 1, Étape 2 ci-dessus — réglez Intervalle d'actualisation sur Aucune actualisation dans l'onglet Général.
Étape 4 : Ajouter la tâche cron du serveur
Ajoutez l'entrée cron suivante sur votre serveur, en remplaçant les chemins par vos valeurs réelles :
0 2 * * * php /path-to-wordpress/wp-content/themes/your-child-theme/feed-refresh-123.php >> /path-to-wordpress/wp-content/themes/your-child-theme/feed-refresh-123.log 2>&1
Ceci s'exécute tous les jours à 2h00. La sortie est écrite dans un fichier journal dans le même répertoire, vous pouvez donc vérifier si le script a été exécuté et s'il a produit des erreurs.
Pour exécuter plusieurs flux indépendamment, créez un fichier PHP et une entrée cron distincts pour chaque flux.
Dépannage
Si le journal affiche une sortie mais que le flux ne se met toujours pas à jour, vérifiez que l'ID du flux est correct : ouvrez le flux dans l'administration WordPress et confirmez que la valeur
id= dans l'URL correspond à l'ID dans votre script ou commande WP-CLI.wp n'est peut-être pas dans le PATH de votre serveur. Contactez votre hébergeur pour confirmer que WP-CLI est disponible et demandez le chemin complet. Mettez ensuite à jour votre entrée cron pour utiliser le chemin complet (par exemple, /usr/local/bin/wp adt-feed refresh 123).AdTribes\PFP\Helpers\Product_Feed_Helper n'est disponible qu'après le chargement du plugin via wp-load.php. Assurez-vous que la ligne require_once pointe vers le bon chemin wp-load.php. Le chemin doit correspondre à la racine de votre installation WordPress — pas à un sous-répertoire.FAQ
Besoin de plus d'aide ?
Si vous utilisez Product Feed Elite, ouvrez un ticket de support, et notre équipe vous aidera à configurer la configuration cron pour votre environnement.
Si vous utilisez Product Feed Pro, posez votre question sur le forum de support de WordPress.org.

