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' => '&#36;',
 			'CDF' => 'Fr',
 			'CHF' => '&#67;&#72;&#70;',
+			'CHW' => 'CHW',
 			'CLP' => '&#36;',
 			'CNY' => '&yen;',
 			'COP' => '&#36;',
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( '&pound;', get_woocommerce_currency_symbol( 'GBP' ) );
 		$this->assertEquals( 'MOP&#36;', 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.