FOX - Currency Switcher for WooCommerce

Benutzerdefinierter Währungscode in WooCommerce: Hinzufügen einer Nicht-ISO-Währung

Das Hinzufügen eines benutzerdefinierten Währungssymbols zu WooCommerce ist unkompliziert. Das Hinzufügen eines benutzerdefinierten Währungs-Codes wurde in WooCommerce 9.x schwieriger, da es Codes anhand der ISO-4217-Liste validiert und alles außerhalb davon ablehnt.

WooCommerce 9.x implementierte eine strenge Währungsvalidierung mithilfe der ISO-4217-Whitelist. XTR ist kein standardmäßiger ISO-Währungscode, was dazu führt, dass wc_create_order() fehlschlägt.

Technischer Hintergrund

XTR (Telegram Stars) ist eine nicht standardmäßige Währung, die im Zahlungsökosystem von Telegram verwendet wird. WooCommerce validiert nun alle Währungscodes vor der Bestellungserstellung anhand der offiziellen ISO-4217-Liste. Bisheriges Verhalten (WooCommerce < 9.x): Jeder Währungscode wurde akzeptiert Aktuelles Verhalten (WooCommerce 9.x+): Nur auf der Whitelist stehende ISO-Codes sind gültig

XTR als gültige Währung registrieren

Datei: functions.php (Theme) 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);
Ergebnis: XTR wird in der WooCommerce-Währungsliste auswählbar. Das in diesem Artikel beschriebene Beispiel kann auf jede nicht existierende Währung angewendet werden.