Lorsqu’un plugin Divi est acheté via le marketplace d’Elegant Themes, puis réinstallé avec une licence à vie directement obtenue auprès de l’éditeur, un conflit peut survenir. C’est l’expérience vécue avec deux plugins populaires : Divi Toolbox et Divi Essential.
Le point de départ : une licence renouvelable sur le marketplace
Initialement, les plugins étaient installés via le marketplace d’Elegant Themes. Cela implique une gestion centralisée des mises à jour et des licences par Elegant Themes. Une fois la période de licence expirée, les mises à jour ne sont plus disponibles.
Changement de modèle : acquisition d’une licence à vie
Pour éviter le renouvellement annuel, les plugins ont été rachetés directement depuis les sites des éditeurs, avec une licence à vie. L’installation s’est faite via les fichiers ZIP téléchargés manuellement. Après activation des licences dans les paramètres des plugins, tout semblait en ordre.
Le problème persiste : Elegant Themes continue à contrôler les mises à jour
Malgré la nouvelle installation et les licences valides, WordPress continue à proposer les mises à jour via le marketplace d’Elegant Themes. Et ce, même si les plugins utilisent un système de mise à jour totalement indépendant basé sur Easy Digital Downloads (EDD).
Après analyse du code source de ces plugins, plusieurs éléments expliquent cette situation :
- Le plugin Divi Toolbox utilise bien une classe de mise à jour indépendante via une URL tierce.
- Le plugin Divi Essential contient une métadonnée
Update URI: https://elegantthemes.com, ce qui force WordPress à l’associer au marketplace.
Une solution efficace : bloquer les mises à jour du marketplace
Pour reprendre le contrôle sur les mises à jour et laisser le système d’origine fonctionner, une solution technique a été mise en place. Elle consiste à ajouter un filtre dans WordPress pour ignorer les mises à jour en provenance du marketplace pour un plugin donné.
Voici le code utilisé avec succès pour Divi Essential :
add_filter( 'site_transient_update_plugins', 'disable_divi_essential_marketplace_update' );
function disable_divi_essential_marketplace_update( $value ) {
if ( isset( $value->response['divi-essential/divi-essential.php'] ) ) {
unset( $value->response['divi-essential/divi-essential.php'] );
}
return $value;
}
Ce filtre, à insérer dans le fichier functions.php d’un thème enfant ou via un petit plugin personnalisé, permet de désactiver les mises à jour uniquement pour ce plugin. Le système de mise à jour du développeur (Divi Next, dans ce cas) continue de fonctionner normalement, à condition que la licence soit activée.
Si aucun thème enfant n’est présent (ce qui est de plus en plus fréquent), il est conseillé d’utiliser une extension comme « Code Snippets » pour insérer ce filtre sans modifier directement les fichiers du thème actif. En effet, toute modification dans le fichier functions.php d’un thème principal sera perdue lors d’une prochaine mise à jour de ce thème.
Contacter le support d’Elegant Themes en complément
Bien que la solution via filtre PHP soit fonctionnelle, il est également possible de contacter le support Elegant Themes pour leur demander de retirer l’association du plugin avec le compte client. Cela permettrait d’éviter le besoin de maintenir le filtre dans le temps.
Le support a été contacté à ce sujet, mais une réponse est encore en attente.
Conclusion : une logique à deux vitesses
Ce type de conflit est le résultat d’une gestion croisée des licences : Elegant Themes conserve la mémoire des achats passés, même si le plugin a depuis été remplacé par une version autonome. C’est une situation frustrante mais contournable.
Pour toute personne confrontée à ce type de problème, la solution PHP présentée ici est immédiatement applicable. Et en cas de doute ou de difficulté, ne pas hésiter à nous contacter pour une aide ciblée.





0 commentaires