2026 : un thème enfant écrit à l’époque de WooCommerce 4 accumule désormais plusieurs années d’ajustements successifs, sans jamais avoir été audité contre les dépréciations introduites depuis. C’est la situation d’un développeur de maintenance chargé de faire remonter ce thème à la dernière version majeure de WooCommerce, sans repartir d’une réécriture complète, trop coûteuse pour ce projet.
La bonne nouvelle : WooCommerce ne supprime que rarement une fonction du jour au lendemain sans période de transition. La fonction interne wc_deprecated_function(), appelée systématiquement lorsqu’une fonction obsolète est encore utilisée, enregistre un avertissement exploitable pour prioriser le travail de mise à jour.
Faire remonter les avertissements de dépréciation avant toute chose
La première étape, avant même de lire le journal des modifications de la nouvelle version, consiste à activer le mode débogage de WordPress avec journalisation des avertissements dans un fichier, plutôt qu’un affichage direct qui casserait l’apparence du site en production :
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Une navigation complète du site, page par page, avec ce réglage actif, remplit le fichier debug.log d’entrées explicites indiquant chaque fonction dépréciée appelée, le fichier et la ligne d’origine dans le thème. Cette liste devient la base de travail concrète, bien plus fiable qu’une lecture générale du journal des modifications qui ne dit rien de ce que ce thème précis utilise réellement.
Classer les dépréciations par ordre d’impact réel
Toutes les fonctions dépréciées ne se valent pas. Certaines continuent de fonctionner normalement malgré l’avertissement, simplement redirigées en interne vers leur remplaçante, ce qui laisse du temps. D’autres cessent purement et simplement de produire un résultat, cassant visuellement une partie du site sans avertissement clair côté utilisateur final.
- Impact faible : fonction encore fonctionnelle, simplement relayée vers son remplacement, comme d’anciens alias de fonctions de formatage de prix.
- Impact moyen : hook renommé ou fusionné avec un autre, qui continue de se déclencher mais avec des paramètres différents, cassant un callback qui attend l’ancienne signature.
- Impact fort : surcharge de gabarit dans le dossier
woocommerce/du thème, devenue incompatible avec la structure du nouveau gabarit d’origine, produisant un affichage cassé ou incomplet.

Les surcharges de gabarits, le point le plus fragile d’un vieux thème
Un thème enfant ancien copie généralement plusieurs fichiers du dossier templates/ de WooCommerce dans son propre dossier woocommerce/, pour personnaliser l’affichage du panier, de la fiche produit ou du récapitulatif de commande. Ces copies figent la structure du gabarit au moment où elles ont été créées : si WooCommerce modifie la structure interne du gabarit d’origine dans une version majeure ultérieure, la copie surchargée dans le thème continue d’utiliser l’ancienne structure, potentiellement incompatible avec les nouveaux hooks ou variables attendus par le reste du code.
Comparer systématiquement chaque surcharge avec le gabarit d’origine
WooCommerce affiche justement un avertissement dans le tableau de bord, sous Statut WooCommerce puis Modèles, lorsqu’un fichier surchargé dans le thème diverge de la version d’origine incluse dans l’extension. Cet écran liste précisément les fichiers concernés et leur version respective, ce qui permet de cibler l’audit sur les seuls fichiers réellement à risque plutôt que de comparer l’intégralité du dossier templates/.
Ce qui ne doit surtout pas être corrigé en urgence sans test
Face à une longue liste d’avertissements, la tentation consiste à corriger d’un coup toutes les occurrences trouvées dans le journal de débogage. C’est risqué : certaines fonctions dépréciées ont changé de signature d’arguments, pas seulement de nom, et un remplacement mécanique sans vérification de la nouvelle signature peut introduire une erreur fatale plus grave que l’avertissement initial. Chaque remplacement doit être testé isolément, avec un jeu de données de test proche du réel, avant d’être déployé.
Pour aller plus loin
Auditer un vieux thème face à une montée de version majeure de WooCommerce se résume à une discipline simple : activer la journalisation des dépréciations, trier les résultats par impact réel plutôt que par ordre d’apparition dans le journal, et traiter en priorité les surcharges de gabarits, point de rupture le plus fréquent. Ce travail méthodique évite la réécriture complète du thème tout en garantissant une compatibilité durable avec les prochaines montées de version.