Commit 0721f24799c for woocommerce
commit 0721f24799c3f0717879094a5b741fcb49ecb86c
Author: Oleksandr Aratovskyi <79862886+oaratovskyi@users.noreply.github.com>
Date: Tue Sep 8 17:23:11 2026 +0300
Add WIR franc (CHW) as a store currency (#68442)
* feat(i18n): Add WIR franc (CHW) currency
Context:
CHW is the ISO 4217 WIR franc currency used in Switzerland.
Problem:
WooCommerce does not include CHW in its currency data, symbols, formatting metadata, or Blocks public type.
Solution:
Add CHW to the currency list, symbol map, Swiss locale formatting, public CurrencyCode type, test fixture, and changelog.
Backward compatibility:
Purely additive: existing currency entries and values, filter signatures, REST fields, and settings values are unchanged; CHW adds one new value. The CurrencyCode export retains its name and gains one literal. Sites already providing CHW through filters can continue overriding its name and symbol.
Refs #35684
* test(i18n): Cover WIR franc currency symbol
Context:
CHW uses its ISO code as the display symbol.
Problem:
The currency symbol test only verified that every symbol is a string, so an incorrect CHW symbol would pass.
Solution:
Assert that the CHW symbol is exactly CHW.
Refs #35684
diff --git a/plugins/woocommerce/changelog/add-35684-chw-currency b/plugins/woocommerce/changelog/add-35684-chw-currency
new file mode 100644
index 00000000000..4770303b5e2
--- /dev/null
+++ b/plugins/woocommerce/changelog/add-35684-chw-currency
@@ -0,0 +1,4 @@
+Significance: minor
+Type: add
+
+Add the WIR franc (CHW) to the list of available store currencies.
diff --git a/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/currency.ts b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/currency.ts
index 9a0493ee078..df6b66fa15f 100644
--- a/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/currency.ts
+++ b/plugins/woocommerce/client/blocks/packages/public-api/types/type-defs/currency.ts
@@ -76,6 +76,7 @@ export type CurrencyCode =
| 'CAD'
| 'CDF'
| 'CHF'
+ | 'CHW'
| 'CLP'
| 'CNY'
| 'COP'
diff --git a/plugins/woocommerce/i18n/currencies.php b/plugins/woocommerce/i18n/currencies.php
index 730e9c40705..0418a6e581b 100644
--- a/plugins/woocommerce/i18n/currencies.php
+++ b/plugins/woocommerce/i18n/currencies.php
@@ -40,6 +40,7 @@ return array(
'CAD' => __( 'Canadian dollar', 'woocommerce' ),
'CDF' => __( 'Congolese franc', 'woocommerce' ),
'CHF' => __( 'Swiss franc', 'woocommerce' ),
+ 'CHW' => __( 'WIR franc', 'woocommerce' ),
'CLP' => __( 'Chilean peso', 'woocommerce' ),
'CNY' => __( 'Chinese yuan', 'woocommerce' ),
'COP' => __( 'Colombian peso', 'woocommerce' ),
diff --git a/plugins/woocommerce/i18n/currency-info.php b/plugins/woocommerce/i18n/currency-info.php
index 2c0b8de319d..182796a8779 100644
--- a/plugins/woocommerce/i18n/currency-info.php
+++ b/plugins/woocommerce/i18n/currency-info.php
@@ -263,6 +263,14 @@ return array(
'gsw_CH' => $global_formats['rs_dot_apos_ltr'],
'rm_CH' => $global_formats['rs_dot_apos_ltr'],
),
+ 'CHW' => array(
+ 'de_CH' => $global_formats['ls_dot_apos_ltr'],
+ 'fr_CH' => $global_formats['rs_comma_space_ltr'],
+ 'it_CH' => $global_formats['ls_dot_apos_ltr'],
+ 'default' => $global_formats['ls_dot_apos_ltr'],
+ 'gsw_CH' => $global_formats['rs_dot_apos_ltr'],
+ 'rm_CH' => $global_formats['rs_dot_apos_ltr'],
+ ),
'CLP' => array(
'es_CL' => $global_formats['lx_comma_dot_ltr'],
'default' => $global_formats['lx_comma_dot_ltr'],
diff --git a/plugins/woocommerce/includes/wc-core-functions.php b/plugins/woocommerce/includes/wc-core-functions.php
index 18c760a04f3..cbed7ef7773 100644
--- a/plugins/woocommerce/includes/wc-core-functions.php
+++ b/plugins/woocommerce/includes/wc-core-functions.php
@@ -563,6 +563,7 @@ function get_woocommerce_currency_symbols() {
'CAD' => '$',
'CDF' => 'Fr',
'CHF' => 'CHF',
+ 'CHW' => 'CHW',
'CLP' => '$',
'CNY' => '¥',
'COP' => '$',
diff --git a/plugins/woocommerce/tests/legacy/unit-tests/util/class-wc-tests-core-functions.php b/plugins/woocommerce/tests/legacy/unit-tests/util/class-wc-tests-core-functions.php
index 6041ad5df19..10a6aef6ff9 100644
--- a/plugins/woocommerce/tests/legacy/unit-tests/util/class-wc-tests-core-functions.php
+++ b/plugins/woocommerce/tests/legacy/unit-tests/util/class-wc-tests-core-functions.php
@@ -74,6 +74,7 @@ class WC_Tests_Core_Functions extends WC_Unit_Test_Case {
'CAD' => 'Canadian dollar',
'CDF' => 'Congolese franc',
'CHF' => 'Swiss franc',
+ 'CHW' => 'WIR franc',
'CLP' => 'Chilean peso',
'CNY' => 'Chinese yuan',
'COP' => 'Colombian peso',
@@ -229,6 +230,7 @@ class WC_Tests_Core_Functions extends WC_Unit_Test_Case {
// Given specific currency.
$this->assertEquals( '£', get_woocommerce_currency_symbol( 'GBP' ) );
$this->assertEquals( 'MOP$', get_woocommerce_currency_symbol( 'MOP' ) );
+ $this->assertSame( 'CHW', get_woocommerce_currency_symbol( 'CHW' ) );
$this->assertSame( 'K', get_woocommerce_currency_symbol( 'ZMW' ), 'The Zambian kwacha should use its local display symbol.' );
// Each case.