Passer le sélecteur de devises WooCommerce de Gratuit à Pro sans perdre les réglages
Pour faire passer le sélecteur de devises WooCommerce FOX de la version gratuite de WordPress.org à la version Pro, vous remplacez les fichiers du plugin, et rien d'autre. Les deux versions sont le même plugin avec les mêmes réglages ; la version gratuite n'ajoute que la limite de deux devises et les avis qui s'y rapportent. Vos devises, taux, règles GeoIP et prix fixes sont stockés dans la base de données et y restent. Voici comment les deux versions se rapportent l'une à l'autre, deux façons sûres de faire le passage, comment confirmer que la version complète est bien active, et que faire lorsque la limite de deux devises persiste ensuite.
Comment la version gratuite et la version complète se rapportent
La version gratuite et la version complète proviennent d'une même base de code. Elles utilisent le même dossier de plugin, wp-content/plugins/woocommerce-currency-switcher, le même nom dans la liste des extensions (FOX - Currency Switcher Professional for WooCommerce) et les mêmes numéros de version. Pour WordPress, il s'agit d'un seul plugin : elles ne fonctionnent donc pas côte à côte, et installer l'une à la place de l'autre revient à un remplacement.
La version gratuite ne se reconnaît qu'à sa limite et à ses avis :
- un lien Passer à Pro ! (Go Pro!) à côté de Réglages (Settings) et Documentation sous le plugin dans la liste des extensions ;
- une note jaune dans l'onglet Devises (Currencies) indiquant que, dans la version gratuite, vous ne pouvez utiliser que 2 devises ;
- Ajouter une devise au début (Prepend Currency) et Ajouter une devise à la fin (Append Currency) affichent un message sur la limite au lieu d'ajouter une ligne ;
- l'Assistant de devises (Currency Wizard) indique qu'il est désactivé dans la version gratuite.
Ce que vous avez configuré se trouve en dehors du dossier du plugin. Les devises et les taux forment l'option woocs, tous les autres réglages sont des options woocs_* (règles GeoIP, règles de paiement, designs de sélecteurs, options de stockage et de cache), et les prix fixes sont des métadonnées de produit comme _woocs_regular_price_EUR. FOX n'a aucune routine de désinstallation : supprimer les fichiers du plugin n'en efface donc rien. La version complète ne remet pas non plus de réglages aux valeurs par défaut : FOX n'écrit ses valeurs par défaut que la toute première fois qu'il s'exécute sur un site, et la base de données enregistre que cela a eu lieu.
Faites tout de même une sauvegarde de la base de données avant le passage. Cela prend une minute et couvre tout imprévu côté serveur.
Passer à la version complète sur place
C'est la façon la plus propre, car le plugin reste actif et aucun réglage n'est touché, même une seconde.
- Allez dans Extensions → Ajouter et cliquez sur Téléverser une extension.
- Choisissez le zip de la version complète et cliquez sur Installer maintenant.
- WordPress reconnaît le dossier et affiche Cette extension est déjà installée (This plugin is already installed), avec la version actuelle et la version téléversée côte à côte. Cliquez sur Remplacer l'actuelle par la version téléversée.
- Ouvrez WooCommerce → Réglages → Devise. Vos devises sont là, la note jaune sur les deux devises a disparu, et Ajouter une devise à la fin (Append Currency) ajoute des lignes.
Deux erreurs peuvent bloquer le téléversement :
- Aucune extension valide n'a été trouvée (No valid plugins were found) : le fichier que vous avez téléversé est un paquet qui contient le zip du plugin, et non le zip du plugin lui-même. Décompressez-le et téléversez le zip interne, comme décrit dans Je viens d'acheter le plugin et je n'arrive pas à l'installer.
- Le fichier téléversé dépasse la directive upload_max_filesize définie dans php.ini (The uploaded file exceeds the upload_max_filesize directive in php.ini) : le serveur refuse les fichiers de cette taille. Augmentez
upload_max_filesizeetpost_max_sizedans le panneau d'hébergement, ou utilisez la voie FTP ci-dessous.
Ou supprimer d'abord la version gratuite
Si vous préférez, désactivez FOX gratuit dans Extensions, cliquez sur Supprimer, puis téléversez la version complète et activez-la. La confirmation de WordPress demande s'il faut supprimer l'extension « et ses données » ; pour FOX, seuls les fichiers partent, pour la raison expliquée plus haut. Entre la suppression et l'activation, la boutique fonctionne sans sélecteur de devises : faites-le donc à une heure creuse.
Avec FTP ou le gestionnaire de fichiers de l'hébergeur, supprimez complètement le dossier wp-content/plugins/woocommerce-currency-switcher et téléversez à sa place le dossier de la version complète décompressée. Supprimez plutôt que d'écraser, afin qu'aucun ancien fichier ne subsiste.
Deux messages appartiennent à cette voie :
- Le dossier de destination existe déjà (Destination folder already exists) : le dossier de la version gratuite est toujours là. Si le plugin n'apparaît pas dans la liste des extensions, une tentative précédente a laissé le dossier : supprimez-le par FTP ou avec le gestionnaire de fichiers, puis installez de nouveau.
- L'extension n'a pas pu être activée car elle a généré une erreur fatale (Plugin could not be activated because it triggered a fatal error), avec Cannot declare class WOOCS_SESSION, because the name is already in use : deux copies de FOX sont installées dans des dossiers différents, par exemple parce que l'archive s'est décompressée dans un dossier portant un autre nom, et vous activez la seconde alors que la première est active. Toutes deux déclarent les mêmes classes PHP. Gardez une seule copie, dans le dossier nommé
woocommerce-currency-switcher, et supprimez l'autre.
Toujours seulement deux devises après la mise à niveau
Ne vous fiez pas au numéro de version : les deux versions portent les mêmes numéros. Cherchez plutôt les signes listés au début. S'ils sont toujours là, l'une de ces raisons en est la cause :
- Les fichiers de la version gratuite n'ont jamais été remplacés. Le téléversement a échoué, Annuler et revenir (Cancel and go back) a été cliqué, ou la version complète est allée dans un second dossier et est inactive. Deux entrées portant le même nom dans la liste des extensions signifient deux copies ; gardez la complète comme décrit plus haut.
- Un cache sert encore l'ancienne copie. De nombreux hébergeurs conservent des fichiers PHP compilés dans OPcache sans vérifier le disque à chaque requête : les fichiers remplacés peuvent donc continuer à s'exécuter un certain temps. Videz le cache de l'hébergeur ou redémarrez PHP depuis le panneau, videz tout cache de page, et rechargez la page des réglages avec Ctrl+F5 (voir comment réinitialiser le cache de page dans le navigateur).
- Une mise à jour a remis la version gratuite. Comme le dossier et les numéros de version sont identiques, WordPress peut considérer la version du répertoire WordPress.org comme une mise à jour de votre copie et la proposer sur l'écran des mises à jour. Si la limite est revenue juste après une mise à jour, téléversez de nouveau la version complète avec Remplacer l'actuelle par la version téléversée (Replace current with uploaded).
Une fois la version complète en marche, ajoutez des devises avec Ajouter une devise à la fin (Append Currency) : saisissez le code ISO (EUR, GBP), cliquez sur le bouton d'actualisation à côté du taux, vérifiez le symbole et cliquez sur Enregistrer les modifications (Save changes). L'Assistant de devises (Currency Wizard) en ajoute plusieurs à la fois avec Installer les devises sélectionnées (Install selected currencies). Si des devises récemment ajoutées disparaissent après l'enregistrement, la cause est une limite du serveur et non la version ; voir les réglages du sélecteur de devises ne s'enregistrent pas.
Travailler avec deux devises dans la version gratuite
La version gratuite conserve la devise de base de la boutique et une seule autre. Pour changer cette seconde devise, par exemple d'EUR à INR, ne supprimez pas la ligne : FOX a besoin d'au moins deux devises et rétablit sa paire par défaut lorsque moins de deux sont enregistrées. Saisissez plutôt le nouveau code dans la ligne existante, actualisez son taux, ajustez le symbole et enregistrez.
Ne touchez pas à la ligne marquée comme devise de base. À l'enregistrement, FOX écrit le code de cette ligne dans le réglage de devise propre à WooCommerce : la modifier change donc la devise de toute la boutique, tandis que les prix des produits gardent leurs chiffres.
Mettre à jour la version complète plus tard
Une version complète plus récente s'installe de la même façon : téléversez son zip et choisissez Remplacer l'actuelle par la version téléversée (Replace current with uploaded), ou supprimez puis réinstallez. Les réglages restent, pour la même raison que plus haut. Ce qui ne survit pas, c'est toute modification faite dans les fichiers du plugin eux-mêmes, car chaque fichier du dossier est remplacé. Conservez votre code personnalisé dans le functions.php du thème enfant ou dans un plugin d'extraits de code, en utilisant les hooks et fonctions documentés.
Liste de contrôle
- Sauvegarde de la base de données effectuée.
- Version complète téléversée sous forme de zip du plugin, avec Remplacer l'actuelle par la version téléversée (Replace current with uploaded) ou après suppression de la version gratuite.
- Une seule entrée FOX dans la liste des extensions, sans lien Passer à Pro ! (Go Pro!).
- Aucune note sur les deux devises dans l'onglet Devises (Currencies), et Ajouter une devise à la fin (Append Currency) ajoute bien une ligne.
- Cache de l'hébergeur et du navigateur vidés si les anciens écrans s'affichent encore.
Si la version complète est installée et que la limite est toujours là, ouvrez un sujet sur le forum de support de FOX en indiquant ce que la liste des extensions affiche pour FOX, et nous y jetterons un œil.