Ce billet d'adresse aux utilisateurs de WordPress confrontés à des plugins qui ne fonctionnent pas ou mal chez eux ou qui fonctionnaient très bien avant de devenir inopérants. Si vous ne comprenez pas pourquoi alors lisez la suite. Vous serez mieux armés pour discuter avec les agences web, les freelance.
WordPress est un logiciel libre au départ conçu pour réaliser blogs puis des sites internet. Il a été développé de manière à être extensible à l’aide de plugins (extensions / modules / greffons). Un plugin c’est un programme qui vient se brancher à un autre programme (il faut que ce premier ait été conçu pour les accepter) pour venir lui ajouter de nouvelles fonctionnalités. Ça rend les possibilités infinies. Naturellement, WordPress s'est ouvert à de nouveaux usages. Une boutique en ligne, par ligne exemple, c’est un site Internet avec des spécificités bien précises (un catalogue produit, un panier, des modes de paiement, de transport, etc). Des développeurs se sont mis à créer des plugins pour rajouter toutes ces fonctionnalités à WordPress. Le plus connu et probablement le plus abouti, c’est Woocommerce.
Mais le e-commerce, c’est vaste. Il existe plein de solutions de paiement, de transporteur, d’idée de marketing etc. Les développeurs de Woommerce ne veulent et ne peuvent pas tout développer et maintenir. Ils ont donc rendu Woocommerce extensible lui-même à l’aide de plugins. Là encore, des développeurs créent des modules pour venir enrichir les fonctionnalités de Woocommerce. J'ai pris l'exemple du e-commerce mais on pourrait en prendre d'autres : la formation en ligne, l'amélioration du référencement, etc. Les plugins peuvent être extensibles eux-mêmes. On peut donc se retrouver avec une liste de plugins finalement "chainés" les uns aux autres.
Chacun reposant sur l’autre, si un des maillons supérieurs vient à changer un élément qui est utilisé par un des maillons en dessous alors on comprend tout à fait pourquoi ça peut poser un problème. Plus la chaîne est longue et plus les risques sont importants.
Mais, ce n'est pas tout. Plusieurs plugins peuvent intervenir sur le même maillon. Par exemple on peut avoir un plugin qui modifie une fonctionnalité A de woocommerce pour en faire une fonctionnalité B et un autre qui transforme la même fonctionnalité A de woocommerce en C. Le problème c'est qu'une fois que le premier plugin aura modifié A en B alors A n'existera plus. Quand le second plugin va se lancer alors il ne pourra plus modifier A en B. Le second plugin ne pourra donc pas faire son travail comme prévu. Je schématise le fonctionnement volontairement pour faciliter la compréhension.
Des milliers de plugins existent et chaque installation de WordPress utilise des plugins différents, des combinaisons différentes et un nombre de plugins différents. Les combinaisons sont infinies et il est donc impossible pour les développeurs de prévoir à l'avance tous les conflits possibles. En plus, chacun de ces plugins peut évoluer, être mis à jour donc ce qui marche à un instant T ne marchera peut plus après une mise à jour. Une des clés, c'est de n’installer que le minimum de plugins nécessaires. Moins il y en a et moins les risques sont nombreux, logique.
Mais, les soucis peuvent tout de même se produire. Il faut donc intervenir quand un conflit fait son apparition. Une des solutions pourraient être de tenter de remplacer un plugin par un autre équivalent en espérant qu'il ait été conçu différemment et que le conflit disparaisse. Ce n'est pas toujours une bonne idée si l'outil que vous utilisiez était plus adapté à vos besoins. Et, de toutes façons, vous ne trouverez pas forcément un équivalent. Il faudra donc souvent intervenir techniquement. Ces interventions peuvent coûter du temps et de l'argent et on peut trouver que c'est fastidieux.
La solution serait de développer l'ensemble de la chaîne de A-Z. En maîtrisant tout, on peut facilement éviter ce genre de problèmes. Mais ... Développer l'ensemble de ces maillons depuis une page blanche prendrait des mois de développements et coûterait plusieurs dizaines de milliers d'euros. J’ai eu l’occasion de développer une solution e-commerce libre, Thelia, en 2005 (avec les modules de paiements, de transport, etc). Je peux vous dire que c’est très long. En 2005, les solutions libres existantes n’étaient pas assez robustes pour ce qu’on voulait faire et modifier les solutions existantes (pas conçues pour être très évolutives) aurait été encore plus compliqué. Dommage sinon on aurait opté pour cette méthode.
Le logiciel libre, malgré ces besoins d’adaptations parfois, permet de construire des outils complexes, rapidement, et à moindre coût. C’est toujours trop cher pour celui qui paie mais ça reste bien moins cher que de démarrer de zéro. Sans logiciel libre, pas mal de structures ne pourraient tout simplement pas se lancer sur le web à cause des coûts. En s’appuyant sur du code réalisé par d’autres, il devient possible de créer seul ou avec de petites équipes des outils très puissants et efficaces.
J’espère que ces quelques informations vous auront éclairé.