PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.1.13
ShopBuilder – WooCommerce Builder For Elementor v2.1.13
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 +12 -8 2.1.72.1.13 View file →
@@ -85,9 +85,10 @@
85 85 public function container( $content, $settings, $class = '', $template = '', $fullwidth = false, $ajax = true ) {
86 86 $rand = wp_rand();
87 87 $layout_id = 'rtsb-container-' . $rand;
88 88 $metas = RenderHelpers::meta_dataset( $settings, $template );
89 - $layout = $metas['layout'];
89 + $raw_layout = esc_html( $metas['layout'] );
90 + $layout = RenderHelpers::filter_layout( $raw_layout, $template );
90 91 $style_attr = '--rtsb-default-columns: ' . esc_attr( RenderHelpers::default_columns( $layout ) );
91 92 $view_mode = $settings['view_mode'] ?? 'grid';
92 93 $view_mode = isset( $_GET['displayview'] ) ? sanitize_text_field( wp_unslash( $_GET['displayview'] ) ) : $view_mode; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
93 94 $tooltip_attr = 'list' == $view_mode && ! empty( $metas['tooltip_position_list'] ) ? esc_attr( $metas['tooltip_position_list'] ) : $metas['tooltip_position'];
@@ -163,13 +164,15 @@
163 164 *
164 165 * @return string
165 166 */
166 167 public function row( $content, $settings, $hook_html = '', $raw_settings = [] ) {
167 - $layout = $settings['layout'];
168 + $raw_layout = esc_html( $settings['layout'] );
169 + $layout = RenderHelpers::filter_layout( $raw_layout );
170 +
168 171 $rand = wp_rand();
169 - $is_carousel = preg_match( '/slider/', $layout );
172 + $is_carousel = preg_match( '/slider/', $raw_layout );
170 173
171 - if ( preg_match( '/category/', $layout ) && ( ! empty( $settings['active_cat_slider'] ) ) ) {
174 + if ( preg_match( '/category/', $raw_layout ) && ( ! empty( $settings['active_cat_slider'] ) ) ) {
172 175 $is_carousel = true;
173 176 }
174 177
175 178 // Row classes.
@@ -240,8 +243,9 @@
240 243
241 244 foreach ( $products as $product ) {
242 245 $i++;
243 246 $GLOBALS['product'] = $product;
247 + $layout = RenderHelpers::filter_layout( esc_html( $settings['layout'] ), $template );
244 248
245 249 /**
246 250 * Before product template render hook.
247 251 */
@@ -250,9 +254,9 @@
250 254 // Loop arg.
251 255 $arg = $this->arg_dataset( $settings, $product, $settings['lazy_load'], $i );
252 256
253 257 // Get template.
254 - $html .= Fns::load_template( $template . $settings['layout'], $arg, true );
258 + $html .= Fns::load_template( $template . $layout, $arg, true );
255 259
256 260 /**
257 261 * After product template render hook.
258 262 */
@@ -477,9 +481,9 @@
477 481 // Pagination.
478 482 $this->html .= '<div class="rtsb-archive-pagination-wrap">';
479 483
480 484 if ( $pagination ) {
481 - if ( Fns::product_filters_has_ajax( 'shop' ) || Fns::product_filters_has_ajax( 'archive' ) ) {
485 + if ( Fns::product_filters_has_ajax( apply_filters( 'rtsb/builder/set/current/page/type', '' ) ) ) {
482 486 if ( $wp_query->max_num_pages > 1 ) {
483 487 $this->add_attribute(
484 488 'rtsb_load_more_btn_attr_' . $rand,
485 489 [
@@ -489,9 +493,9 @@
489 493 );
490 494
491 495 $this->html .=
492 496 "<div class='rtsb-load-more rtsb-pos-r'>
493 - <button '{$this->get_attribute_string( 'rtsb_load_more_btn_attr_' . $rand )}'>
497 + <button {$this->get_attribute_string( 'rtsb_load_more_btn_attr_' . $rand )}>
494 498 <span>" . esc_html__( 'Load More', 'shopbuilder' ) . "</span>
495 499 </button>
496 500 <div class='rtsb-loadmore-loading rtsb-ball-clip-rotate'><div></div></div>
497 501 </div>";
@@ -924,9 +928,9 @@
924 928 $arg['p_sale'] = Fns::is_module_active( 'product_badges' ) && $badge_module ? 'rtsb_yes' : Fns::get_promo_badge(
925 929 $product,
926 930 $meta['sale_badge_type'],
927 931 $meta['sale_badge_text'],
928 - $meta['out_of_stock_badge_text']
932 + apply_filters( 'rtsb/elementor/render/out_of_stock_badge_text', $meta['out_of_stock_badge_text'] )
929 933 );
930 934 }
931 935
932 936 $arg['badge_class'] = RenderHelpers::badge_class( $meta['badge_preset'] );