FOX - WooCommerce Currency Switcher Professional

Afficher dans WooCommerce une devise différente de la devise de base

Afficher dans WooCommerce une devise différente de la devise de base est un besoin courant : vous saisissez vos prix en dollars américains parce que c'est ce que vous payez à vos fournisseurs, mais vos clients doivent voir des livres turques, ou une boutique établie dans la zone euro doit accueillir les nouveaux visiteurs en dollars. FOX couvre les deux cas. La Devise de bienvenue (Welcome currency) détermine ce qu'un nouveau visiteur voit en premier, et un court extrait de code verrouille toute la boutique sur une seule devise. Ce guide explique la différence entre la devise de base et la devise de bienvenue, pourquoi cette dernière semble parfois ignorée, et comment configurer une boutique qui n'affiche qu'une seule devise autre que la devise de base.

La devise de base et la devise de bienvenue sont deux réglages distincts

La devise de base est celle marquée Basique (Basic) dans l'onglet Devises (Currencies) de WooCommerce → Réglages → Devise (Currency). À l'enregistrement, FOX l'inscrit comme devise de la boutique WooCommerce. Tous les montants que vous saisissez sont dans cette devise : prix des produits, montants des codes promo, frais de livraison, seuils de livraison gratuite. Toutes les autres devises en sont dérivées grâce à leur Taux (Rate).

La devise de bienvenue, dans l'onglet Options, est uniquement la devise dans laquelle démarre un nouveau visiteur. Elle ne modifie aucune donnée de prix, vous pouvez donc la changer à tout moment.

Changer la devise de base est une tout autre affaire. FOX ne convertit pas vos prix de produits lorsque vous marquez une autre devise comme Basique (Basic) : un produit qui coûtait 100 dollars coûte ensuite 100 livres. La première décision est donc de savoir dans quelle devise vous voulez saisir vos prix :

Votre situationConfiguration
Vous fixez vos prix dans la devise dans laquelle vous vendez, une seule deviseFaites-en la devise de la boutique WooCommerce et saisissez-y les prix. Aucune conversion n'est nécessaire.
Vous fixez vos prix dans une devise et voulez en afficher une autre, convertie au taux du momentGardez la devise de tarification comme Basique (Basic), ajoutez la devise d'affichage avec son taux, et utilisez la devise de bienvenue ou le verrouillage ci-dessous.
Les nouveaux visiteurs doivent démarrer dans une autre devise, mais peuvent en changerDevise de bienvenue uniquement.

Afficher aux nouveaux visiteurs une devise différente de la devise de base

Sélectionnez la devise dans Devise de bienvenue (Welcome currency), dans l'onglet Options, puis enregistrez. Un visiteur qui n'a encore aucune devise mémorisée la reçoit dès sa première page vue, puis conserve celle qu'il choisit dans le sélecteur. Choisissez une devise dont l'interrupteur Visible est activé dans l'onglet Devises (Currencies) ; la description de l'option met en garde contre une devise masquée.

Si vous utilisez aussi des règles GeoIP, elles ont la priorité. FOX applique la devise de bienvenue au début de la première requête et les règles GeoIP un instant plus tard, lors de la même page vue : un visiteur dont le pays figure dans une liste GeoIP obtient donc la devise de cette liste. La devise de bienvenue est en pratique la devise de tous les autres ; changer automatiquement la devise selon le pays montre comment les deux fonctionnent ensemble.

Pourquoi la devise de bienvenue « ne fonctionne pas »

Presque tous les signalements d'une devise de bienvenue ignorée relèvent de l'un de ces cas :

  • Vous n'êtes pas un nouveau visiteur. La devise de bienvenue ne s'applique qu'une fois. Ensuite, FOX mémorise la devise du visiteur et l'utilise sur chaque page ; modifier plus tard la devise de bienvenue n'affecte pas les visiteurs qui en ont déjà une. Votre propre navigateur a une devise mémorisée par vos essais.
  • Le stockage vous identifie par votre adresse IP. Avec Stockage de la devise (Currency storage) réglé sur Transient, Memcached ou Redis, chaque navigateur et chaque appareil de votre connexion compte comme le même visiteur : une fenêtre privée ou un second téléphone sur le même Wi-Fi affiche donc encore la devise mémorisée. Testez depuis une autre connexion, par exemple en données mobiles. Avec Session PHP (PHP Session) ou Session FOX (FOX Session), une nouvelle fenêtre privée suffit.
  • Une règle GeoIP couvre votre pays, comme décrit plus haut.
  • La page provient d'un cache de page, construit pour un visiteur qui avait une autre devise. Activez J'utilise un plugin de cache sur mon site (I am using cache plugin on my site) dans l'onglet Options et videz le cache ; pourquoi un sélecteur de devises et un cache de page se battent explique le reste.

Pour voir ce que FOX utilise pour vous, placez [woocs_show_current_currency] sur une page brouillon non mise en cache.

Verrouiller la boutique sur une seule devise d'affichage

La devise de bienvenue ne peut pas empêcher les visiteurs de changer de devise, et ceux qui en ont déjà choisi une autre la conservent. Pour montrer à chaque visiteur une seule devise, autre que la devise de base, sur toutes les pages :

  1. Gardez la devise dans laquelle vous fixez vos prix comme Basique (Basic) et ajoutez la devise d'affichage dans l'onglet Devises (Currencies), avec un taux à jour ou Mise à jour automatique du taux (Rate auto update) dans l'onglet Options.
  2. Réglez Devise de bienvenue (Welcome currency) sur la devise d'affichage.
  3. Cliquez sur Tout effacer (Clear all) pour chaque devise dans l'onglet GeoIP, afin qu'aucune règle ne choisisse une autre devise.
  4. Retirez tous les sélecteurs : le shortcode [woocs], le widget, les éléments de menu et le sélecteur latéral de l'onglet Latéral (Side). Vous pouvez aussi désactiver Visible pour la devise de base afin qu'elle n'apparaisse nulle part.
  5. Ajoutez l'extrait ci-dessous, avec le code de votre devise.
