WooCommerce Notices Fix : Corrigez votre thème sans y toucher

20. octobre 2014 Front-end, Plugins 8
WooCommerce Notices Fix : Corrigez votre thème sans y toucher

WooCommerce Notices Fix est un plugin WordPress gratuit permettant d’empêcher les plugins de cache comme WP Rocket de mettre en cache les notices.

J’en ai besoin ??

Vous en avez besoin si votre thème utilise les hooks woocommerce_before_shop_loop ou  woocommerce_before_single_product .

Si vous ne savez pas, alors peut-être votre thème est « WooCommerce Ready/Compatible » et il y a de fortes chances que vous ayez besoin !

C’est un fix, pourquoi ne pas proposer un patch ?

Un patch est peut-être possible, mais dans l’attente d’une revue de ma demande, puis de la résolution, pourquoi s’en priver ? Il serait dommage de voir ces messages mis en cache inutilement …

Oui alors justement, ça fait quoi ?

Et bien quand vous ajoutez un item dans votre panier, la page se recharge et une notice vous dit « Foobar a bien été ajouté dans votre panier« .

Ce message là ne pose pas de problème car il est affiché lors d’une requête HTTP POST, ces requêtes ne sont (normalement) pas mises en cache par les plugins.

Donc le message apparait, n’est pas stocké en cache, puis disparait lors du rechargement ou changement de page.

Le soucis vient de la suppression d’un item (en tout cas, pour mon cas).

Cette suppression est faite via une requête HTTP GET sans paramètre, et donc, la mise en cache est possible.

Cependant, si je me trouve sur un objet du site que je souhaite acheter, je serais dans le cache, lors de la recharge de la page, je vais encore lire le cache et je n’aurais donc pas la notice (bug #1).

WooCommerce va alors garder en mémoire cette notice jusqu’à son affichage, et il va TOUTES les garder …

Elles seront alors affichées lorsque le code PHP sera interprété, et … mise en cache … avec toutes les notices … (bug #2).

Logique, mais dommage !!

Ok, c’est quoi ton fix ?

Mon fix est simple, je vérifie si WooCommerce doit afficher des notices, celles qu’il a gardé en mémoire et si c’est le cas, je recharge cette même page en y ajoutant le paramètre  ?woonotice=yes .

Le nom du paramètre est arbitraire, le but est juste d’ajouter un paramètre à la requête HTTP GET, car dans ce cas, les plugins de cache ne mettent pas (normalement) cette requête en cache !!

Les notices ont été lues de suite, pas de mises en cache, et une fois lues, WooCommerce les supprime. Bingo :)

Et vous, votre thème est-il compatible WooCommerce ? Avez-vous déjà eu ce bug sans savoir le résoudre ?

Lire la suite

Vous aimez ? Partagez !

Abonnement gratuit à 0€


8 thoughts on “WooCommerce Notices Fix : Corrigez votre thème sans y toucher”

  • 1
    Greg on 20 octobre 2014 Répondre

    Cette suppression est faite en GET, et donc, la mise en cache est possible.

    Le nom du paramètre est arbitraire, le but est juste d’ajouter un paramètre, car dans ce cas, les plugins de cache ne mettent pas (normalement) cette requête en cache !!

    Contradiction :|
    Dis, Cap’tain, je rate quoi ?

    • 2
      Julio Potier on 20 octobre 2014
      Ce n’étais pas clair, article modifié :)
      Merci
    • 3
      Greg on 21 octobre 2014
      En effet c’est plus clair comme ça.
      Merci Cap’tain :)
  • 4
    Camille on 19 juin 2015 Répondre
    Merci infiniment ! Tu viens de me sauver la vie :)
    Je monte actuellement une boutique marchande dans le cadre de mon alternance et après des heures de recherche sur Google pour régler mes problèmes de panier, j’avais failli abandonner jusqu’à ce que je tombe sur ton fix !
  • 5
    Je vous remercié pour le partage de article,l’article est vraiment bon et intéressant.
  • 6
    salle de sport lille on 22 septembre 2016 Répondre
    Très intéressant, un article de très bon qualité.
  • 7
    demenagement tunisie on 18 octobre 2016 Répondre
    Excellent article, merci pour le partage
  • 8
    gravure laser on 21 octobre 2016 Répondre
    J’aime beaucoup votre article, merci pour le partage

Laisser un commentaire

Avant de parler, merci de lire la charte des commentaires.

Utiliser le tag [php][/php] pour ajouter du code ou utilisez un service comme pastebin.com.
Cibler un commentateur avec un "@", merci à Mention Comments Authors !