Comment afficher le code de la devise actuelle dans WordPress ?
Découvrez comment afficher le code de la devise actuelle dans WordPress avec un shortcode personnalisé qui ne renvoie que le code (par exemple « USD », « EUR », « GBP »), sans aucun texte supplémentaire.
Le problème
WPCS dispose d'un shortcode intégré [wpcs_current_currency] qui affiche la devise actuelle, mais son résultat est le suivant :
Current currency is: USDCe dont on a souvent besoin : uniquement le code de la devise :
USD
C'est utile dans les cas suivants :
- Envoyer les données de devise à des applications externes
- Afficher la devise dans votre propre texte personnalisé
- Intégrer la devise à des formulaires ou à d'autres plugins
- Créer des affichages de prix sur mesure
Solution : créer un shortcode personnalisé
Ajoutez ce code au fichier functions.php de votre thème enfant, ou utilisez le plugin Code Snippets :
Version de base (code de la devise uniquement)
/**
* Custom shortcode to display current currency code
* Usage: [current_currency]
* Output: USD (or EUR, GBP, etc.)
*/
add_shortcode('current_currency', function() {
if (class_exists('WPCS')) {
global $WPCS;
return $WPCS->current_currency;
}
return '';
});Utilisation :
[current_currency]Résultat :
USD
Version étendue (avec plusieurs options)
Cette version vous offre plus de souplesse grâce à différents formats de sortie :
/**
* Extended currency shortcode with options
* Usage: [get_currency info="code"]
* Options:
* - code: USD
* - symbol: $
* - name: US Dollar
*/
add_shortcode('get_currency', function($atts) {
if (!class_exists('WPCS')) {
return '';
}
global $WPCS;
// Default attributes
$atts = shortcode_atts(array(
'info' => 'code', // code, symbol, or name
), $atts);
$currency = $WPCS->current_currency;
// Get currency data
$currencies = $WPCS->get_currencies();
switch ($atts['info']) {
case 'symbol':
// Return currency symbol ($, €, £)
return isset($currencies[$currency]['symbol']) ? $currencies[$currency]['symbol'] : '';
case 'name':
// Return currency name (US Dollar, Euro, etc.)
return isset($currencies[$currency]['name']) ? $currencies[$currency]['name'] : '';
case 'code':
default:
// Return currency code (USD, EUR, GBP)
return $currency;
}
});Exemples d'utilisation :
Currency code: [get_currency info="code"]
Currency symbol: [get_currency info="symbol"]
Currency name: [get_currency info="name"]Résultat :
Currency code: USD
Currency symbol: $
Currency name: US Dollar
Où ajouter le code
Option 1 : functions.php du thème enfant (recommandé)
- Allez dans Apparence → Éditeur de fichiers du thème (Appearance → Theme Editor)
- Sélectionnez le thème enfant (important !)
- Ouvrez
functions.php - Collez le code à la fin du fichier
- Cliquez sur Mettre à jour le fichier (Update File)
Pourquoi un thème enfant :
- Les mises à jour du thème parent n'effaceront pas votre code
- Plus sûr et plus facile à maintenir
Option 2 : plugin Code Snippets (plus simple)
- Installez le plugin Code Snippets : https://wordpress.org/plugins/code-snippets/
- Allez dans Extraits → Ajouter (Snippets → Add New)
- Collez le code
- Choisissez « Exécuter partout » (Run everywhere)
- Activez l'extrait
Avantages :
- Aucune modification des fichiers du thème
- Activation et désactivation faciles
- Le code survit aux changements de thème
Cas d'usage concrets
Cas 1 : texte de prix personnalisé
Au lieu de :
Current currency is: USD
Price: $99Vous pouvez écrire :
Price in [current_currency]: $99Résultat :
Price in USD: $99
Cas 2 : intégration avec des formulaires
Envoyez le code de la devise à une application externe via un champ masqué :
<form>
<input type="hidden" name="currency" value="[current_currency]">
<input type="text" name="amount">
<button type="submit">Submit</button>
</form>
Cas 3 : contenu conditionnel
À combiner avec des plugins de shortcodes conditionnels :
[if currency="USD"]
Special offer for US customers!
[/if]
Cas 4 : texte dynamique
Your cart total in US Dollar: $99.00Résultat :
Your cart total in US Dollar: $99.00
Cas 5 : comparaison multi-devises
Price: $99 [current_currency]
(Approximately €90 EUR or £80 GBP)
Avancé : obtenir la devise détectée par GeoIP
Si vous souhaitez afficher la devise détectée automatiquement par GeoIP (qui n'est pas forcément la devise active) :
/**
* Get GeoIP detected currency
* Usage: [geoip_currency]
*/
add_shortcode('geoip_currency', function() {
if (!class_exists('WPCS')) {
return '';
}
global $WPCS;
// Get currency detected by GeoIP
$geo_currency = $WPCS->get_currency_by_country(
$WPCS->get_user_country_code()
);
return $geo_currency ? $geo_currency : $WPCS->default_currency;
});Cas d'usage : indiquer à l'utilisateur quelle devise a été détectée d'après sa position :
We detected you're browsing from [geoip_currency] region.
Currently viewing prices in [current_currency].
Avancé : obtenir toutes les informations sur la devise
Récupérez toutes les données de la devise actuelle :
/**
* Get comprehensive currency data
* Usage: [currency_info]
*/
add_shortcode('currency_info', function() {
if (!class_exists('WPCS')) {
return '';
}
global $WPCS;
$currency = $WPCS->current_currency;
$currencies = $WPCS->get_currencies();
$data = $currencies[$currency];
$output = sprintf(
'Code: %s | Symbol: %s | Name: %s | Rate: %s',
$currency,
$data['symbol'],
$data['name'],
$data['rate']
);
return $output;
});Résultat :
Code: EUR | Symbol: € | Name: Euro | Rate: 0.92
Mettre en forme le résultat
Vous pouvez envelopper le résultat dans du HTML pour le mettre en forme :
add_shortcode('styled_currency', function() {
if (!class_exists('WPCS')) {
return '';
}
global $WPCS;
$currency = $WPCS->current_currency;
return '<span class="currency-badge">' . esc_html($currency) . '</span>';
});Ajoutez ensuite le CSS :
.currency-badge {
background: #007bff;
color: white;
padding: 2px 8px;
border-radius: 3px;
font-size: 12px;
font-weight: bold;
}Résultat :
<span style="background:#007bff;color:white;padding:2px 8px;border-radius:3px;font-size:12px;font-weight:bold;">USD</span>
Dépannage
Le shortcode n'affiche rien
Problème : [current_currency] n'affiche rien
Causes possibles :
- WPCS n'est pas actif
- Vérifiez que le plugin WPCS est installé et activé
- Consultez la page des extensions
- Code mal ajouté
- Vérifiez que le code se trouve dans functions.php ou dans Code Snippets
- Recherchez d'éventuelles erreurs de syntaxe PHP
- Consultez le journal d'erreurs (si WP_DEBUG est activé)
- Conflit de nom de shortcode
- Un autre plugin utilise peut-être le même nom de shortcode
- Essayez un autre nom :
[my_currency]par exemple
Solution : ajoutez une vérification d'erreurs à votre shortcode :
add_shortcode('current_currency', function() {
if (!class_exists('WPCS')) {
return '<!-- WPCS plugin not found -->';
}
global $WPCS;
if (!isset($WPCS->current_currency)) {
return '<!-- Currency not set -->';
}
return $WPCS->current_currency;
});Affichez le code source de la page pour voir le message d'erreur.
Mauvaise devise affichée
Problème : le shortcode affiche une mauvaise devise
Causes possibles :
- Problème de cache
- Videz tous les caches (WordPress, navigateur, serveur)
- Testez en navigation privée
- Devise pas encore changée
- L'utilisateur n'a pas changé la devise manuellement
- La détection GeoIP ne fonctionne pas
- Vérifiez les réglages de WPCS
Solution :
- Videz les caches
- Testez manuellement le changement de devise
- Vérifiez que GeoIP est configuré dans WPCS
Le shortcode fonctionne dans les articles mais pas dans les widgets
Problème : le shortcode s'affiche dans les articles mais pas dans les widgets de la barre latérale
Cause : WordPress n'interprète pas les shortcodes dans les widgets par défaut
Solution : ajoutez ce code pour activer les shortcodes dans les widgets :
add_filter('widget_text', 'do_shortcode');
Les caractères spéciaux s'affichent mal
Problème : les symboles de devise comme € ou £ s'affichent sous la forme �
Solution : utilisez esc_html() pour les encoder correctement :
add_shortcode('current_currency', function() {
if (class_exists('WPCS')) {
global $WPCS;
return esc_html($WPCS->current_currency);
}
return '';
});
Utilisation dans les templates PHP
Si vous devez l'utiliser dans des fichiers de template PHP plutôt qu'avec des shortcodes :
<?php
if (class_exists('WPCS')) {
global $WPCS;
echo esc_html($WPCS->current_currency);
}
?>Ou avec le shortcode :
<?php echo do_shortcode('[current_currency]'); ?>
Bonnes pratiques
- Vérifiez toujours que WPCS existe
if (class_exists('WPCS')) { // Your code }
Cela évite les erreurs si WPCS est désactivé
- Utilisez des noms de shortcode uniques
- Évitez les noms génériques comme
[currency] - Utilisez des noms préfixés :
[my_site_currency]
- Évitez les noms génériques comme
- Échappez le résultat
return esc_html($WPCS->current_currency);
Cela évite les failles XSS - Testez après les mises à jour de WPCS
- Les mises à jour du plugin peuvent modifier l'API
- Testez vos shortcodes personnalisés après chaque mise à jour
- Documentez vos shortcodes
- Notez ce que fait chaque shortcode
- Ajoutez des commentaires dans le code
Alternative : utiliser la fonction intégrée de WPCS
Au lieu de créer un shortcode, vous pouvez utiliser directement la fonction WPCS en PHP :
$currency = wpcs_current_currency();
echo $currency; // Outputs: USDFonctions disponibles :
wpcs_current_currency()- Obtenir le code de la devise actuellewpcs_convert_price($amount, $from, $to)- Convertir entre deviseswpcs_get_user_currency()- Obtenir la devise sélectionnée par l'utilisateur
Résumé
Solution rapide (prête à copier-coller) :
/**
* Display current currency code
* Usage: [current_currency]
* Output: USD (or EUR, GBP, etc.)
*/
add_shortcode('current_currency', function() {
if (class_exists('WPCS')) {
global $WPCS;
return esc_html($WPCS->current_currency);
}
return '';
});À ajouter dans :
- Le fichier
functions.phpdu thème enfant, OU - Le plugin Code Snippets
À utiliser partout :
[current_currency]Résultat :
USDEt voilà ! Simple, propre, et compatible partout où les shortcodes sont pris en charge.