WPCS - WordPress Currency Switcher Professional

Afficher les prix en plusieurs devises sur WordPress sans WooCommerce

Pour afficher les prix en plusieurs devises sur WordPress sans WooCommerce, une page a besoin de deux choses : un sélecteur de devises pour le visiteur et des prix que le plugin a le droit de convertir. WPCS – WordPress Currency Switcher fournit les deux pour les articles, les pages, les types de contenu personnalisés et les widgets de n'importe quel site WordPress. C'est la seconde partie qui fait échouer la plupart des configurations : le plugin ne cherche pas les montants dans vos pages. Il ne convertit que les prix que vous affichez avec son shortcode. Configurez cela une fois, et chaque prix du site suit la devise du visiteur.

Comment WPCS convertit un prix

Vous écrivez chaque montant une seule fois, dans votre devise de base, à l'intérieur du shortcode [wpcs_price], par exemple [wpcs_price value=100]. Lorsque WordPress construit la page, le plugin multiplie le montant par le taux de change de la devise du visiteur et l'affiche avec le symbole, les décimales et les séparateurs de cette devise. Le choix du visiteur est mémorisé : tous les prix de toutes les pages s'affichent donc dans la même devise, jusqu'à ce qu'il en choisisse une autre.

Tout le reste de la page reste inchangé. Un prix saisi en texte brut (« à partir de 100 $ »), un champ de prix de votre thème ou un widget de tableau tarifaire d'un constructeur de pages n'est pas touché. Installer le plugin ou ajouter le sélecteur ne modifie aucun montant par lui-même. Si un nombre doit changer de devise, il doit être affiché par [wpcs_price], ou par les fonctions PHP du plugin dans un modèle.

Pour la même raison, WPCS ne modifie ni les prix des produits WooCommerce, ni le panier, ni la page de paiement, même si WooCommerce fonctionne sur le même site. Les boutiques ont besoin du plugin frère FOX – WooCommerce Currency Switcher ; la différence est expliquée dans WordPress Currency Switcher ou WooCommerce Currency Switcher.

Étape 1 : ajouter les devises et les taux de change

Installez et activez WPCS (il est disponible sur wordpress.org), puis ouvrez Réglages → Currency Switcher (Settings → Currency Switcher) dans l'administration WordPress. Dans l'onglet Devises (Currencies) :

  1. Ajoutez des devises avec Ajouter une devise (Add currency) ou l'Assistant de devises (Currency Wizard). Utilisez le code ISO 4217 comme nom de la devise : EUR, GBP, ZAR, et non « Euro » ou « Livre ». Les services de taux recherchent les devises par ce code : un code inventé n'obtient aucun taux. La FAQ sur l'ajout d'une nouvelle devise explique chaque champ de la ligne.
  2. Sélectionnez le bouton radio de votre devise de base. Son taux est 1, et chaque montant que vous saisissez dans [wpcs_price] est lu comme un montant dans cette devise. Décidez-en avant d'écrire les prix : changer la devise de base plus tard ne réécrit pas les nombres déjà présents dans vos shortcodes.
  3. Récupérez les taux. Dans l'onglet Options, choisissez un Agrégateur de devises (Currency aggregator). Yahoo et la Banque centrale européenne fonctionnent sans clé ; Currencyapi, Open exchange rates, Currencylayer et Fixer en demandent une dans Clé API de l'agrégateur (Aggregator API key). De retour dans Devises (Currencies), cliquez sur Mettre à jour tous les taux (Update all rates) ou saisissez les taux à la main. Une ligne nouvellement ajoutée démarre avec un taux de 0, et une devise dont le taux est 0 affiche chaque prix à 0.00.
  4. Choisissez la fréquence d'actualisation des taux dans Mise à jour automatique des taux (Rate auto update) de l'onglet Options, puis cliquez sur Enregistrer les options (Save options). Si les taux ne sont pas actualisés, lisez pourquoi la mise à jour automatique des taux ne fonctionne pas.

Chaque ligne de devise définit aussi la position du symbole, les centimes, les décimales et le format des nombres : un même prix peut ainsi s'écrire € 1.250,00 en euros et $1,250.00 en dollars.

Étape 2 : afficher le sélecteur de devises

Les visiteurs ont besoin d'un moyen de choisir une devise. Utilisez l'un de ces éléments, ou plusieurs :

  • Le shortcode [wpcs] n'importe où dans le contenu. Des attributs comme show_flags=0, width='300px' et txt_type='desc' permettent de l'ajuster ; voir la référence du shortcode [wpcs]. L'aspect de la liste déroulante se règle dans Affichage de la liste déroulante (Drop-down view) de l'onglet Options, et les designs créés dans l'onglet Designer s'affichent avec [wpcs sd=1], où 1 est l'identifiant du design.
  • Le widget WordPress Currency Switcher dans une zone de widgets de la barre latérale ou du pied de page.
  • Le sélecteur latéral : dans l'onglet Sélecteur latéral (Side switcher), réglez Afficher le sélecteur fixe (Show fixed switcher) sur Oui (Yes). Il reste collé au bord de l'écran sur toutes les pages ; Afficher sur les pages (Show on the pages) et Masquer sur les pages (Hide on the pages) le limitent à certains identifiants de pages.
  • L'en-tête. Dans un thème classique, ajoutez <?php echo do_shortcode('[wpcs]'); ?> au fichier header.php d'un thème enfant. Dans un thème de blocs, ajoutez un bloc Shortcode contenant [wpcs] à la partie de modèle d'en-tête dans l'éditeur de site. Pour un menu, voir comment ajouter le sélecteur de devises au menu.

