PluginProbe ʕ •ᴥ•ʔ
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution / 4.6.5
ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution v4.6.5
4.9.2 4.9.1 4.9.0 2.0.0 2.1.0 2.2.0 2.2.1 2.2.2 2.3.0 2.4.0 2.5.0 2.5.1 3.0.0 3.1.0 3.1.1 4.0.0 4.0.1 4.1.0 4.1.1 4.2.0 4.2.1 4.3.0 4.3.1 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.6.7 4.6.8 4.6.9 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.7.6 4.7.7 4.7.8 4.7.9 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.8.5 4.8.6 4.8.7 4.8.8 4.8.9 trunk 0.1.2-beta 0.1.3-beta 0.1.4-beta 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.2.1 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.5.0 1.5.1 1.6.0 1.6.1 1.7.0 1.8.0 1.8.1 1.9.0
shopengine / widgets / product-image / screens / default.php
shopengine / widgets / product-image / screens Last commit date
default.php 2 years ago
default.php
78 lines
1 <?php
2
3 defined('ABSPATH') || exit;
4
5 \ShopEngine\Widgets\Widget_Helper::instance()->wc_template_filter();
6
7
8 /*
9 -----------------------------------------------
10 Changed flash sale text to percentage off text
11 -----------------------------------------------
12 */
13 if( $product->is_on_sale() && 'yes' === $settings['shopengine_sale_flash_status'] ) {
14
15
16 $flash_sale_position = 'position-' . $settings['shopengine_flash_sale_position'];
17 $sale_variations = [];
18 $first_variation = null;
19
20 // Variable Product support for sale badge for each single variation
21 if ($product->is_type('variable')) {
22 $available_variations = $product->get_available_variations();
23 $default_sale_price = null;
24
25 foreach ($available_variations as $variation) {
26 $regular_price = $variation['display_regular_price'];
27 $current_price = $variation['display_price'];
28
29 if($first_variation == null){
30 $first_variation = $variation['variation_id'];
31 }
32
33 if (!empty($regular_price) && !empty($current_price)) {
34
35 $s_p = ($regular_price - $current_price) / $regular_price * 100;
36
37 $sale_price = \Automattic\WooCommerce\Utilities\NumberUtil::round($s_p);
38 $sale_variations[$variation['variation_id']] = $sale_price;
39
40 if (is_null($default_sale_price)) {
41 $default_sale_price = $sale_price;
42
43 }
44 }
45 }
46
47 //variation for first variation is not on sale
48 $style = '';
49 if(count($sale_variations) > 0 && $sale_variations[ $first_variation ] < 1){
50 $style = 'display:none';
51
52 }
53
54 echo '<span style="'.esc_attr($style).'" class="onsale ' . esc_attr($flash_sale_position) . '" id="shopengine-variable-onsale-badge">' . esc_html($default_sale_price) . esc_html__('% OFF', 'shopengine') . '</span>';
55
56
57 // Pass sale variations data to JavaScript
58 echo '<script type="text/javascript">let ShopEngineSaleVariations = ' . wp_json_encode($sale_variations) . ';</script>';
59 } else {
60
61 $regular_price = $product->get_regular_price();
62 $current_price = $product->get_price();
63
64 if( !empty($regular_price) && !empty($current_price) ){
65
66 $flash_slae_position = 'position-' . $settings['shopengine_flash_sale_position'];
67 $s_p = ( $regular_price - $current_price ) / $regular_price * 100;
68 $sale_price = \Automattic\WooCommerce\Utilities\NumberUtil::round( $s_p );
69
70 echo '<span class="onsale ' . esc_attr($flash_slae_position) . '">' . esc_html($sale_price) . esc_html__( '% OFF', 'shopengine' ) . '</span>';
71 }
72 }
73
74 } // flash sale end
75
76
77 wc_get_template('single-product/product-image.php');
78