Browse Source

Button 2: Fixes Jetpack Infinite Scroll WC issues.

Jeffrey Pearce 7 years ago
parent
commit
385017dff6
2 changed files with 11 additions and 26 deletions
  1. 3 1
      button-2/inc/jetpack.php
  2. 8 25
      button-2/inc/woocommerce.php

+ 3 - 1
button-2/inc/jetpack.php

@@ -75,7 +75,9 @@ function button_2_infinite_scroll_render() {
 	while ( have_posts() ) {
 		the_post();
 
-		if ( class_exists( 'WooCommerce' ) && ( is_shop() || is_product_taxonomy() || is_product_category() || is_product_tag() ) ) :
+		if ( is_search() ) :
+			get_template_part( 'components/content', 'search' );
+		elseif ( class_exists( 'WooCommerce' ) && ( is_shop() || is_product_taxonomy() || is_product_category() || is_product_tag() ) ) :
 			wc_get_template_part( 'content', 'product' );
 		else :
 			get_template_part( 'components/content', get_post_format() );

+ 8 - 25
button-2/inc/woocommerce.php

@@ -83,9 +83,11 @@ add_filter( 'body_class', 'button_2_woocommerce_active_body_class' );
  * @return integer number of products.
  */
 function button_2_woocommerce_products_per_page() {
-	return 12;
+	return absint( apply_filters( 'button_2_woocommerce_products_per_page', 12 ) );
+}
+if ( defined( 'WC_VERSION' ) && version_compare( WC_VERSION, '3.3', '<' ) ) {
+	add_filter( 'loop_shop_per_page', 'button_2_woocommerce_products_per_page' );
 }
-add_filter( 'loop_shop_per_page', 'button_2_woocommerce_products_per_page' );
 
 /**
  * Product gallery thumnbail columns.
@@ -93,7 +95,7 @@ add_filter( 'loop_shop_per_page', 'button_2_woocommerce_products_per_page' );
  * @return integer number of columns.
  */
 function button_2_woocommerce_thumbnail_columns() {
-	return 4;
+	return absint( apply_filters( 'button_2_woocommerce_product_thumbnail_columns', 4 ) );
 }
 add_filter( 'woocommerce_product_thumbnails_columns', 'button_2_woocommerce_thumbnail_columns' );
 
@@ -103,7 +105,7 @@ add_filter( 'woocommerce_product_thumbnails_columns', 'button_2_woocommerce_thum
  * @return integer products per row.
  */
 function button_2_woocommerce_loop_columns() {
-	return 3;
+	return absint( apply_filters( 'button_2_woocommerce_loop_columns', 3 ) );
 }
 add_filter( 'loop_shop_columns', 'button_2_woocommerce_loop_columns' );
 
@@ -114,12 +116,10 @@ add_filter( 'loop_shop_columns', 'button_2_woocommerce_loop_columns' );
  * @return array $args related products args.
  */
 function button_2_woocommerce_related_products_args( $args ) {
-	$defaults = array(
+	$args = apply_filters( 'radcliffe_2_woocommerce_related_products_args', array(
 		'posts_per_page' => 3,
 		'columns'        => 3,
-	);
-
-	$args = wp_parse_args( $defaults, $args );
+	) );
 
 	return $args;
 }
@@ -281,23 +281,6 @@ function button_2_woocommerce_is_shop_page() {
 	return $is_shop_page;
 }
 
-/**
- * Jetpack infinite scroll duplicates posts where orderby is anything other than modified or date
- * This filter offsets the products returned by however many are displayed per page
- *
- * @link https://github.com/Automattic/jetpack/issues/1135
- * @param  array $args infinite scroll args.
- * @return array       infinite scroll args.
- */
-function button_2_woocommerce_jetpack_duplicate_products( $args ) {
-	if ( ( isset( $args['post_type'] ) && 'product' === $args['post_type'] ) || ( isset( $args['taxonomy'] ) && 'product_cat' === $args['taxonomy'] ) ) {
-		$args['offset'] = $args['posts_per_page'] * $args['paged'];
-	}
-
- 	return $args;
-}
-add_filter( 'infinite_scroll_query_args', 'button_2_woocommerce_jetpack_duplicate_products', 100 );
-
 /**
  * Override number of products per page in Jetpack infinite scroll.
  *