PluginProbe
ShopBuilder – WooCommerce Builder For Elementor / 2.0.2
ShopBuilder – WooCommerce Builder For Elementor v2.0.2
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/Modules/QuickView/QuickViewFrontEnd.php +36 -31 2.1.22.0.2 View file →
@@ -21,12 +21,12 @@
21 21 add_filter( 'rtwpvg_disable_enqueue_scripts', '__return_false', 11 );
22 22
23 23 // Template.
24 24
25 - add_action( 'rtsb/modules/quick_view/frontend/display', [ $this, 'button_hook' ] );
26 - // Add do_action( 'rtsb/modules/quick_view/frontend/display' ); for display anywhere.
25 + add_action( 'rtsb/modules/quick_view/frontend/display', [ $this, 'button_hook' ] );
26 + // Add do_action( 'rtsb/modules/quick_view/frontend/display' ); for display anywhere.
27 27
28 - add_action( 'rtsb/modules/quick_view/print_button', [ $this, 'print_button' ] );
28 + add_action( 'rtsb/modules/quick_view/print_button', [ $this, 'print_button' ] );
29 29
30 30 // Load action for product template.
31 31 $this->quick_view_action_template();
32 32
@@ -38,8 +38,9 @@
38 38
39 39 add_action( 'wp_ajax_nopriv_rtsb_load_product_quick_view', [ $this, 'product_quick_view_ajax' ] );
40 40
41 41 $this->attach_button();
42 +
42 43 }
43 44
44 45
45 46 /**
@@ -61,8 +62,9 @@
61 62 add_action( 'rtsb/wcqv/product/summary', 'woocommerce_template_single_price', 15 );
62 63 add_action( 'rtsb/wcqv/product/summary', 'woocommerce_template_single_excerpt', 20 );
63 64 add_action( 'rtsb/wcqv/product/summary', 'woocommerce_template_single_add_to_cart', 25 );
64 65 add_action( 'rtsb/wcqv/product/summary', 'woocommerce_template_single_meta', 30 );
66 +
65 67 }
66 68
67 69 public function product_quick_view_ajax() {
68 70 $product_id = absint( $_REQUEST['product_id'] );
@@ -81,16 +83,22 @@
81 83 // Set the main wp query for the product.
82 84 wp( 'p=' . $product_id . '&post_type=product' );
83 85
84 86 // Remove product thumbnails gallery.
85 - if ( defined( 'RTWPVG_VERSION' ) ) {
87 + if ( defined('RTWPVG_VERSION') ) {
86 88 remove_action( 'woocommerce_product_thumbnails', 'woocommerce_show_product_thumbnails', 20 );
87 89 }
88 - if ( ! defined( 'RTWPVG_VERSION' ) ) {
90 + if ( ! defined('RTWPVG_VERSION') ) {
89 91 add_action( 'woocommerce_product_thumbnails', [ $this, 'woocommerce_product_thumbnails_before' ], 1 );
90 - add_action( 'woocommerce_product_thumbnails', [ $this, 'woocommerce_product_thumbnails_after' ], 25 );
92 + add_action( 'woocommerce_product_thumbnails', [ $this, 'woocommerce_product_thumbnails_after'], 25 );
91 93 }
92 -
94 + // Change template for variable products.
95 + // if ( isset( $GLOBALS['yith_wccl'] ) ) {
96 + // $GLOBALS['yith_wccl']->obj = new YITH_WCCL_Frontend();
97 + // $GLOBALS['yith_wccl']->obj->override();
98 + // } elseif ( defined( 'YITH_WCCL_PREMIUM' ) && YITH_WCCL_PREMIUM && class_exists( 'YITH_WCCL_Frontend' ) ) {
99 + // $attributes = YITH_WCCL_Frontend()->create_attributes_json( $product_id, true );
100 + // }
93 101 ob_start();
94 102 Fns::load_template( 'quick-view/content' );
95 103 $html = ob_get_contents(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
96 104 ob_end_clean();
@@ -118,9 +126,9 @@
118 126 'hook' => 'woocommerce_after_shop_loop_item',
119 127 'priority' => 15,
120 128 ],
121 129 'custom' => [
122 - 'hook' => Fns::get_option( 'modules', 'quick_view', 'loop_custom_hook_name', '' ),
130 + 'hook' => Fns::get_option( 'modules', 'quick_view', 'loop_custom_hook_name', '' ),
123 131 'priority' => Fns::get_option( 'modules', 'quick_view', 'loop_custom_hook_priority', '' ),
124 132 ],
125 133 ]
126 134 );
@@ -148,10 +156,9 @@
148 156 * Print "Add to compare" button
149 157 *
150 158 * @return void
151 159 */
152 - public function woocommerce_product_thumbnails_before() {
153 - ?>
160 + public function woocommerce_product_thumbnails_before() { ?>
154 161 <div class="rtsb-gallery-images-wrapper">
155 162 <?php
156 163 }
157 164 /**
@@ -158,11 +165,9 @@
158 165 * Print "Add to compare" button
159 166 *
160 167 * @return void
161 168 */
162 - public function woocommerce_product_thumbnails_after() {
163 -
164 - ?>
169 + public function woocommerce_product_thumbnails_after() { ?>
165 170 </div>
166 171 <?php
167 172 }
168 173
@@ -174,12 +179,12 @@
174 179 public function button_hook() {
175 180 if ( ! apply_filters( 'rtsb/module/quick_view/show_button', true ) ) {
176 181 return;
177 182 }
178 - global $product;
179 - if ( $product instanceof WC_Product ) {
180 - do_action( 'rtsb/modules/quick_view/print_button', $product->get_id() );
181 - }
183 + global $product;
184 + if( $product instanceof WC_Product ) {
185 + do_action('rtsb/modules/quick_view/print_button', $product->get_id());
186 + }
182 187 }
183 188
184 189
185 190 /**
@@ -187,25 +192,25 @@
187 192 */
188 193 public function print_button( $product_id = 0 ) {
189 194 global $product;
190 195
191 - if ( ! $product instanceof WC_Product && $product_id ) {
192 - $product = wc_get_product( $product_id );
196 + // product object.
197 + $current_product = $product_id ? wc_get_product( $product_id ) : false;
198 + $current_product = $current_product ?: $product;
199 +
200 + if ( ! $current_product instanceof WC_Product ) {
201 + return '';
193 202 }
194 203
195 - // if ( ! $current_product instanceof WC_Product ) {
196 - // return '';
197 - // }
198 -
199 204 $classes = []; // button class.
200 - $button_text = Fns::get_option( 'modules', 'quick_view', 'button_text', esc_html__( 'Quick View', 'shopbuilder' ) );
205 + $button_text = Fns::get_option( 'modules', 'quick_view', 'button_text', esc_html__( 'Quick View', 'shopbuilder' ) );
201 206
202 - $icon_html = '<i class="rtsb-icon rtsb-icon-eye"></i>';
207 + $icon_html = '<i class="rtsb-icon rtsb-icon-eye"></i>';
203 208 // get product type.
204 - $product_type = $product->get_type();
209 + $product_type = $current_product->get_type();
205 210 $params = [
206 211 'classes' => $classes,
207 - 'product_id' => $product->get_id(),
212 + 'product_id' => $current_product->get_id(),
208 213 'product_type' => $product_type,
209 214 'button_text' => $button_text,
210 215 'left_text' => apply_filters( 'rtsb/module/quick_view/button_left_text', '' ),
211 216 'right_text' => apply_filters( 'rtsb/module/quick_view/button_right_text', '' ),
@@ -228,17 +233,17 @@
228 233 * @return string [HTML]
229 234 */
230 235 public function button_shortcode( $atts, $content = '' ) {
231 236 $this->enqueue();
232 - global $product;
237 + global $product;
233 238 if ( ! $product instanceof WC_Product ) {
234 239 return '';
235 240 }
236 241 ob_start();
237 242
238 - do_action( 'rtsb/modules/quick_view/print_button', $product->get_id() );
243 + do_action( 'rtsb/modules/quick_view/print_button', $product->get_id() );
239 244
240 - return ob_get_clean();
245 + return ob_get_clean();
241 246 }
242 247
243 248 public function enqueue() {
244 249 wp_enqueue_script( 'wc-add-to-cart-variation' );
@@ -296,9 +301,9 @@
296 301 * @return string Filtered HTML.
297 302 */
298 303 public function add_button_for_block( $item_html, $data, $product ) {
299 304 // Add the link "Add to wishlist" in the loop.
300 - $shop_btn_position = Fns::get_option( 'modules', 'quick_view', 'loop_btn_position', 'after_add_to_cart' );
305 + $shop_btn_position = Fns::get_option( 'modules', 'quick_view', 'loop_btn_position', 'after_add_to_cart' );
301 306 ob_start();
302 307 $this->print_button( $product->get_id() );
303 308 $button = ob_get_clean();
304 309 $parts = [];