FOX - Currency Switcher for WooCommerce

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 de wc_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 valides

Enregistrer 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