Commit 145c887cef6 for woocommerce

commit 145c887cef6a6b426ac230993bf3935f513673b9
Author: Luigi Teschio <gigitux@gmail.com>
Date:   Tue Aug 4 10:43:05 2026 +0200

    Fix order list compatibility with WordPress 7.1 (#67345)

    * Fix order list compatibility with WordPress 7.1

    * Add changelog entry for WordPress 7.1 order list fix

    * Document WordPress 7.1 row header handling

    * add comment

    * fix selector

    * fix code

diff --git a/plugins/woocommerce/changelog/fix-order-list-wordpress-71-compatibility b/plugins/woocommerce/changelog/fix-order-list-wordpress-71-compatibility
new file mode 100644
index 00000000000..ad10f01ca5f
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-order-list-wordpress-71-compatibility
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Fix order list checkbox interactions and responsive layout with WordPress 7.1.
diff --git a/plugins/woocommerce/client/legacy/css/admin.scss b/plugins/woocommerce/client/legacy/css/admin.scss
index 0d252ec412f..d9724ef2996 100644
--- a/plugins/woocommerce/client/legacy/css/admin.scss
+++ b/plugins/woocommerce/client/legacy/css/admin.scss
@@ -3223,7 +3223,7 @@ body.woocommerce_page_wc-orders {
 			border-top: 1px solid #f5f5f5;
 		}

-		tbody tr:hover:not(.status-trash):not(.no-link) td {
+		tbody tr:hover:not(.status-trash):not(.no-link) > :not(.check-column) {
 			cursor: pointer;
 		}

@@ -3554,7 +3554,7 @@ body.woocommerce_page_wc-orders {
 			width: 100%;
 		}

-		td.column-order_number {
+		.column-order_number {
 			.toggle-row {
 				height: 20px;
 			}
@@ -3574,7 +3574,7 @@ body.woocommerce_page_wc-orders {
 		}

 		tr:not(.is-expanded) {
-			td.column-order_number {
+			.column-order_number {
 				vertical-align: top;

 				a.order-view {
diff --git a/plugins/woocommerce/client/legacy/js/admin/wc-orders.js b/plugins/woocommerce/client/legacy/js/admin/wc-orders.js
index a23e7d8ae76..40408a54f86 100644
--- a/plugins/woocommerce/client/legacy/js/admin/wc-orders.js
+++ b/plugins/woocommerce/client/legacy/js/admin/wc-orders.js
@@ -9,10 +9,19 @@ jQuery( function( $ ) {
 	 * WCOrdersTable class.
 	 */
 	var WCOrdersTable = function() {
+
+		const SELECTORS = [
+			// WordPress 7.1 renders primary order cells as th instead of td.
+			".post-type-shop_order .wp-list-table tbody td:not(.check-column)",
+			".post-type-shop_order .wp-list-table tbody th:not(.check-column)",
+			".woocommerce_page_wc-orders .wp-list-table.orders tbody td:not(.check-column)",
+			".woocommerce_page_wc-orders .wp-list-table.orders tbody th:not(.check-column)"
+		]
+
 		$( document )
 			.on(
 				'click',
-				'.post-type-shop_order .wp-list-table tbody td, .woocommerce_page_wc-orders .wp-list-table.orders tbody td',
+				SELECTORS.join( ', ' ),
 				this.onRowClick
 			)
 			.on( 'click', '.order-preview:not(.disabled)', this.onPreview );
diff --git a/plugins/woocommerce/tests/e2e/tests/order/order-list-hidden-columns-small-screen.spec.ts b/plugins/woocommerce/tests/e2e/tests/order/order-list-hidden-columns-small-screen.spec.ts
index 0895d6eabe0..bb78b499ab1 100644
--- a/plugins/woocommerce/tests/e2e/tests/order/order-list-hidden-columns-small-screen.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/order/order-list-hidden-columns-small-screen.spec.ts
@@ -45,13 +45,11 @@ test.describe(
 			await page.goto( 'wp-admin/admin.php?page=wc-orders' );

 			const dateCopy = page
-				.locator(
-					'td.column-order_number .order_date.small-screen-only'
-				)
+				.locator( '.column-order_number .order_date.small-screen-only' )
 				.first();
 			const statusCopy = page
 				.locator(
-					'td.column-order_number .order_status.small-screen-only'
+					'.column-order_number .order_status.small-screen-only'
 				)
 				.first();

diff --git a/plugins/woocommerce/tests/e2e/tests/product/product-reviews.spec.ts b/plugins/woocommerce/tests/e2e/tests/product/product-reviews.spec.ts
index 8e837c87173..b3a88a1f566 100644
--- a/plugins/woocommerce/tests/e2e/tests/product/product-reviews.spec.ts
+++ b/plugins/woocommerce/tests/e2e/tests/product/product-reviews.spec.ts
@@ -195,8 +195,13 @@ test.describe( 'Product Reviews', () => {

 			const reviewRow = page.locator( `#comment-${ review.id }` );

+			// WordPress 7.1 renders primary list-table cells as row headers.
 			await expect(
-				reviewRow.getByRole( 'cell', { name: updatedReview } )
+				reviewRow.getByRole( 'cell', { name: updatedReview } ).or(
+					reviewRow.getByRole( 'rowheader', {
+						name: updatedReview,
+					} )
+				)
 			).toBeVisible();
 			await expect(
 				reviewRow.getByLabel( `${ updatedRating } out of 5` )
@@ -325,8 +330,13 @@ test.describe( 'Product Reviews', () => {
 			).toBeTruthy();
 			await page.getByRole( 'button', { name: 'Undo' } ).click();

+			// WordPress 7.1 renders primary list-table cells as row headers.
 			await expect(
-				reviewRow.getByRole( 'cell', { name: review.review } )
+				reviewRow.getByRole( 'cell', { name: review.review } ).or(
+					reviewRow.getByRole( 'rowheader', {
+						name: review.review,
+					} )
+				)
 			).toBeVisible();

 			await reviewRow.getByRole( 'button', { name: 'Trash' } ).click();
@@ -345,8 +355,13 @@ test.describe( 'Product Reviews', () => {

 			await page.click( 'a[href*="comment_status=trash"]' );

+			// WordPress 7.1 renders primary list-table cells as row headers.
 			await expect(
-				reviewRow.getByRole( 'cell', { name: review.review } )
+				reviewRow.getByRole( 'cell', { name: review.review } ).or(
+					reviewRow.getByRole( 'rowheader', {
+						name: review.review,
+					} )
+				)
 			).toBeVisible();

 			await page.goto(