Personnaliser la page panier de WooCommerce avec les hooks

Personnaliser la page panier de WooCommerce avec les hooks

Pour ajouter un texte, une image ou un bloc complet dans la page panier de WooCommerce, on utilise les hooks : des emplacements prévus par WooCommerce où l’on accroche son propre contenu avec quelques lignes de PHP. Combinés à un modèle Elementor, ils permettent d’insérer une vraie mise en page, à l’endroit exact voulu. Une condition : utiliser le panier classique.

En bref

  • Un hook est un emplacement nommé où l’on peut ajouter du contenu sans modifier WooCommerce.
  • La page panier en compte une vingtaine : au-dessus du tableau, sous les totaux, près du bouton de commande…
  • Un code court passe par do_shortcode() pour afficher un modèle Elementor.
  • Les hooks fonctionnent avec le panier classique ; le bloc Panier, par défaut sur les boutiques récentes, ne les utilise pas.

Qu’est-ce qu’un hook ?

Un hook est un point d’accroche prévu par le développeur d’une extension, ici WooCommerce. Il permet d’ajouter du contenu ou de modifier un comportement à un moment précis, sans toucher aux fichiers de l’extension. Votre code survit donc aux mises à jour.

Panier classique ou bloc Panier ?

Depuis WooCommerce 8.3, les nouvelles boutiques utilisent par défaut le bloc Panier. Il ne déclenche pas ces hooks : on le personnalise dans l’éditeur de blocs. Les hooks s’appliquent au panier classique, celui du code court [woocommerce_cart], toujours maintenu par WooCommerce. Si votre page panier contient le bloc, remplacez-le par un bloc Code court contenant [woocommerce_cart].

Les hooks de la page panier

Dans l’ordre d’affichage :

  • woocommerce_before_cart
  • woocommerce_before_cart_table
  • woocommerce_before_cart_contents
  • woocommerce_cart_contents
  • woocommerce_cart_coupon
  • woocommerce_after_cart_contents
  • woocommerce_after_cart_table
  • woocommerce_cart_collaterals
  • woocommerce_before_cart_totals
  • woocommerce_cart_totals_before_shipping
  • woocommerce_before_shipping_calculator
  • woocommerce_after_shipping_calculator
  • woocommerce_cart_totals_after_shipping
  • woocommerce_cart_totals_before_order_total
  • woocommerce_cart_totals_after_order_total
  • woocommerce_proceed_to_checkout
  • woocommerce_after_cart_totals
  • woocommerce_after_cart

Exemple 1 : ajouter un simple texte

Pour afficher un texte au-dessus du total du panier, on utilise woocommerce_before_cart_totals. Ajoutez ce code dans le fichier functions.php de votre thème enfant (sinon il sera écrasé à la prochaine mise à jour du thème), ou dans l’extension Code Snippets :

add_action( 'woocommerce_before_cart_totals', 'wycan_texte_avant_total_panier' );
function wycan_texte_avant_total_panier() {
    echo '<p>Livraison offerte dès 60 € d\'achat.</p>';
}

La première ligne indique le hook ; le texte entre guillemets est celui qui s’affiche. Résultat :

Page panier WooCommerce avec un texte personnalisé affiché juste au-dessus du bloc Total panier
Le texte s’affiche juste au-dessus du total du panier.

Exemple 2 : insérer un modèle Elementor

Un texte, c’est bien. Deux colonnes avec une image et un bouton, c’est mieux. Avec Elementor Pro, chaque modèle de votre bibliothèque a un code court de la forme .

1. Créer le modèle

Dans Modèles, puis Ajouter, créez un modèle de type Section (ou Conteneur), composez le contenu voulu et publiez-le. Sur la liste des modèles, copiez son code court, dans la colonne de droite.

2. L’insérer avec un hook

Pour placer le modèle entre le tableau des produits et le total, on utilise woocommerce_after_cart_table. Un code court ne s’interprète pas tout seul dans du PHP : il faut le passer à do_shortcode().

add_action( 'woocommerce_after_cart_table', 'wycan_modele_apres_tableau_panier' );
function wycan_modele_apres_tableau_panier() {
    echo do_shortcode( '[elementor-template id="701"]' );
}

Remplacez 701 par l’identifiant de votre modèle, enregistrez, puis rechargez la page panier.

Page panier WooCommerce avec un bloc promotionnel Elementor, une image de t-shirt, un titre et un bouton, inséré entre le tableau des produits et le total
Un modèle Elementor inséré entre le tableau des produits et le total.

Sans Elementor Pro

Le principe reste le même avec n’importe quel code court : celui d’un formulaire, d’un bloc réutilisable ou de la bibliothèque de votre thème. Le thème OceanWP, par exemple, fournit un code court pour chaque élément de sa bibliothèque.

Plusieurs ajouts sur la même page

Vous pouvez accrocher autant de contenus que vous voulez, sur des hooks différents ou sur le même. Une seule règle : chaque fonction doit avoir un nom unique. Deux fonctions du même nom provoquent une erreur fatale et rendent le site inaccessible. Préfixez-les, comme ici avec wycan_.

Vous voulez un panier qui pousse à l’achat : livraison offerte, produits complémentaires, réassurance ? On conçoit des boutiques WooCommerce sur mesure, ou parlons de votre boutique.

Sommaire
À lire aussi

D’autres articles qui peuvent vous servir

Facturation électronique WooCommerce : comment mettre votre boutique en conformité

Facturation électronique WooCommerce : comment mettre votre boutique en conformité

Lire l’article →
Cookies et consentement : pourquoi une simple bannière ne suffit plus

Cookies et consentement : pourquoi une simple bannière ne suffit plus

Lire l’article →
Bouton de rétractation WooCommerce : le guide pour se conformer à l’article L221-21

Bouton de rétractation WooCommerce : le guide pour se conformer à l’article L221-21

Lire l’article →

Un projet, une question ?

Devis gratuit · Acompte remboursable · Solde si satisfait · Sans engagement