From 41a54a6d5dd070e5c8ac9c3fef3ad5e3dd3efdcd Mon Sep 17 00:00:00 2001 From: Oscar Sanchez Date: Mon, 7 Jun 2021 10:44:07 -0500 Subject: [PATCH 1/6] Delete pagination from facets --- includes/classes/Feature/Facets/Facets.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/includes/classes/Feature/Facets/Facets.php b/includes/classes/Feature/Facets/Facets.php index 18d7b06540..16d92a7754 100644 --- a/includes/classes/Feature/Facets/Facets.php +++ b/includes/classes/Feature/Facets/Facets.php @@ -441,13 +441,11 @@ public function build_query_url( $filters ) { */ $query_string = apply_filters( 'ep_facet_query_string', $query_string ); - if ( is_post_type_archive() ) { - $pagination = strpos( $_SERVER['REQUEST_URI'], '/page' ); + $pagination = strpos( $_SERVER['REQUEST_URI'], '/page' ); - if ( false !== $pagination ) { - $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); - return strtok( $url, '?' ) . ( ( ! empty( $query_string ) ) ? '/?' . $query_string : '' ); - } + if ( false !== $pagination ) { + $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); + return strtok( $url, '?' ) . ( ( ! empty( $query_string ) ) ? '/?' . $query_string : '' ); } return strtok( $_SERVER['REQUEST_URI'], '?' ) . ( ( ! empty( $query_string ) ) ? '?' . $query_string : '' ); From 1735914f10f4ddcfeed3aaa6d1a068af2805ea1e Mon Sep 17 00:00:00 2001 From: Oscar Sanchez Date: Mon, 7 Jun 2021 13:08:52 -0500 Subject: [PATCH 2/6] Return home URL if pagination and empty query string --- includes/classes/Feature/Facets/Facets.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/includes/classes/Feature/Facets/Facets.php b/includes/classes/Feature/Facets/Facets.php index 16d92a7754..c19dd62d79 100644 --- a/includes/classes/Feature/Facets/Facets.php +++ b/includes/classes/Feature/Facets/Facets.php @@ -444,8 +444,9 @@ public function build_query_url( $filters ) { $pagination = strpos( $_SERVER['REQUEST_URI'], '/page' ); if ( false !== $pagination ) { - $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); - return strtok( $url, '?' ) . ( ( ! empty( $query_string ) ) ? '/?' . $query_string : '' ); + $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); + $new_url = strtok( $url, '?' ) . ( ( ! empty( $query_string ) ) ? '/?' . $query_string : '' ); + return ! empty ( $new_url ) ? $new_url : home_url(); } return strtok( $_SERVER['REQUEST_URI'], '?' ) . ( ( ! empty( $query_string ) ) ? '?' . $query_string : '' ); From 2ad9df2b0268d13e32f6ee1bf7d4bd951997da82 Mon Sep 17 00:00:00 2001 From: Ramon Date: Wed, 9 Jun 2021 18:07:00 -0300 Subject: [PATCH 3/6] Add test to Facet feature --- tests/php/features/TestFacet.php | 81 ++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 tests/php/features/TestFacet.php diff --git a/tests/php/features/TestFacet.php b/tests/php/features/TestFacet.php new file mode 100644 index 0000000000..d0b0b4d2da --- /dev/null +++ b/tests/php/features/TestFacet.php @@ -0,0 +1,81 @@ +get_registered_feature( 'facets' ); + + $filters = [ + 'taxonomies' => [ + 'category' => [ + 'terms' => [ + 'augue' => 1 + ] + ] + ] + ]; + + $this->assertEquals( '?filter_category=augue', $facet_feature->build_query_url( $filters ) ); + + set_query_var( 's', 'dolor' ); + $this->assertEquals( '?s=dolor&filter_category=augue', $facet_feature->build_query_url( $filters ) ); + + set_query_var( 's', '' ); + $filters = [ + 'taxonomies' => [ + 'category' => [ + 'terms' => [ + 'augue' => 1, + 'consectetur' => 1 + ] + ] + ] + ]; + + $this->assertEquals( '?filter_category=augue,consectetur', $facet_feature->build_query_url( $filters ) ); + + $_SERVER['REQUEST_URI'] = 'test/page/1'; + + set_query_var( 's', 'dolor' ); + $this->assertEquals( 'test/?s=dolor&filter_category=augue,consectetur', $facet_feature->build_query_url( $filters ) ); + + } + +} From 18f35f5ee9cc57ee8464011b2b5b66808c20e66b Mon Sep 17 00:00:00 2001 From: Ramon Date: Wed, 9 Jun 2021 18:13:36 -0300 Subject: [PATCH 4/6] Fix phpcs --- includes/classes/Feature/Facets/Facets.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/includes/classes/Feature/Facets/Facets.php b/includes/classes/Feature/Facets/Facets.php index c19dd62d79..adfd98f354 100644 --- a/includes/classes/Feature/Facets/Facets.php +++ b/includes/classes/Feature/Facets/Facets.php @@ -444,9 +444,9 @@ public function build_query_url( $filters ) { $pagination = strpos( $_SERVER['REQUEST_URI'], '/page' ); if ( false !== $pagination ) { - $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); + $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); $new_url = strtok( $url, '?' ) . ( ( ! empty( $query_string ) ) ? '/?' . $query_string : '' ); - return ! empty ( $new_url ) ? $new_url : home_url(); + return ! empty( $new_url ) ? $new_url : home_url(); } return strtok( $_SERVER['REQUEST_URI'], '?' ) . ( ( ! empty( $query_string ) ) ? '?' . $query_string : '' ); From fabdb3c30af77cf9ba07f3a4251565c4a205888f Mon Sep 17 00:00:00 2001 From: Oscar Sanchez Date: Mon, 14 Jun 2021 01:19:06 -0500 Subject: [PATCH 5/6] Code refactor --- includes/classes/Feature/Facets/Facets.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/includes/classes/Feature/Facets/Facets.php b/includes/classes/Feature/Facets/Facets.php index c19dd62d79..be8c583f9f 100644 --- a/includes/classes/Feature/Facets/Facets.php +++ b/includes/classes/Feature/Facets/Facets.php @@ -441,15 +441,13 @@ public function build_query_url( $filters ) { */ $query_string = apply_filters( 'ep_facet_query_string', $query_string ); - $pagination = strpos( $_SERVER['REQUEST_URI'], '/page' ); - + $url = $_SERVER['REQUEST_URI']; + $pagination = strpos( $url, '/page' ); if ( false !== $pagination ) { - $url = substr( $_SERVER['REQUEST_URI'], 0, $pagination ); - $new_url = strtok( $url, '?' ) . ( ( ! empty( $query_string ) ) ? '/?' . $query_string : '' ); - return ! empty ( $new_url ) ? $new_url : home_url(); + $url = substr( $url, 0, $pagination ); } - return strtok( $_SERVER['REQUEST_URI'], '?' ) . ( ( ! empty( $query_string ) ) ? '?' . $query_string : '' ); + return strtok( trailingslashit( $url ), '?' ) . ( ( ! empty( $query_string ) ) ? '?' . $query_string : '' ); } /** From 562d9f4e9d3e5d5fc9e9033cf02bfa1ee38cf2ab Mon Sep 17 00:00:00 2001 From: Oscar Sanchez Date: Tue, 15 Jun 2021 11:39:25 -0500 Subject: [PATCH 6/6] Fix tests --- tests/php/features/TestFacet.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/php/features/TestFacet.php b/tests/php/features/TestFacet.php index d0b0b4d2da..d66962bc74 100644 --- a/tests/php/features/TestFacet.php +++ b/tests/php/features/TestFacet.php @@ -52,10 +52,10 @@ public function testBuildQueryUrl() { ] ]; - $this->assertEquals( '?filter_category=augue', $facet_feature->build_query_url( $filters ) ); + $this->assertEquals( '/?filter_category=augue', $facet_feature->build_query_url( $filters ) ); set_query_var( 's', 'dolor' ); - $this->assertEquals( '?s=dolor&filter_category=augue', $facet_feature->build_query_url( $filters ) ); + $this->assertEquals( '/?s=dolor&filter_category=augue', $facet_feature->build_query_url( $filters ) ); set_query_var( 's', '' ); $filters = [ @@ -69,7 +69,7 @@ public function testBuildQueryUrl() { ] ]; - $this->assertEquals( '?filter_category=augue,consectetur', $facet_feature->build_query_url( $filters ) ); + $this->assertEquals( '/?filter_category=augue,consectetur', $facet_feature->build_query_url( $filters ) ); $_SERVER['REQUEST_URI'] = 'test/page/1';