FOX et WP Rocket : le convertisseur de devises ne fonctionne pas avec le cache
WP Rocket et un changeur de devise entrent en collision de manière prévisible, et la solution n'est jamais « exclure le plugin de l'optimisation » — c'est le conseil qui circule et il ne sert généralement à rien.
Ce qui se casse vraiment
FOX écrit un petit script en ligne dans la page contenant la devise actuelle du visiteur et les taux. Le script principal, front.js, lit ces variables lorsqu'il s'exécute. Les options Retarder l'exécution de JavaScript et Charger JavaScript en différé de WP Rocket reportent toutes deux ce bloc en ligne — donc front.js s'exécute en premier, ne trouve rien, et les prix ne sont jamais redessinés. La console du navigateur affiche woocs_current_values is not defined.
C'est pourquoi exclure front.js de l'optimisation n'aide pas : le fichier n'a jamais été le problème. C'était le bloc en ligne avant lui.
Les réglages qui résolvent le problème
- Dans Optimisation des fichiers, ajoutez le script en ligne du plugin aux exclusions pour Retarder l'exécution de JavaScript, pas seulement le fichier. WP Rocket accepte une chaîne qui apparaît dans le code en ligne — woocs fonctionne.
- Laissez Combiner les fichiers JavaScript désactivé pendant vos tests. La combinaison déplace le bloc en ligne par rapport au fichier et réintroduit le même problème de concurrence.
- Dans les réglages de FOX, activez l'option Cache. Cela indique au plugin que la page qu'il redessine provient d'un cache.
- Réglez Stockage sur Transient. À partir de la v.2.5.0, cette combinaison conserve la clé dans le localStorage du navigateur au lieu de définir un cookie, et un cookie sur la première requête est ce qui fait qu'un cache agressif traite chaque page comme personnelle.
Pages qui ne doivent jamais être mises en cache
Les pages panier, commande et compte. WP Rocket les exclut par défaut, mais une page de commande personnalisée créée par un thème ou un plugin de commande n'est souvent pas sur cette liste. Vérifiez-le.
Si les prix sont toujours incorrects après les quatre étapes, la cause n'est généralement pas WP Rocket du tout — lisez pourquoi un changeur de devise et un cache de page se battent mutuellement pour avoir une vue d'ensemble, y compris la mise en cache au niveau du CDN qui se situe au-dessus de WP Rocket.
Référence : la discussion originale se trouve sur notre forum de support.