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, dasswc_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ültigXTR 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.