PluginProbe
Countix Sales Countdown Timer / trunk
Countix Sales Countdown Timer vtrunk
sales-countdown-timer / js / shortcode-script.js

shortcode-script.js in Countix Sales Countdown Timer trunk, at js/shortcode-script.js

244 lines 14.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 // let count = 0;
2 let vi_sctr_x;
3 // vi_sctr_x = setInterval(function () {
4 // count++;
5 // }, 1000);
6
7 jQuery(document).ready(function ($) {
8 //sales countdown timer
9 'use strict';
10 sctv_run_countdown();
11 let variation_form = jQuery('body').find('.variations_form').closest('form');
12 if (variation_form.length) {
13 variation_form.on("show_variation", function (event, variation) {
14 sctv_run_countdown();
15 });
16 }
17 //flatsome
18 jQuery(document).on('append.infiniteScroll', function (event, response, path, items) {
19 sctv_run_countdown();
20 });
21 //ajaxComplete
22 jQuery(document).on('ajaxComplete', function (event, jqxhr, settings) {
23 sctv_run_countdown();
24 return false;
25 });
26 });
27 //compatibale vs Elementor
28 jQuery(window).on('elementor/frontend/init', function () {
29 'use strict';
30 if (window.elementor) {
31 elementorFrontend.hooks.addAction('frontend/element_ready/sales-countdown-timer.default', function () {
32 if (jQuery('.woo-sctr-value-bar').length > 0) {
33 jQuery('.woo-sctr-value-bar').each(function () {
34 jQuery(this).css({'transform': 'rotate(' + jQuery(this).data('deg') + 'deg)'});
35 });
36 }
37 sctv_run_countdown();
38 });
39 }
40 });
41
42 function sctv_run_countdown() {
43 clearInterval(vi_sctr_x);
44 let distance, date, hours, minutes, seconds, i;
45 let dates_deg, hours_deg, minutes_deg, seconds_deg;
46 // Update the countdown every 1 second
47 let wooCountdown = jQuery('.woo-sctr-shortcode-wrap-wrap'),
48 time_end_parent = jQuery('.woo-sctr-shortcode-wrap-wrap .woo-sctr-shortcode-data-end_time');
49 let current_time = Date.now();
50 distance = time_end_parent.map(function () {
51 let time_expire, countdown_time_start = jQuery(this).data('countdown_time_start') || 0,
52 countdown_time_end = jQuery(this).data('countdown_time_end') || 0;
53 if (countdown_time_start == 0 || countdown_time_end == 0) {
54 return 0;
55 }
56 countdown_time_start = new Date(countdown_time_start.replace(' ', 'T') + 'Z');
57 countdown_time_start = countdown_time_start.valueOf();
58 countdown_time_end = new Date(countdown_time_end.replace(' ', 'T') + 'Z');
59 countdown_time_end = countdown_time_end.valueOf();
60 time_expire = countdown_time_end > current_time ? countdown_time_end - current_time : 0;
61 if (time_expire) {
62 time_expire = Math.round(time_expire / 1000);
63 }
64 if (countdown_time_start < (current_time - 1000)) {
65 let container = jQuery(this).parent(),
66 date_container = container.find('.woo-sctr-shortcode-countdown-date'),
67 hour_container = container.find('.woo-sctr-shortcode-countdown-hour'),
68 minute_container = container.find('.woo-sctr-shortcode-countdown-minute'),
69 second_container = container.find('.woo-sctr-shortcode-countdown-second');
70 date = Math.floor(time_expire / 86400);
71 hours = Math.floor((time_expire % (86400)) / (3600));
72 minutes = Math.floor((time_expire % (3600)) / (60));
73 seconds = Math.floor((time_expire % (60)));
74 seconds_deg = seconds * 6;
75 if (seconds_deg < 180) {
76 second_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
77 second_container.find('.woo-sctr-first50-bar').hide();
78 } else {
79 second_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
80 second_container.find('.woo-sctr-first50-bar').show();
81 }
82 second_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + seconds_deg + 'deg)'});
83 /**/
84 second_container.find('.woo-sctr-shortcode-countdown-second-value-1').html((seconds > 0) ? ("0" + (seconds - 1)).slice(-2) : '59');
85 second_container.find('.woo-sctr-shortcode-countdown-second-value-2').html(("0" + seconds).slice(-2));
86 minutes_deg = (minutes > 0 ? (minutes - 1) : 59) * 6;
87 if (minutes_deg < 180) {
88 minute_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
89 minute_container.find('.woo-sctr-first50-bar').hide();
90 } else {
91 minute_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
92 minute_container.find('.woo-sctr-first50-bar').show();
93 }
94 minute_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + minutes_deg + 'deg)'});
95 minute_container.find('.woo-sctr-shortcode-countdown-minute-value-1').html((minutes > 0) ? ("0" + (minutes - 1)).slice(-2) : '59');
96 minute_container.find('.woo-sctr-shortcode-countdown-minute-value-2').html(("0" + minutes).slice(-2));
97
98 hours_deg = (hours > 0 ? (hours - 1) : 23) * 15;
99 if (hours_deg < 180) {
100 hour_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
101 hour_container.find('.woo-sctr-first50-bar').hide();
102 } else {
103 hour_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
104 hour_container.find('.woo-sctr-first50-bar').show();
105 }
106 hour_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + hours_deg + 'deg)'});
107 hour_container.find('.woo-sctr-shortcode-countdown-hour-value-1').html((hours > 0) ? ("0" + (hours - 1)).slice(-2) : '23');
108 hour_container.find('.woo-sctr-shortcode-countdown-hour-value-2').html(("0" + hours).slice(-2));
109 dates_deg = date > 0 ? (date - 1) : 0;
110 if (dates_deg < 180) {
111 date_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
112 date_container.find('.woo-sctr-first50-bar').hide();
113 } else {
114 date_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
115 date_container.find('.woo-sctr-first50-bar').show();
116 }
117 date_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + dates_deg + 'deg)'});
118 date_container.find('.woo-sctr-shortcode-countdown-date-value-1').html((date > 0) ? ("0" + (date - 1)).slice(-2) : '00');
119 date_container.find('.woo-sctr-shortcode-countdown-date-value-2').html(("0" + date).slice(-2));
120 if (date < 100) {
121 date = ("0" + date).slice(-2);
122 if (date == 0) {
123 container.find('.woo-sctr-shortcode-countdown-date').hide();
124 container.find('.woo-sctr-shortcode-wrap-wrap').find('.woo-sctr-shortcode-countdown-time-separator').eq(0).hide();
125 }
126 }
127 date_container.find('.woo-sctr-shortcode-countdown-date-value').html(date);
128 hour_container.find('.woo-sctr-shortcode-countdown-hour-value').html(("0" + hours).slice(-2));
129 minute_container.find('.woo-sctr-shortcode-countdown-minute-value').html(("0" + minutes).slice(-2));
130 second_container.find('.woo-sctr-shortcode-countdown-second-value').html(("0" + seconds).slice(-2));
131 }
132 return time_expire;
133 });
134 vi_sctr_x = setInterval(function () {
135 for (i = 0; i < wooCountdown.length; i++) {
136 let container = wooCountdown.eq(i),
137 date_container = container.find('.woo-sctr-shortcode-countdown-date'),
138 hour_container = container.find('.woo-sctr-shortcode-countdown-hour'),
139 minute_container = container.find('.woo-sctr-shortcode-countdown-minute'),
140 second_container = container.find('.woo-sctr-shortcode-countdown-second');
141 date = Math.floor(distance[i] / 86400);
142 hours = Math.floor((distance[i] % (86400)) / (3600));
143 minutes = Math.floor((distance[i] % (3600)) / (60));
144 seconds = Math.floor((distance[i] % (60)));
145 seconds_deg = seconds * 6;
146 if (seconds_deg < 180) {
147 second_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
148 second_container.find('.woo-sctr-first50-bar').hide();
149 } else {
150 second_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
151
152 second_container.find('.woo-sctr-first50-bar').show();
153 }
154 second_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + seconds_deg + 'deg)'});
155 /**/
156 second_container.find('.woo-sctr-shortcode-countdown-second-value-container-2').addClass('transition');
157 setTimeout(function () {
158 second_container.find('.woo-sctr-shortcode-countdown-second-value-container-2').removeClass('transition');
159 second_container.find('.woo-sctr-shortcode-countdown-second-value-1').html((seconds > 0) ? ("0" + (seconds - 1)).slice(-2) : '59');
160 second_container.find('.woo-sctr-shortcode-countdown-second-value-2').html(("0" + seconds).slice(-2));
161 }, 500);
162 if (seconds == 0 && (minutes > 0 || hours > 0 || date > 0)) {
163 minutes_deg = (minutes > 0 ? (minutes - 1) : 59) * 6;
164 if (minutes_deg < 180) {
165 minute_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
166 minute_container.find('.woo-sctr-first50-bar').hide();
167 } else {
168 minute_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
169 minute_container.find('.woo-sctr-first50-bar').show();
170 }
171 setTimeout(function () {
172 minute_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + minutes_deg + 'deg)'});
173 minute_container.find('.woo-sctr-shortcode-countdown-minute-value-container-2').addClass('transition');
174 setTimeout(function () {
175 minute_container.find('.woo-sctr-shortcode-countdown-minute-value-container-2').removeClass('transition');
176 minute_container.find('.woo-sctr-shortcode-countdown-minute-value-1').html((minutes > 0) ? ("0" + (minutes - 1)).slice(-2) : '59');
177 minute_container.find('.woo-sctr-shortcode-countdown-minute-value-2').html(("0" + minutes).slice(-2));
178 }, 500);
179 }, 1000);
180
181 if (minutes == 0 && (hours > 0 || date > 0)) {
182 hours_deg = (hours > 0 ? (hours - 1) : 23) * 15;
183 if (hours_deg < 180) {
184 hour_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
185 hour_container.find('.woo-sctr-first50-bar').hide();
186 } else {
187 hour_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
188 hour_container.find('.woo-sctr-first50-bar').show();
189 }
190 setTimeout(function () {
191 hour_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + hours_deg + 'deg)'});
192 hour_container.find('.woo-sctr-shortcode-countdown-hour-value-container-2').addClass('transition');
193 setTimeout(function () {
194 hour_container.find('.woo-sctr-shortcode-countdown-hour-value-container-2').removeClass('transition');
195 hour_container.find('.woo-sctr-shortcode-countdown-hour-value-1').html((hours > 0) ? ("0" + (hours - 1)).slice(-2) : '23');
196 hour_container.find('.woo-sctr-shortcode-countdown-hour-value-2').html(("0" + hours).slice(-2));
197
198 }, 500);
199 }, 1000);
200
201 if (hours == 0 && date > 0) {
202 dates_deg = date > 0 ? (date - 1) : 0;
203 if (dates_deg < 180) {
204 date_container.find('.woo-sctr-progress-circle').removeClass('woo-sctr-over50');
205 date_container.find('.woo-sctr-first50-bar').hide();
206 } else {
207 date_container.find('.woo-sctr-progress-circle').addClass('woo-sctr-over50');
208 date_container.find('.woo-sctr-first50-bar').show();
209 }
210 setTimeout(function () {
211 date_container.find('.woo-sctr-value-bar').css({'transform': 'rotate(' + dates_deg + 'deg)'});
212 date_container.find('.woo-sctr-shortcode-countdown-date-value-container-2').addClass('transition');
213 setTimeout(function () {
214 date_container.find('.woo-sctr-shortcode-countdown-date-value-container-2').removeClass('transition');
215 date_container.find('.woo-sctr-shortcode-countdown-date-value-1').html((date > 0) ? ("0" + (date - 1)).slice(-2) : '00');
216 date_container.find('.woo-sctr-shortcode-countdown-date-value-2').html(("0" + date).slice(-2));
217
218 }, 500);
219 }, 1000);
220
221 }
222 }
223 }
224 if (date < 100) {
225 date = ("0" + date).slice(-2);
226 // if (date == 0) {
227 // container.find('.woo-sctr-shortcode-countdown-date').hide();
228 // container.find('.woo-sctr-shortcode-countdown-time-separator').eq(0).hide();
229 // }
230 }
231 date_container.find('.woo-sctr-shortcode-countdown-date-value').html(date);
232 hour_container.find('.woo-sctr-shortcode-countdown-hour-value').html(("0" + hours).slice(-2));
233 minute_container.find('.woo-sctr-shortcode-countdown-minute-value').html(("0" + minutes).slice(-2));
234 second_container.find('.woo-sctr-shortcode-countdown-second-value').html(("0" + seconds).slice(-2));
235 distance[i]--;
236 if (distance[i] < 0) {
237 clearInterval(vi_sctr_x);
238 // window.location.href = window.location.href;
239 window.location.reload();
240 }
241 }
242 }, 1000);
243 }
244