/*
 * FOX: every visitor sees and uses one currency, on every page.
 * Child theme functions.php or a code snippets plugin.
 */
add_action('wp_head', function () {
    global $WOOCS;
    if (!empty($WOOCS)) {
        $WOOCS->set_currency('TRY'); // the display currency code from the Currencies tab
    }
}, 1000);

$WOOCS->set_currency() définit la devise comme devise courante et la mémorise pour le visiteur, de sorte que les requêtes AJAX qui suivent, comme le mini-panier et les mises à jour de la page de paiement, l'utilisent aussi. Le code doit correspondre à l'une de vos devises ; pour un code absent de la liste, FOX revient à la devise de base. La priorité 1000 l'exécute après le travail propre de FOX dans wp_head, où les règles GeoIP sont appliquées, si bien que même la toute première page vue est correcte. De nombreux anciens extraits utilisent la priorité par défaut et peuvent perdre cette première page au profit d'une règle GeoIP.

L'extrait s'exécute lorsque WordPress construit une page, pas lorsqu'un cache de page sert du HTML stocké. C'est pourquoi les étapes 2 et 3 comptent : avec la devise de bienvenue réglée sur la devise d'affichage et sans règle GeoIP, un nouveau visiteur obtient la devise d'affichage par tous les chemins passant par FOX, y compris le redessin des prix sur les pages en cache. Un visiteur de retour qui avait choisi une autre devise avant l'ajout du verrouillage peut encore la voir sur les pages en cache, jusqu'à ce qu'il ouvre une page jamais mise en cache, comme le panier ou la page de paiement. L'extrait s'y exécute, et la page de paiement affiche donc toujours la devise verrouillée.

Dans quelle devise le client paie

Le verrouillage détermine ce que les clients voient. La devise dans laquelle ils sont débités dépend de Multiple autorisé (Is multiple allowed) dans l'onglet Avancé (Advanced). Avec Oui (Yes), la page de paiement, la commande et le paiement restent dans la devise d'affichage : votre passerelle doit donc l'accepter. Avec Non (No), FOX recalcule le récapitulatif de commande et la commande dans la devise de base, et le verrouillage entourerait alors un récapitulatif en devise de base de prix en devise d'affichage ; dans ce cas, commencez la fonction par if (is_checkout()) { return; } pour que la page de paiement affiche la devise de base de bout en bout. Afficher les prix en devise locale, débiter en devise de base explique comment en informer les clients.

Montants saisis, taux et commandes

  • Les montants des codes promo et les dépenses minimales, les frais de livraison et les seuils de livraison gratuite se saisissent dans la devise de base et sont convertis au taux du moment. Saisir un montant en livres dans une boutique en dollars transforme un seuil de 1 000 livres en 1 000 dollars. Pour fixer des montants exacts dans la devise d'affichage, activez Montant fixe individuel pour les codes promo (Individual fixed amount for coupon) et Montant fixe individuel pour la livraison (Individual fixed amount for shipping) dans l'onglet Avancé (Advanced) (les deux exigent Multiple autorisé (Is multiple allowed) = Oui (Yes)) ; l'écran des codes promo et les réglages des modes de livraison Forfait (Flat rate) et Livraison gratuite (Free shipping) reçoivent alors un champ par devise.
  • Les prix des produits suivent le taux. Chaque mise à jour du taux déplace les prix affichés. Pour des prix ronds, voir arrondir les prix convertis ; pour des prix exacts dans la devise d'affichage, Règles de prix fixes individuels pour chaque produit (Individual fixed prices rules for each product) ajoute un champ de prix par devise à chaque produit.
  • Les commandes et les e-mails affichent la devise dans laquelle la commande a été passée. Les rapports WooCommerce ne convertissent pas les devises entre elles ; voir analyses multidevises.

Pour afficher le prix de base à côté du prix affiché, par exemple par transparence envers des clients étrangers, Afficher l'icône d'information sur le prix (Show price info icon) dans l'onglet Options ajoute à côté du prix une icône qui le liste dans toutes vos devises au survol ; comment afficher deux devises sur les pages produit présente une alternative par le code.

Liste de contrôle

  • La devise de tarification est Basique (Basic) ; les prix des produits ne devaient pas être convertis lorsque vous l'avez changée.
  • La devise de bienvenue est celle que les nouveaux visiteurs doivent voir, et elle est visible.
  • Les listes GeoIP sont vides, ou vous acceptez que les pays listés obtiennent leur propre devise.
  • Pour une boutique verrouillée : aucun sélecteur, l'extrait avec la priorité 1000, et la devise de bienvenue égale à la devise verrouillée.
  • Multiple autorisé (Is multiple allowed) correspond à la devise dans laquelle vous pouvez réellement débiter.
  • Testé comme un nouveau visiteur, sur une page non mise en cache, depuis une connexion qui n'a jamais visité la boutique.

Si un nouveau visiteur voit toujours la mauvaise devise alors que les caches sont désactivés, ouvrez un sujet sur le forum de support de FOX avec vos réglages Devises (Currencies), Options et GeoIP ainsi que le code que vous utilisez, et nous y jetterons un œil.