Commit eedd01cca26 for woocommerce
commit eedd01cca2647b2a0a24a6fa306bd638a974b38b
Author: Tung Du <dinhtungdu@gmail.com>
Date: Tue Jul 21 15:46:44 2026 +0700
Fix: use the stable Block Selectors API for WooCommerce blocks (#66596)
* fix: use stable Selectors API
* chore: changelog
* fix: restore experimental selectors for affected blocks
* fix: anchor stable selectors to block wrappers
diff --git a/plugins/woocommerce/changelog/fix-stable-selectors-api b/plugins/woocommerce/changelog/fix-stable-selectors-api
new file mode 100644
index 00000000000..51827c0a3c6
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-stable-selectors-api
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Use the stable Block Selectors API.
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/button/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/button/block.json
index 1ad7e7d941e..1baa9010ad6 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/button/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/button/block.json
@@ -65,8 +65,10 @@
"padding": true,
"__experimentalSkipSerialization": true
},
- "email": true,
- "__experimentalSelector": ".wp-block-button.wc-block-components-product-button .wc-block-components-product-button__button"
+ "email": true
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-button .wc-block-components-product-button__button"
},
"ancestor": [
"woocommerce/all-products",
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/image/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/image/block.json
index 5f67398ea01..92069f75d48 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/image/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/image/block.json
@@ -40,8 +40,10 @@
"aspectRatio": true,
"__experimentalSkipSerialization": true
},
- "email": true,
- "__experimentalSelector": ".wc-block-components-product-image"
+ "email": true
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-image.wc-block-components-product-image, .wp-block-woocommerce-product-image .wc-block-components-product-image"
},
"ancestor": [
"woocommerce/all-products",
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-counter/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-counter/block.json
index f100ecfa763..c07741dcc67 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-counter/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-counter/block.json
@@ -42,8 +42,10 @@
"typography": {
"fontSize": true,
"__experimentalSkipSerialization": true
- },
- "__experimentalSelector": ".wc-block-components-product-rating-counter"
+ }
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-rating-counter.wc-block-components-product-rating-counter, .wp-block-woocommerce-product-rating-counter .wc-block-components-product-rating-counter"
},
"usesContext": [ "query", "queryId", "postId" ],
"keywords": [ "WooCommerce" ],
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-stars/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-stars/block.json
index 624cb4bcef2..48f10979b69 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-stars/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating-stars/block.json
@@ -45,8 +45,10 @@
"typography": {
"fontSize": true,
"__experimentalSkipSerialization": true
- },
- "__experimentalSelector": ".wc-block-components-product-rating"
+ }
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-rating-stars.wc-block-components-product-rating, .wp-block-woocommerce-product-rating-stars .wc-block-components-product-rating"
},
"ancestor": [ "woocommerce/single-product" ],
"textdomain": "woocommerce",
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating/block.json
index 9ee05125131..7d86c79c9c3 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/rating/block.json
@@ -43,8 +43,10 @@
"typography": {
"fontSize": true,
"__experimentalSkipSerialization": true
- },
- "__experimentalSelector": ".wc-block-components-product-rating"
+ }
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-rating.wc-block-components-product-rating, .wp-block-woocommerce-product-rating .wc-block-components-product-rating"
},
"ancestor": [
"woocommerce/all-products",
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/sale-badge/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/sale-badge/block.json
index 72e05aab2f6..d520e1e4f02 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/sale-badge/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/sale-badge/block.json
@@ -47,8 +47,10 @@
"spacing": {
"margin": true
},
- "email": true,
- "__experimentalSelector": ".wc-block-components-product-sale-badge"
+ "email": true
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-sale-badge .wc-block-components-product-sale-badge"
},
"ancestor": [
"woocommerce/single-product",
diff --git a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/title/block.json b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/title/block.json
index 635a4e197e3..ba9067038ea 100644
--- a/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/title/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/atomic/blocks/product-elements/title/block.json
@@ -28,8 +28,10 @@
"spacing": {
"margin": true,
"__experimentalSkipSerialization": true
- },
- "__experimentalSelector": ".wc-block-components-product-title"
+ }
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-title .wc-block-components-product-title"
},
"textdomain": "woocommerce",
"attributes": {
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/next-previous-buttons/block.json b/plugins/woocommerce/client/blocks/assets/js/blocks/next-previous-buttons/block.json
index c84ae763e0e..43bccb48613 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/next-previous-buttons/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/next-previous-buttons/block.json
@@ -34,8 +34,10 @@
"__experimentalBorder": {
"radius": true,
"__experimentalSkipSerialization": true
- },
- "__experimentalSelector": ".wc-block-next-previous-buttons__button"
+ }
+ },
+ "selectors": {
+ "root": ".wp-block-woocommerce-product-gallery-large-image-next-previous .wc-block-next-previous-buttons__button"
},
"ancestor": [
"woocommerce/product-gallery-large-image",
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/downloads/block.json b/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/downloads/block.json
index c621c278fb5..f0b03d8ffc8 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/downloads/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/downloads/block.json
@@ -4,15 +4,10 @@
"title": "Order Downloads",
"description": "Display links to purchased downloads.",
"category": "woocommerce",
- "keywords": [
- "WooCommerce"
- ],
+ "keywords": [ "WooCommerce" ],
"supports": {
"multiple": false,
- "align": [
- "wide",
- "full"
- ],
+ "align": [ "wide", "full" ],
"html": false,
"typography": {
"fontSize": true,
@@ -70,4 +65,4 @@
"textdomain": "woocommerce",
"apiVersion": 3,
"$schema": "https://schemas.wp.org/trunk/block.json"
-}
\ No newline at end of file
+}
diff --git a/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/totals/block.json b/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/totals/block.json
index 066c4387db7..1801fb44c10 100644
--- a/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/totals/block.json
+++ b/plugins/woocommerce/client/blocks/assets/js/blocks/order-confirmation/totals/block.json
@@ -4,15 +4,10 @@
"title": "Order Totals",
"description": "Display the items purchased and order totals.",
"category": "woocommerce",
- "keywords": [
- "WooCommerce"
- ],
+ "keywords": [ "WooCommerce" ],
"supports": {
"multiple": false,
- "align": [
- "wide",
- "full"
- ],
+ "align": [ "wide", "full" ],
"html": false,
"typography": {
"fontSize": true,
@@ -70,4 +65,4 @@
"textdomain": "woocommerce",
"apiVersion": 3,
"$schema": "https://schemas.wp.org/trunk/block.json"
-}
\ No newline at end of file
+}