Code de devise personnalisé dans WooCommerce : ajouter une devise non ISO
Ajouter un symbole de devise personnalisé à WooCommerce est simple. Ajouter un code de devise personnalisé est devenu plus difficile dans WooCommerce 9.x, qui valide les codes par rapport à la liste ISO 4217 et rejette tout ce qui n'en fait pas partie.
WooCommerce 9.x a mis en place une validation stricte des devises en utilisant la liste blanche ISO 4217. XTR n'est pas un code de devise ISO standard, ce qui entraîne l'échec dewc_create_order().
Contexte technique
XTR (Telegram Stars) est une devise non standard utilisée dans l'écosystème de paiement de Telegram. WooCommerce valide désormais tous les codes de devise par rapport à la liste officielle ISO 4217 avant la création de la commande. Comportement précédent (WooCommerce < 9.x) : Tout code de devise était accepté Comportement actuel (WooCommerce 9.x+) : Seuls les codes ISO de la liste blanche sont validesEnregistrer XTR comme devise valide
Fichier :functions.php (thème)
Code :
add_filter('woocommerce_currencies', function($currencies) {
$currencies['XTR'] = __('Telegram Stars', 'woocommerce');
return $currencies;
});
add_filter('woocommerce_currency_symbol', function($symbol, $currency) {
if ($currency === 'XTR') {
return '⭐';
}
return $symbol;
}, 10, 2);
Résultat : XTR devient sélectionnable dans la liste des devises WooCommerce.
L'exemple présenté dans cet article peut s'appliquer à toute devise inexistante