Lorsqu'un visiteur choisit une devise, la page se recharge avec ?currency=EUR dans l'adresse (ou sans, si Pas de données GET dans le lien (No GET data in link) est réglé sur Oui (Yes)), et le plugin mémorise ce choix pour les pages suivantes.

Étape 3 : afficher chaque prix avec [wpcs_price]

Remplacez chaque montant qui doit changer de devise par le shortcode. Il fonctionne au milieu d'une phrase, le reste du texte reste donc le vôtre :

Consultations start at [wpcs_price value=49] per hour.

La valeur value est un nombre simple dans la devise de base, avec un point pour les décimales : 1250 ou 1250.50. Aucun symbole monétaire, aucun séparateur de milliers : value="1,250" est lu comme 1.

Où se trouve le prixComment insérer le shortcode
Éditeur de blocsSaisissez-le dans un bloc Paragraphe, ou utilisez un bloc Shortcode
Éditeur classiqueSaisissez-le dans le texte
ElementorWidget Éditeur de texte ou widget Shortcode
WPBakeryÉlément Bloc de texte
Zones de widgetsBloc Shortcode ou widget Texte
Modèle du thème (PHP)echo do_shortcode('[wpcs_price value="49"]');

Les champs conçus pour du texte brut, comme les titres, les libellés de boutons, les cellules de certains plugins de tableaux et les champs de prix des widgets de constructeurs, affichent souvent le shortcode tel quel, en texte. Utilisez plutôt l'un des emplacements ci-dessus pour le prix.

Prix stockés dans des champs personnalisés

Si le montant est enregistré dans un champ personnalisé, laissez le shortcode le lire : [wpcs_price meta_value=price] prend le champ price de l'article courant, et [wpcs_price meta_value=price post_id=42] le prend dans l'article 42. Les champs ACF simples sont stockés sous leur nom de champ, ce nom fonctionne donc comme meta_value. Le champ doit contenir un nombre simple. Dans un modèle :

<?php
// Child theme template file, inside the loop.
// Prints the custom field "price" of the current post in the visitor's currency.
echo do_shortcode('[wpcs_price meta_value="price"]');

// Or an amount you already have in a variable, in the base currency.
$amount = 1250;
echo do_shortcode('[wpcs_price value="' . floatval($amount) . '"]');

Montants fixes et plusieurs devises côte à côte

  • Votre propre prix par devise au lieu d'un prix converti : [wpcs_price type="fixed" value="USD:49,EUR:45,GBP:39"]. Listez toutes les devises du site ; une devise absente de la liste affiche le mot none.
  • Une devise précise, quel que soit le sélecteur : [wpcs_price value=100 fix_currency=EUR]. Placez-en deux ou trois côte à côte pour afficher le même prix dans plusieurs devises à la fois. Ne combinez pas cela avec J'utilise un plugin de cache sur mon site (I am using cache plugin on my site) : cette option redessine tous les prix dans la devise du visiteur après le chargement de la page.

Étape 4 : tester sur une page vierge

Créez une page en brouillon contenant uniquement ces deux lignes et prévisualisez-la :

[wpcs]
[wpcs_price value=100]

Choisissez chaque devise dans le sélecteur. Le montant doit changer selon le taux de cette devise. Répétez le test dans une fenêtre de navigation privée, où vous n'êtes pas connecté, car les caches de pages ignorent généralement les administrateurs. Interprétez ensuite le résultat :

  • Le montant change ici mais pas sur vos vraies pages : ces prix ne sont pas affichés par [wpcs_price], ou le champ dans lequel ils se trouvent n'exécute pas les shortcodes.
  • Il affiche 0.00 dans une devise : le taux de cette devise est 0 ou vide.
  • Le shortcode apparaît en texte : l'endroit où vous l'avez saisi ne traite pas les shortcodes.
  • Cela ne fonctionne qu'après un rechargement, ou seulement pour vous : le site utilise un cache de pages. Réglez J'utilise un plugin de cache sur mon site (I am using cache plugin on my site) sur Oui (Yes) dans l'onglet Options et videz le cache.

Chacun de ces cas est traité pas à pas dans le sélecteur de devises ne convertit pas les prix.

En option : devise de bienvenue, GeoIP et compléments de prix

  • Devise de bienvenue (Welcome currency) dans l'onglet Options définit la devise que voit un visiteur lors de sa première visite. Votre devise de base peut rester INR pendant que les nouveaux visiteurs voient USD.
  • L'onglet Règles GeoIP (GeoIP rules) choisit la première devise selon le pays du visiteur. La configuration et les limites sont décrites dans comment définir la devise selon le pays du visiteur.
  • Afficher l'icône d'information sur le prix (Show price info icon) ajoute à côté de chaque prix une icône qui, au survol, indique le montant dans toutes les autres devises.
  • [wpcs_converter] ajoute un convertisseur de devises et [wpcs_rates] un tableau des taux actuels.
  • Sur un site multilingue, la devise peut suivre la langue : changer de devise en même temps que de langue.

Liste de contrôle

  • Chaque devise utilise un code ISO 4217, la devise de base est sélectionnée et aucun taux n'est à 0 ou vide.
  • Un sélecteur est visible : [wpcs], le widget ou le sélecteur latéral.
  • Chaque montant qui doit changer de devise est affiché par [wpcs_price] avec un nombre simple dans la devise de base.
  • La page de test convertit [wpcs_price value=100] dans une fenêtre privée.
  • Avec un plugin de cache de pages : J'utilise un plugin de cache sur mon site (I am using cache plugin on my site) est sur Oui (Yes) et le cache est vidé.

Si la page de test convertit mais que vos vrais prix ne changent toujours pas, ouvrez un sujet sur le forum de support WPCS avec un lien vers la page et le shortcode exact que vous avez utilisé.