Código de moneda personalizado en WooCommerce: Añadir una moneda no ISO
Añadir un símbolo de moneda personalizado a WooCommerce es sencillo. Añadir un código de moneda personalizado se volvió más difícil en WooCommerce 9.x, que valida los códigos contra la lista ISO 4217 y rechaza cualquier cosa que esté fuera de ella.
WooCommerce 9.x implementó una validación estricta de monedas utilizando la lista blanca ISO 4217. XTR no es un código de moneda ISO estándar, lo que provoca quewc_create_order() falle.
Antecedentes técnicos
XTR (Telegram Stars) es una moneda no estándar utilizada dentro del ecosistema de pagos de Telegram. WooCommerce ahora valida todos los códigos de moneda contra la lista oficial ISO 4217 antes de crear un pedido. Comportamiento anterior (WooCommerce < 9.x): Cualquier código de moneda era aceptado Comportamiento actual (WooCommerce 9.x+): Solo los códigos ISO de la lista blanca son válidosRegistrar XTR como moneda válida
Archivo:functions.php (tema)
Código:
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);
Resultado: XTR se vuelve seleccionable en la lista de monedas de WooCommerce.
El ejemplo descrito en este artículo puede aplicarse a cualquier moneda inexistente