PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 3.2.6
ShopBuilder – WooCommerce Builder For Elementor v3.2.6
3.4.2 3.4.1 3.4.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 All 63 releases
← All changes | app/Elementor/Render/Render.php +39 -14 3.2.53.2.6 View file →
@@ -507,23 +507,39 @@
507 507
508 508 if ( $pagination ) {
509 509 if ( Fns::product_filters_has_ajax( apply_filters( 'rtsb/builder/set/current/page/type', '' ) ) ) {
510 510 if ( $wp_query->max_num_pages > 1 ) {
511 - $this->add_attribute(
512 - 'rtsb_load_more_btn_attr_' . $rand,
513 - [
514 - 'data-paged' => '2',
515 - 'data-max-page' => $wp_query->max_num_pages,
516 - ]
517 - );
511 + $posts_loading_type = ! empty( $metas['posts_loading_type'] ) ? $metas['posts_loading_type'] : 'pagination';
518 512
519 - $this->html .=
520 - "<div class='rtsb-load-more rtsb-pos-r'>
521 - <button {$this->get_attribute_string( 'rtsb_load_more_btn_attr_' . $rand )}>
522 - <span>" . esc_html__( 'Load More', 'shopbuilder' ) . "</span>
523 - </button>
524 - <div class='rtsb-loadmore-loading rtsb-ball-clip-rotate'><div></div></div>
525 - </div>";
513 + if ( 'pagination_ajax' === $posts_loading_type ) {
514 + $this->html .= Fns::custom_pagination( $wp_query->max_num_pages, $posts_per_page, true );
515 + } elseif ( 'pagination' === $posts_loading_type ) {
516 + $this->html .= Fns::custom_pagination( $wp_query->max_num_pages, $posts_per_page, false );
517 + } elseif ( 'load_on_scroll' === $posts_loading_type ) {
518 + $this->html .= "<div class='rtsb-infinite-scroll' data-trigger='1' data-paged='2' data-max-page='{$wp_query->max_num_pages}'>
519 + <div class='rtsb-infinite-action'>
520 + <div class='rtsb-loadmore-loading rtsb-ball-clip-rotate'><div></div></div>
521 + </div>
522 + </div>";
523 + } else {
524 + $load_more_text = ! empty( $metas['load_more_text'] ) ? $metas['load_more_text'] : esc_html__( 'Load More', 'shopbuilder' );
525 +
526 + $this->add_attribute(
527 + 'rtsb_load_more_btn_attr_' . $rand,
528 + [
529 + 'data-paged' => '2',
530 + 'data-max-page' => $wp_query->max_num_pages,
531 + ]
532 + );
533 +
534 + $this->html .=
535 + "<div class='rtsb-load-more rtsb-pos-r'>
536 + <button {$this->get_attribute_string( 'rtsb_load_more_btn_attr_' . $rand )}>
537 + <span>" . esc_html( $load_more_text ) . "</span>
538 + </button>
539 + <div class='rtsb-loadmore-loading rtsb-ball-clip-rotate'><div></div></div>
540 + </div>";
541 + }
526 542 }
527 543 } else {
528 544 $pagination_args = [
529 545 'query' => $wp_query,
@@ -1278,8 +1294,17 @@
1278 1294 'ajax' => $ajax,
1279 1295 ];
1280 1296
1281 1297 if ( 'pagination' === $meta['posts_loading_type'] ) {
1298 + if ( $is_grid ) {
1299 + $html_utility .= Fns::custom_pagination(
1300 + $total_page,
1301 + 'wc' === $query_type ? $per_page : $posts_per_page
1302 + );
1303 + }
1304 + } elseif ( 'pagination_ajax' === $meta['posts_loading_type'] && ! rtsb()->has_pro() ) {
1305 + // Free version fallback: render non-AJAX number pagination so filter
1306 + // params in the URL are preserved via get_pagenum_link().
1282 1307 if ( $is_grid ) {
1283 1308 $html_utility .= Fns::custom_pagination(
1284 1309 $total_page,
1285 1310 'wc' === $query_type ? $per_page : $posts_per_page