Faire fonctionner WP Rocket avec le widget Recently Viewed Products

Le widget  WooCommerce Recently Viewed Products affiche une liste des produits qu'un visiteur / client a précédemment consulté sur votre boutique.

Avec les paramètres WP Rocket par défaut, la liste sera mise en cache lors de la première visite, et la même sera montrée à tous les visiteurs, rendant le widget inutile et même renvoyant des résultats erronés.

Avec le mu-plugin ci-dessous, vous serez en mesure d'utiliser le widget avec la mise en cache sans aucun problème :

<?php
/**
 * Plugin Name: Dynamic Cache WooCommerce recently viewed products
 * Description: Create a specific cache for each value of woocommerce_recently_viewed cookie
 * Author:      WP Rocket team
 * License:     GNU General Public License v3 or later
 * License URI: http://www.gnu.org/licenses/gpl-3.0.html
 */

// Basic security, prevents file from being loaded directly.
defined( 'ABSPATH' ) or die( 'Cheatin&#8217; uh?' );

add_filter( 'rocket_htaccess_mod_rewrite' , '__return_false' );
add_filter( 'rocket_cache_dynamic_cookies', '__rocket_dynamic_cache_wc_recently_viewed_products' );

function __rocket_dynamic_cache_wc_recently_viewed_products( $dynamic_cookies ) {
	$dynamic_cookies[] = 'yith_wrvp_list_0';

    return $dynamic_cookies;
}

Si vous ne savez pas comment créer un MU-plugin, veuillez consulter notre doc :  Comment créer un Custom (MU) Plugin

Pour les utilisateurs connectés ! Rappelez-vous de désactiver le Cache Utilisateur de WP Rocket quand vous utilisez le plugin Recently Viewed Products. Pour les utilisateurs connectés, le cookie dynamique utilisé par le plugin est rattaché à l'ID utilisateur de l'utilisateur en cours. Par exemple, si l'ID utilisateur est 10, le nom du cookie sera yith_wrvp_list_10. Comme ce nouveau cookien'est pas inclus dans la liste d'exclusion de WP Rocket, la liste des produits récemment consultés sera mise en cache.