Passer des shortcodes aux blocs de panier et de commande sur WooCommerce
Depuis WooCommerce 8.3, sorti le 14 novembre 2023, les pages Panier et Commande utilisent par défaut des blocs Gutenberg sur les nouvelles installations, à la place des shortcodes historiques [woocommerce_cart] et [woocommerce_checkout]. Les shortcodes restent pris en charge en solution de repli : rien n’oblige à migrer dans l’urgence.
Ce que les blocs changent par rapport aux shortcodes
Les shortcodes [woocommerce_cart] et [woocommerce_checkout] génèrent le tunnel d’achat en PHP côté serveur, avec un rendu HTML classique. Les blocs de panier et de commande fonctionnent différemment : l’interface s’appuie sur React côté navigateur, qui communique avec le site via l’API du Store WooCommerce plutôt que par rechargement complet de page à chaque étape. Le résultat visuel pour l’acheteur reste un tunnel de commande classique, mais le mécanisme technique sous-jacent change entièrement.
Il est possible de revenir au shortcode à tout moment via le bouton de transformation disponible dans la barre d’outils du bloc, ce qui laisse une marge de manœuvre si une extension bloque la migration.
Pourquoi une personnalisation du tunnel de commande peut ne plus s’appliquer
- Un hook ou un filtre PHP classique qui modifiait l’affichage du panier ou de la commande shortcode (par exemple pour ajouter un champ, un message, ou réorganiser des sections) ne s’applique pas automatiquement aux blocs : l’architecture React n’exécute pas ce code PHP au moment du rendu, une réécriture est souvent nécessaire via les points d’extension propres aux blocs (filtres JavaScript, API du Store).
- Une extension de paiement ou de livraison qui ne déclare pas explicitement sa compatibilité avec les blocs peut ne pas apparaître comme moyen de paiement disponible côté panier ou commande en blocs, même si elle fonctionne normalement avec les shortcodes.
- Un thème qui surchargeait fortement le CSS ou les templates PHP du tunnel de commande shortcode (fichiers dans woocommerce/checkout/) voit ces personnalisations sans effet sur les blocs, qui utilisent leurs propres gabarits.
Comment je conduis la bascule vers les blocs
-
Identifier le mode actuel du site
Je vérifie si les pages Panier et Commande utilisent encore les shortcodes historiques ou déjà les blocs, notamment sur un site créé avant novembre 2023 qui n’a pas basculé automatiquement.
-
Tester les extensions concernées avant bascule
Je vérifie sur un environnement de test que chaque extension de paiement et de livraison active fonctionne avec les blocs et déclare sa compatibilité, avant toute bascule en production.
-
Recenser les personnalisations existantes
Je liste les hooks PHP et surcharges de template qui modifient le tunnel de commande shortcode, pour identifier lesquels doivent être réécrits pour les blocs.
-
Bascule et réécriture ciblée
J’active les blocs et je réécris uniquement les personnalisations qui ne s’appliquent plus, via les points d’extension propres aux blocs plutôt qu’en reproduisant l’ancien mécanisme.
-
Solution de repli si blocage
Si une extension critique n’est pas compatible, je reconvertis le bloc concerné en shortcode via la barre d’outils, ce qui permet de repousser la migration de cette page sans bloquer le reste du site.
Pour aller plus loin
-
Migrer WooCommerce vers le stockage haute performance des commandes
Un changement de la même période de WooCommerce, avec sa propre logique de compatibilité côté extensions.
-
Résoudre un problème de paiement WooCommerce
Si une extension de paiement ne s’affiche plus après la bascule vers les blocs, c’est souvent ici que je commence le diagnostic.
-
Mettre à jour WooCommerce vers une version majeure
Les blocs panier et commande font partie des changements à vérifier avant une montée de version majeure.
-
Hub migration WordPress et WooCommerce
Toutes les migrations et montées de version que je traite sur WordPress et WooCommerce.
Décrivez votre besoin en 1 minute
Quelques questions ciblées pour que je vous réponde avec une estimation, pas avec un questionnaire de plus.