WooCommerce Product Customer List : optimiser avec WP Rocket

Dans une installation WooCommerce, utiliser le module/plugin WooCommerce Product Customer List (également appelé Product Customer List for WooCommerce) permet d’afficher au sein d’une fiche-produit, la liste des commandes/clients ayant commandé le produit en question.

Cette liste est affichée dans la fiche-produit de l’interface d’administration, mais peut également l’être dans la fiche-produit publique… notamment en utilisant un code court.

Le problème, c’est que si vous affichez cette liste dans la partie publique et que vous utilisez un module/plugin de cache (WP Rocket dans mon cas), la liste affichée sur la fiche-produit publique ne sera jamais actualisée, puisque la mémoire cache de cette fiche-produit ne sera jamais vidée, purgée, rafraichie, régénérée… automatiquement.

Ainsi, j’ai écrit ce petit script PHP (à placer dans le fichier functions.php de votre thème, par exemple) qui, à chaque nouvelle commande, va purger le cache des fiches-produits concernées par cette nouvelle commande.

⚠️ Ce script est compatible uniquement avec le système de cache WP Rocket. Il utilise notamment la fonction rocket_clean_post().

add_action('woocommerce_new_order', 'rocket_new_order_purge_post', 10, 1);
function rocket_new_order_purge_post($order_id)
{
	// Récupérer l'objet commande
	$order = wc_get_order($order_id);

	// Vérifier si la commande est valide
	if (!$order) { return; }

	// Boucler sur les articles de la commande
	foreach ($order->get_items() as $item_id => $item)
	{
		$product_id = $item->get_product_id();  // ID du produit
		$product_name = $item->get_name();  // Nom du produit

		// Purger le cache du produit
		if (function_exists('rocket_clean_post'))
		{
			rocket_clean_post($product_id);
			error_log("Cache purgé pour le produit: {$product_name} (ID: {$product_id})");
		}
		else
		{
			error_log("WP Rocket n'est pas actif ou rocket_clean_post() est introuvable.");
		}
	}
}

En conclusion, je tiens à préciser que je ne suis pas responsable de l’utilisation qui en est faite. Je vous invite à le tester sur votre propre environnement, à l’adapter si nécessaire, et pourquoi pas à l’améliorer. N’hésitez pas à partager vos retours et vos suggestions d’optimisation dans les commentaires pour aider la communauté !

Article publié le et actualisé le .


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *