From 29ed02836abf82c273e97682394b8ebf301b50c9 Mon Sep 17 00:00:00 2001 From: Karol Manijak <20098064+kmanijak@users.noreply.github.com> Date: Fri, 13 Sep 2024 09:58:17 +0200 Subject: [PATCH] Disable client-side nav in PC block when filters are inside (#51358) * Disable client-side nav in PC block when filters are inside * Add changelog * Fix lint --- ...able-client-side-nav-for-filters-in-pc-block | 4 ++++ .../src/Blocks/BlockTypes/ProductCollection.php | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 plugins/woocommerce/changelog/fix-50875-disable-client-side-nav-for-filters-in-pc-block diff --git a/plugins/woocommerce/changelog/fix-50875-disable-client-side-nav-for-filters-in-pc-block b/plugins/woocommerce/changelog/fix-50875-disable-client-side-nav-for-filters-in-pc-block new file mode 100644 index 00000000000..e219a09d7aa --- /dev/null +++ b/plugins/woocommerce/changelog/fix-50875-disable-client-side-nav-for-filters-in-pc-block @@ -0,0 +1,4 @@ +Significance: patch +Type: update + +Product Collection: Disable client-side nav if filter blocks are detected inside diff --git a/plugins/woocommerce/src/Blocks/BlockTypes/ProductCollection.php b/plugins/woocommerce/src/Blocks/BlockTypes/ProductCollection.php index 8f4c3ecfda1..d7d7be05d95 100644 --- a/plugins/woocommerce/src/Blocks/BlockTypes/ProductCollection.php +++ b/plugins/woocommerce/src/Blocks/BlockTypes/ProductCollection.php @@ -499,11 +499,18 @@ class ProductCollection extends AbstractBlock { */ private function is_block_compatible( $block_name ) { // Check for explicitly unsupported blocks. - if ( - 'core/post-content' === $block_name || - 'woocommerce/mini-cart' === $block_name || - 'woocommerce/featured-product' === $block_name - ) { + $unsupported_blocks = array( + 'core/post-content', + 'woocommerce/mini-cart', + 'woocommerce/featured-product', + 'woocommerce/active-filters', + 'woocommerce/price-filter', + 'woocommerce/stock-filter', + 'woocommerce/attribute-filter', + 'woocommerce/rating-filter', + ); + + if ( in_array( $block_name, $unsupported_blocks, true ) ) { return false; }