PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.3.0
ShopBuilder – WooCommerce Builder For Elementor v2.3.0
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 +17 -3 2.1.132.3.0 View file →
@@ -109,9 +109,9 @@
109 109 // Attributes for the container.
110 110 $container_attributes = [
111 111 'id' => $layout_id,
112 112 'class' => $container_classes,
113 - 'style' => $style_attr,
113 + 'style' => apply_filters( 'rtsb/product/container/attr', $style_attr, $settings ),
114 114 'data-layout' => $layout,
115 115 'data-tooltip-position' => $tooltip_attr,
116 116 ];
117 117
@@ -372,10 +372,16 @@
372 372 do_action( 'rtsb/elements/render/before_query', $settings, $args );
373 373
374 374 // Query.
375 375 $product_query = new WC_Product_Query( $args );
376 - $products = $pagination ? $product_query->get_products()->products : $product_query->get_products();
377 376
377 + /**
378 + * Product query hook.
379 + */
380 + do_action( 'rtsb/elements/render/product_query', $product_query, $this );
381 +
382 + $products = $pagination ? $product_query->get_products()->products : $product_query->get_products();
383 +
378 384 if ( ! empty( $products ) ) {
379 385 // Start rendering.
380 386 $hook_html .= $this->render_start( $metas, $settings, $temp_args );
381 387
@@ -868,8 +874,9 @@
868 874 $arg['anchor_class'] = null;
869 875 $arg['hover_img_html'] = null;
870 876 $arg['s_link'] = [];
871 877 $arg['add_to_cart'] = '';
878 + $arg['p_counter'] = absint( $i );
872 879 $arg['p_id'] = $post_id;
873 880 $arg['product'] = $product;
874 881 $arg['p_link'] = $product->get_permalink();
875 882 $arg['p_sale'] = '';
@@ -934,8 +941,10 @@
934 941 }
935 942
936 943 $arg['badge_class'] = RenderHelpers::badge_class( $meta['badge_preset'] );
937 944
945 + $meta['add_to_cart_text'] = apply_filters( 'rtsb/elementor/render/add_to_cart_text', $meta['add_to_cart_text'], $product );
946 +
938 947 if ( ! $meta['show_cart_text'] ) {
939 948 $meta['add_to_cart_text'] = '';
940 949 $meta['add_to_cart_success_text'] = '';
941 950 }
@@ -961,8 +970,9 @@
961 970 'text' => $meta['add_to_cart_text'],
962 971 'success' => $meta['add_to_cart_success_text'],
963 972 'icon_html' => $cart_icon,
964 973 'alignment' => $meta['add_to_cart_alignment'],
974 + 'product' => $product,
965 975 ]
966 976 );
967 977 }
968 978 }
@@ -1047,9 +1057,10 @@
1047 1057 'type' => $type,
1048 1058 'text' => $text,
1049 1059 'success' => $success,
1050 1060 'icon_html' => $icon_html,
1051 - 'alignment' => $alignment
1061 + 'alignment' => $alignment,
1062 + 'product' => $product
1052 1063 ) = $args;
1053 1064
1054 1065 $content = null;
1055 1066 $rand = wp_rand();
@@ -1082,8 +1093,10 @@
1082 1093
1083 1094 $content .= '<div class="rtsb-wc-add-to-cart-wrap">';
1084 1095
1085 1096 if ( 'variable' === $type || 'grouped' === $type ) {
1097 + $cart_attr = apply_filters( 'rtsb/elementor/render/cart_attributes', $cart_attr, $product );
1098 +
1086 1099 $this->add_attribute( 'rtsb_add_to_cart_button_' . $id . $rand, $cart_attr );
1087 1100
1088 1101 $text_btn = 'grouped' === $type ? __( 'View Products', 'shopbuilder' ) : __( 'Select Options', 'shopbuilder' );
1089 1102
@@ -1106,8 +1119,9 @@
1106 1119 } else {
1107 1120 $cart_attr['href'] = $cart_attr['href'] . '?add-to-cart=' . absint( $id );
1108 1121 $cart_attr['class'] .= ' rtsb-add-to-cart-btn';
1109 1122 $cart_attr['data-type'] = $type;
1123 + $cart_attr = apply_filters( 'rtsb/elementor/render/cart_attributes', $cart_attr, $product );
1110 1124
1111 1125 $this->add_attribute( 'rtsb_add_to_cart_button_' . $id . $rand, $cart_attr );
1112 1126
1113 1127 $content .= '<a ' . $this->get_attribute_string( 'rtsb_add_to_cart_button_' . $id . $rand ) . '>';