Comment résoudre les problèmes causés par les plugins de cache et d'optimisation
Dans ce document
Temps de lecture : 4 minutes | Difficulté : Débutant
Vue d’ensemble
Les plugins de mise en cache et les caches d’hébergement web accélèrent votre site en sauvegardant une copie de chaque page et en la servant aux visiteurs suivants. Les plugins d’optimisation vont plus loin en minifiant, combinant ou retardant le JavaScript de votre site. Les deux sont bénéfiques pour les performances, mais ils peuvent interférer avec les formulaires de paiement s’ils sont configurés de manière trop agressive.
Depuis WP Simple Pay 4.17.5, les formulaires de paiement fonctionnent sur des pages entièrement mises en cache. Chaque formulaire charge ses paramètres et un nouveau jeton de sécurité de votre site à l’ouverture de la page, de sorte que la copie mise en cache de la page ne contient plus d’éléments susceptibles d’expirer. Vous n’avez plus besoin d’exclure vos pages de formulaire de paiement de la mise en cache.
Ce guide couvre les deux éléments qui nécessitent encore une attention particulière : exclure vos pages de confirmation de paiement de la mise en cache et exclure les scripts de WP Simple Pay des optimisations JavaScript.
Prérequis
- WP Simple Pay 4.17.5 ou version ultérieure. Sur les versions antérieures, les pages de formulaire de paiement doivent également être exclues de la mise en cache, ou mises en cache pendant 12 heures maximum.
- Accès aux paramètres de votre plugin de mise en cache ou d’optimisation, ou à l’équipe de support de votre hébergeur si le cache s’exécute sur le serveur.
Mise en cache
Pages de formulaire de paiement
Sur WP Simple Pay 4.17.5 et versions ultérieures, les pages contenant un formulaire de paiement peuvent être mises en cache comme n’importe quelle autre page. Lorsqu’un visiteur ouvre la page, chaque formulaire récupère ses propres données de l’API REST de votre site. Le bouton de paiement reste désactivé jusqu’à ce que le formulaire soit prêt, de sorte qu’un clic prématuré ne peut pas soumettre un formulaire incomplet.
Si vous avez exclu vos pages de formulaire de paiement de la mise en cache sur une version antérieure, vous pouvez laisser l’exclusion en place ou la supprimer. Les deux fonctionnent.
Mise à jour récente ? Videz la mise en cache de votre site une fois après la mise à jour vers la version 4.17.5. Les pages mises en cache avant la mise à jour contiennent toujours l’ancien code du formulaire jusqu’à ce qu’elles soient rafraîchies.
Pages de confirmation de paiement
Gardez vos pages de succès et d’échec de paiement exclues de la mise en cache. Ces pages affichent les détails d’un paiement spécifique, de sorte que chaque client doit recevoir une page fraîchement générée.
Avec certains hébergeurs, le cache s’exécute sur le serveur et ne peut pas être modifié depuis WordPress. Dans ce cas, contactez votre hébergeur et demandez-lui d’exclure les URL de vos pages de confirmation de la mise en cache.
Configurer des plugins spécifiques
- WP Rocket
- SiteGround Optimizer
- WP-Optimize
- WP Fastest Cache
- WP Super Cache
- W3 Total Cache
- LiteSpeed Cache
Optimisation JavaScript
Les problèmes JavaScript causés par les plugins d’optimisation proviennent généralement des fonctionnalités suivantes :
- Minifier
Supprime les caractères inutiles du code, tels que les espaces blancs, pour produire un fichier plus petit. - Combiner
Fusionne plusieurs fichiers JavaScript en un seul pour réduire le nombre de requêtes effectuées au serveur. - Charger en différé/asynchrone
Retarde le chargement ou l'exécution des fichiers JavaScript afin que la page n'ait pas à attendre.
Excluez les fichiers suivants de tous les paramètres d'optimisation JavaScript, quel que soit le plugin que vous utilisez :
js.stripe.com/v3/
simpay-public-shared.js
simpay-public-upe.js
accounting.min.js
simpay-public-pro-upe.js
Quelle optimisation doit rester en place
Les formulaires de paiement nécessitent un petit ensemble de paramètres de site avant de pouvoir être chargés : l'adresse de l'API REST de votre site, le format de votre devise et le message affiché lorsqu'un formulaire ne peut pas être chargé. WP Simple Pay imprime ces paramètres dans deux endroits :
- Dans le HTML de chaque formulaire de paiement, dans l'attribut
data-simpay-generaldu formulaire. Cette copie fait partie du formulaire lui-même, elle est donc mise en cache avec la page. - Dans un petit script à la fin de la page,
<script id="simpay-shared-js-extra">, qui définitspGeneral.
Depuis WP Simple Pay 4.17.6, un formulaire se charge tant que l'une des deux copies est présente sur la page. Certains plugins d'optimisation suppriment ou retardent les petits scripts en ligne comme le second, et le formulaire utilise désormais sa propre copie lorsque cela se produit.
Pour que les formulaires de paiement fonctionnent, assurez-vous que votre plugin d'optimisation ne :
- Supprime les attributs HTML de la balise
<form>du formulaire de paiement, en particulierdata-simpay-form-idetdata-simpay-general. - Supprime à la fois l'attribut
data-simpay-generalet le scriptsimpay-shared-js-extra. Si les deux sont absents, le formulaire ne peut pas se charger.
Configurer des plugins spécifiques
Dépannage
« Ce formulaire de paiement n'a pas pu être chargé »
Si les visiteurs voient Ce formulaire de paiement n'a pas pu être chargé. Veuillez actualiser la page et réessayer. sous le bouton de paiement, le formulaire n'a pas pu récupérer ses données de votre site. Ceci est généralement causé par quelque chose qui bloque l'API REST de votre site :
- Un plugin de sécurité ou de pare-feu, ou une règle de serveur telle que ModSecurity, bloque les requêtes vers
/wp-json/. Voir Comment résoudre le problème « Aucune route n'a été trouvée correspondant à l'URL et à la méthode de requête ». - Le visiteur a atteint la limite de requêtes. Voir Comment gérer le message « Désolé, vous avez effectué trop de requêtes ».
- Le formulaire de paiement n'est pas publié. Les formulaires ne se chargent sur le front-end que lorsqu'ils sont publiés.
Erreurs de jeton de sécurité
Des erreurs telles que Vérification de sécurité du coupon échouée ou Le nonce du cookie est invalide étaient auparavant causées par des pages mises en cache contenant des jetons de sécurité expirés. Depuis la version 4.17.5, les formulaires récupèrent un nouveau jeton à chaque chargement, et les jetons expirés sur les requêtes des invités sont récupérés automatiquement. Si vous voyez toujours ces erreurs après la mise à jour, videz le cache de votre site. Voir Comment résoudre l'erreur « Vérification de sécurité du coupon échouée » pour plus d'informations.
Questions fréquemment posées
Dois-je toujours exclure les pages de formulaire de paiement de la mise en cache ?
Non, pas sur WP Simple Pay 4.17.5 ou une version ultérieure. Vous devez toujours exclure vos pages de confirmation de paiement.
J'ai du code personnalisé qui lit window.spGeneral. Est-ce que cela fonctionne toujours ?
Oui. Lorsque le script du pied de page est présent, window.spGeneral est défini par celui-ci, comme avant. Lorsqu'un plugin d'optimisation a supprimé ce script, WP Simple Pay définit window.spGeneral à partir de l'attribut data-simpay-general du formulaire de paiement dès que ses scripts se chargent, de sorte que votre code voit les mêmes valeurs.
J'ai du code personnalisé qui lit window.simplePayForms. Est-ce que cela fonctionne toujours ?
Oui. L'objet est toujours disponible, et l'entrée de chaque formulaire est ajoutée au fur et à mesure que les données de ce formulaire arrivent. Si votre code s'exécute dès le chargement de la page, il devra peut-être attendre que le formulaire ait fini de se charger.
Et ensuite ?
- Comment configurer les paramètres de WP Rocket – Paramètres étape par étape pour WP Rocket
- Comment définir les pages de succès et d'échec de paiement – Choisissez les pages sur lesquelles les clients atterrissent après avoir payé
- Comment tester les conflits de thèmes et de plugins – Découvrez si un autre plugin cause le problème
Vous avez encore des questions ? Nous sommes là pour vous aider !
Dernière modification :