Commit 6dd5af91a8d for woocommerce

commit 6dd5af91a8dce5ac59631549a329984401ede7dc
Author: Chris Lilitsas <1105590+xristos3490@users.noreply.github.com>
Date:   Wed Sep 9 10:37:07 2026 +0300

    Fix: Sanitize stock notifications endpoint slug on save (#68475)

    * fix: sanitize stock notifications endpoint slug on save

    * docs: add changelog entry for stock notifications endpoint slug sanitize fix

    * test: cover stock notifications endpoint slug sanitize filter

    * test: move endpoint slug sanitize test into stock notifications settings tests

diff --git a/plugins/woocommerce/changelog/68xxx-fix-stock-notifications-endpoint-slug-sanitize b/plugins/woocommerce/changelog/68xxx-fix-stock-notifications-endpoint-slug-sanitize
new file mode 100644
index 00000000000..220f06775ec
--- /dev/null
+++ b/plugins/woocommerce/changelog/68xxx-fix-stock-notifications-endpoint-slug-sanitize
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Sanitize the stock notifications My Account endpoint slug when saved from settings.
diff --git a/plugins/woocommerce/includes/wc-formatting-functions.php b/plugins/woocommerce/includes/wc-formatting-functions.php
index 96fb23742ff..4d379a00aac 100644
--- a/plugins/woocommerce/includes/wc-formatting-functions.php
+++ b/plugins/woocommerce/includes/wc-formatting-functions.php
@@ -1697,6 +1697,7 @@ add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_se
 add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_orders_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
 add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_view_order_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
 add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_order_withdrawal_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
+add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_stock_notifications_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
 add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_downloads_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
 add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_edit_account_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
 add_filter( 'woocommerce_admin_settings_sanitize_option_woocommerce_myaccount_edit_address_endpoint', 'wc_sanitize_endpoint_slug', 10, 1 );
diff --git a/plugins/woocommerce/tests/php/src/Internal/StockNotifications/Admin/SettingsControllerTests.php b/plugins/woocommerce/tests/php/src/Internal/StockNotifications/Admin/SettingsControllerTests.php
index 5c15c609f0c..387df931b62 100644
--- a/plugins/woocommerce/tests/php/src/Internal/StockNotifications/Admin/SettingsControllerTests.php
+++ b/plugins/woocommerce/tests/php/src/Internal/StockNotifications/Admin/SettingsControllerTests.php
@@ -71,4 +71,15 @@ class SettingsControllerTests extends \WC_Settings_Unit_Test_Case {
 		$this->assertSame( 'text', $settings[ $setting_index ]['type'] );
 		$this->assertSame( MyAccountEndpoint::ENDPOINT, $settings[ $setting_index ]['default'] );
 	}
+
+	/**
+	 * @testdox The My Account endpoint setting is sanitized as an endpoint slug on save.
+	 */
+	public function test_my_account_endpoint_setting_is_sanitized_on_save() {
+		$hook = 'woocommerce_admin_settings_sanitize_option_' . MyAccountEndpoint::ENDPOINT_OPTION;
+
+		$this->assertSame( 10, has_filter( $hook, 'wc_sanitize_endpoint_slug' ) );
+		$this->assertSame( 'restock-alerts', apply_filters( $hook, 'Restock Alerts' ) );
+		$this->assertSame( 'stock-notifications', apply_filters( $hook, 'stock-notifications' ) );
+	}
 }