Version Description
- New Maintenance mode (new)
- Timer days option (new)
- Support metabox coming soon section
- Bug fixes
Download this release
Release Info
Developer | adamskaat |
Plugin | Countdown, Coming Soon – Countdown & Clock |
Version | 1.7.5 |
Comparing to | |
See all releases |
Code changes from version 1.7.4 to 1.7.5
- assets/css/admin.css +9 -4
- assets/js/ycdTimer.js +36 -3
- assets/views/admin/{comingSoon.php → comingSoon/comingSoon.php} +5 -4
- assets/views/admin/{comingSoonDesign.php → comingSoon/comingSoonDesign.php} +0 -0
- assets/views/admin/{comingSoonHeader.php → comingSoon/comingSoonHeader.php} +0 -0
- assets/views/admin/{comingSoonSettings.php → comingSoon/comingSoonSettings.php} +14 -0
- assets/views/admin/comingSoon/comingSoonSupport.php +21 -0
- assets/views/supportMetabox.php +1 -1
- assets/views/timerMainView.php +22 -0
- classes/countdown/ComingSoon.php +10 -1
- classes/countdown/TimerCountdown.php +88 -73
- config/config.php +3 -2
- config/optionsConfig.php +2 -0
- countdown-builder.php +2 -2
- helpers/AdminHelper.php +42 -0
- readme.txt +8 -2
assets/css/admin.css
CHANGED
@@ -711,8 +711,8 @@ div.ycd-tabs-text-header > div.ycd-toggle-icon-open {
|
|
711 |
}
|
712 |
|
713 |
.ycd-support-button-red {
|
714 |
-
border: 2px solid #e74c3c;
|
715 |
-
color: #e74c3c;
|
716 |
border-radius: 5px;
|
717 |
cursor: pointer !important;
|
718 |
padding: 5px 25px 5px 26px;
|
@@ -725,6 +725,11 @@ div.ycd-tabs-text-header > div.ycd-toggle-icon-open {
|
|
725 |
}
|
726 |
|
727 |
.ycd-support-button-red:hover {
|
728 |
-
background-color: #e74c3c;
|
729 |
-
color: #ffffff;
|
|
|
|
|
|
|
|
|
|
|
730 |
}
|
711 |
}
|
712 |
|
713 |
.ycd-support-button-red {
|
714 |
+
border: 2px solid #e74c3c !important;
|
715 |
+
color: #e74c3c !important;
|
716 |
border-radius: 5px;
|
717 |
cursor: pointer !important;
|
718 |
padding: 5px 25px 5px 26px;
|
725 |
}
|
726 |
|
727 |
.ycd-support-button-red:hover {
|
728 |
+
background-color: #e74c3c !important;
|
729 |
+
color: #ffffff !important;
|
730 |
+
}
|
731 |
+
|
732 |
+
.ycd-sub-options-wrapper label {
|
733 |
+
font-weight: normal;
|
734 |
+
padding-left: 20px;
|
735 |
}
|
assets/js/ycdTimer.js
CHANGED
@@ -193,7 +193,7 @@ YcdTimer.prototype.stopTimer = function() {
|
|
193 |
|
194 |
YcdTimer.prototype.resetTimer = function() {
|
195 |
var settings = this.getSettings();
|
196 |
-
this.remainingTime = (settings['hours'] * 60 * 60 * 1000) +
|
197 |
(settings['minutes'] * 60 * 1000) +
|
198 |
(settings['seconds'] * 1000);
|
199 |
this.renderTimer();
|
@@ -202,6 +202,9 @@ YcdTimer.prototype.resetTimer = function() {
|
|
202 |
YcdTimer.prototype.renderTimer = function() {
|
203 |
var deltaTime = this.remainingTime;
|
204 |
|
|
|
|
|
|
|
205 |
var hoursValue = Math.floor(deltaTime / (1000 * 60 * 60));
|
206 |
deltaTime = deltaTime % (1000 * 60 * 60);
|
207 |
|
@@ -210,12 +213,13 @@ YcdTimer.prototype.renderTimer = function() {
|
|
210 |
|
211 |
var secondsValue = Math.floor(deltaTime / (1000));
|
212 |
|
213 |
-
this.animateTime(hoursValue, minutesValue, secondsValue);
|
214 |
};
|
215 |
|
216 |
-
YcdTimer.prototype.animateTime = function(remainingHours, remainingMinutes, remainingSeconds) {
|
217 |
var id = this.getId();
|
218 |
/* position */
|
|
|
219 |
var hoursValueTarget = jQuery('.ycd-hours-value-'+id);
|
220 |
var minutesValueTarget = jQuery('.ycd-minutes-value-'+id);
|
221 |
var secondsValueTarget = jQuery('.ycd-seconds-value-'+id);
|
@@ -224,31 +228,42 @@ YcdTimer.prototype.animateTime = function(remainingHours, remainingMinutes, rema
|
|
224 |
minutesValueTarget.css('top', '0em');
|
225 |
secondsValueTarget.css('top', '0em');
|
226 |
|
|
|
227 |
var hoursNext = jQuery('.ycd-hours-next-value-'+id);
|
228 |
var minutesNext = jQuery('.ycd-minutes-next-value-'+id);
|
229 |
var secondsNext = jQuery('.ycd-seconds-next-value-'+id);
|
230 |
|
|
|
231 |
hoursNext.css('top', '0em');
|
232 |
minutesNext.css('top', '0em');
|
233 |
secondsNext.css('top', '0em');
|
234 |
|
|
|
235 |
var oldHoursString = hoursNext.first().text();
|
236 |
var oldMinutesString = minutesNext.first().text();
|
237 |
var oldSecondsString = secondsNext.first().text();
|
238 |
|
|
|
239 |
var hoursString = this.formatTime(remainingHours);
|
240 |
var minutesString = this.formatTime(remainingMinutes);
|
241 |
var secondsString = this.formatTime(remainingSeconds);
|
242 |
|
|
|
243 |
hoursValueTarget.text(oldHoursString);
|
244 |
minutesValueTarget.text(oldMinutesString);
|
245 |
secondsValueTarget.text(oldSecondsString);
|
246 |
|
|
|
247 |
hoursNext.text(hoursString);
|
248 |
minutesNext.text(minutesString);
|
249 |
secondsNext.text(secondsString);
|
250 |
|
251 |
/* set and animate */
|
|
|
|
|
|
|
|
|
|
|
252 |
if(oldHoursString !== hoursString) {
|
253 |
hoursValueTarget.animate({top: '-=1em'});
|
254 |
jQuery('.ycd-hours-next-value-'+id).animate({top: '-=1em'});
|
@@ -322,6 +337,7 @@ YcdTimer.prototype.livePreview = function() {
|
|
322 |
this.changeBackgroundImage();
|
323 |
this.changeAlignment();
|
324 |
this.changeMilliseconds();
|
|
|
325 |
};
|
326 |
|
327 |
YcdTimer.prototype.changeMilliseconds = function () {
|
@@ -341,6 +357,23 @@ YcdTimer.prototype.changeMilliseconds = function () {
|
|
341 |
});
|
342 |
};
|
343 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
YcdTimer.prototype.changeAlignment = function() {
|
345 |
var alignment = jQuery('.ycd-timer-content-alignment');
|
346 |
|
193 |
|
194 |
YcdTimer.prototype.resetTimer = function() {
|
195 |
var settings = this.getSettings();
|
196 |
+
this.remainingTime = (settings['days'] * 24 * 60 * 60 * 1000) + (settings['hours'] * 60 * 60 * 1000) +
|
197 |
(settings['minutes'] * 60 * 1000) +
|
198 |
(settings['seconds'] * 1000);
|
199 |
this.renderTimer();
|
202 |
YcdTimer.prototype.renderTimer = function() {
|
203 |
var deltaTime = this.remainingTime;
|
204 |
|
205 |
+
var daysValue = Math.floor(deltaTime / (1000 * 60 * 60* 24));
|
206 |
+
deltaTime = deltaTime % (1000 * 60 * 60* 24);
|
207 |
+
|
208 |
var hoursValue = Math.floor(deltaTime / (1000 * 60 * 60));
|
209 |
deltaTime = deltaTime % (1000 * 60 * 60);
|
210 |
|
213 |
|
214 |
var secondsValue = Math.floor(deltaTime / (1000));
|
215 |
|
216 |
+
this.animateTime(daysValue, hoursValue, minutesValue, secondsValue);
|
217 |
};
|
218 |
|
219 |
+
YcdTimer.prototype.animateTime = function(remainingDays, remainingHours, remainingMinutes, remainingSeconds) {
|
220 |
var id = this.getId();
|
221 |
/* position */
|
222 |
+
var daysValueTarget = jQuery('.ycd-days-value-'+id);
|
223 |
var hoursValueTarget = jQuery('.ycd-hours-value-'+id);
|
224 |
var minutesValueTarget = jQuery('.ycd-minutes-value-'+id);
|
225 |
var secondsValueTarget = jQuery('.ycd-seconds-value-'+id);
|
228 |
minutesValueTarget.css('top', '0em');
|
229 |
secondsValueTarget.css('top', '0em');
|
230 |
|
231 |
+
var daysNext = jQuery('.ycd-days-next-value-'+id);
|
232 |
var hoursNext = jQuery('.ycd-hours-next-value-'+id);
|
233 |
var minutesNext = jQuery('.ycd-minutes-next-value-'+id);
|
234 |
var secondsNext = jQuery('.ycd-seconds-next-value-'+id);
|
235 |
|
236 |
+
daysNext.css('top', '0em');
|
237 |
hoursNext.css('top', '0em');
|
238 |
minutesNext.css('top', '0em');
|
239 |
secondsNext.css('top', '0em');
|
240 |
|
241 |
+
var olDaysString = daysNext.first().text();
|
242 |
var oldHoursString = hoursNext.first().text();
|
243 |
var oldMinutesString = minutesNext.first().text();
|
244 |
var oldSecondsString = secondsNext.first().text();
|
245 |
|
246 |
+
var daysString = this.formatTime(remainingDays);
|
247 |
var hoursString = this.formatTime(remainingHours);
|
248 |
var minutesString = this.formatTime(remainingMinutes);
|
249 |
var secondsString = this.formatTime(remainingSeconds);
|
250 |
|
251 |
+
daysValueTarget.text(olDaysString);
|
252 |
hoursValueTarget.text(oldHoursString);
|
253 |
minutesValueTarget.text(oldMinutesString);
|
254 |
secondsValueTarget.text(oldSecondsString);
|
255 |
|
256 |
+
daysNext.text(daysString);
|
257 |
hoursNext.text(hoursString);
|
258 |
minutesNext.text(minutesString);
|
259 |
secondsNext.text(secondsString);
|
260 |
|
261 |
/* set and animate */
|
262 |
+
if(olDaysString !== daysString) {
|
263 |
+
daysValueTarget.animate({top: '-=1em'});
|
264 |
+
jQuery('.ycd-hours-next-value-'+id).animate({top: '-=1em'});
|
265 |
+
}
|
266 |
+
|
267 |
if(oldHoursString !== hoursString) {
|
268 |
hoursValueTarget.animate({top: '-=1em'});
|
269 |
jQuery('.ycd-hours-next-value-'+id).animate({top: '-=1em'});
|
337 |
this.changeBackgroundImage();
|
338 |
this.changeAlignment();
|
339 |
this.changeMilliseconds();
|
340 |
+
this.changeDays();
|
341 |
};
|
342 |
|
343 |
YcdTimer.prototype.changeMilliseconds = function () {
|
357 |
});
|
358 |
};
|
359 |
|
360 |
+
YcdTimer.prototype.changeDays = function () {
|
361 |
+
var daysCheckbox = jQuery('#ycd-countdown-timer-days');
|
362 |
+
if (!daysCheckbox.length) {
|
363 |
+
return false;
|
364 |
+
}
|
365 |
+
|
366 |
+
daysCheckbox.bind('change', function () {
|
367 |
+
var days = jQuery('.ycd-days-span');
|
368 |
+
if (jQuery(this).is(':checked')) {
|
369 |
+
days.removeClass('ycd-hide');
|
370 |
+
}
|
371 |
+
else {
|
372 |
+
days.addClass('ycd-hide');
|
373 |
+
}
|
374 |
+
});
|
375 |
+
};
|
376 |
+
|
377 |
YcdTimer.prototype.changeAlignment = function() {
|
378 |
var alignment = jQuery('.ycd-timer-content-alignment');
|
379 |
|
assets/views/admin/{comingSoon.php → comingSoon/comingSoon.php}
RENAMED
@@ -12,11 +12,12 @@ $defaultData = AdminHelper::defaultData();
|
|
12 |
<input type="submit" class="btn btn-primary" value="Save Changes">
|
13 |
</div>
|
14 |
</div>
|
15 |
-
<?php require_once
|
16 |
-
<?php require_once
|
17 |
-
<?php require_once
|
18 |
</div>
|
19 |
-
<div class="col-lg-
|
|
|
20 |
</div>
|
21 |
</div>
|
22 |
</form>
|
12 |
<input type="submit" class="btn btn-primary" value="Save Changes">
|
13 |
</div>
|
14 |
</div>
|
15 |
+
<?php require_once YCD_ADMIN_COMING_VIEWS_PATH.'comingSoonSettings.php'; ?>
|
16 |
+
<?php require_once YCD_ADMIN_COMING_VIEWS_PATH.'comingSoonHeader.php'; ?>
|
17 |
+
<?php require_once YCD_ADMIN_COMING_VIEWS_PATH.'comingSoonDesign.php'; ?>
|
18 |
</div>
|
19 |
+
<div class="col-lg-4">
|
20 |
+
<?php require_once YCD_ADMIN_COMING_VIEWS_PATH.'comingSoonSupport.php'; ?>
|
21 |
</div>
|
22 |
</div>
|
23 |
</form>
|
assets/views/admin/{comingSoonDesign.php → comingSoon/comingSoonDesign.php}
RENAMED
File without changes
|
assets/views/admin/{comingSoonHeader.php → comingSoon/comingSoonHeader.php}
RENAMED
File without changes
|
assets/views/admin/{comingSoonSettings.php → comingSoon/comingSoonSettings.php}
RENAMED
@@ -1,5 +1,6 @@
|
|
1 |
<?php
|
2 |
use ycd\AdminHelper;
|
|
|
3 |
$defaultData = AdminHelper::defaultData();
|
4 |
$createCountdown = YCD_COUNTDOWN_ADMIN_URL.'edit.php?post_type='.YCD_COUNTDOWN_POST_TYPE.'&page='.YCD_COUNTDOWN_POST_TYPE;
|
5 |
$countdownsIdAndTitle = \ycd\Countdown::getCountdownsIdAndTitle();
|
@@ -19,6 +20,19 @@ $countdownsIdAndTitle = \ycd\Countdown::getCountdownsIdAndTitle();
|
|
19 |
</label>
|
20 |
</div>
|
21 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
<div class="row form-group">
|
23 |
<div class="col-md-6">
|
24 |
<label><?php _e('Headline'); ?></label>
|
1 |
<?php
|
2 |
use ycd\AdminHelper;
|
3 |
+
use ycd\MultipleChoiceButton;
|
4 |
$defaultData = AdminHelper::defaultData();
|
5 |
$createCountdown = YCD_COUNTDOWN_ADMIN_URL.'edit.php?post_type='.YCD_COUNTDOWN_POST_TYPE.'&page='.YCD_COUNTDOWN_POST_TYPE;
|
6 |
$countdownsIdAndTitle = \ycd\Countdown::getCountdownsIdAndTitle();
|
20 |
</label>
|
21 |
</div>
|
22 |
</div>
|
23 |
+
<div class="row form-group">
|
24 |
+
<div class="col-md-6">
|
25 |
+
<label><?php _e('Mode'); ?></label>
|
26 |
+
</div>
|
27 |
+
<div class="col-md-6">
|
28 |
+
</div>
|
29 |
+
</div>
|
30 |
+
<div class="ycd-sub-options-wrapper">
|
31 |
+
<?php
|
32 |
+
$multipleChoiceButton = new MultipleChoiceButton($defaultData['comingSoonModes'], esc_attr($this->getOptionValue('ycd-coming-soon-mode')));
|
33 |
+
echo $multipleChoiceButton;
|
34 |
+
?>
|
35 |
+
</div>
|
36 |
<div class="row form-group">
|
37 |
<div class="col-md-6">
|
38 |
<label><?php _e('Headline'); ?></label>
|
assets/views/admin/comingSoon/comingSoonSupport.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="panel panel-default"style="margin-top: 48px;">
|
2 |
+
<div class="panel-heading"><?php _e('Support', YCD_TEXT_DOMAIN)?></div>
|
3 |
+
<div class="panel-body">
|
4 |
+
<h3 style="margin-top: 0;"><?php _e('Support', YCD_TEXT_DOMAIN)?></h3>
|
5 |
+
<p style="text-align: center">
|
6 |
+
We love our plugin and do the best to improve all features for You. But sometimes issues happened, or you can't find required feature that you need. Don't worry, just pressing here
|
7 |
+
<br>
|
8 |
+
<a href="<?php echo YCD_COUNTDOWN_SUPPORT_URL; ?>" style="font-size: 18px; cursor: pointer;" target="_blank">
|
9 |
+
<button type="button" id="ycd-report-problem-button" class="ycd-support-button-red" style="margin: 10px;">
|
10 |
+
<i class="ai1wm-icon-notification"></i>
|
11 |
+
<?php _e('Report issue', YCD_TEXT_DOMAIN)?>
|
12 |
+
</button>
|
13 |
+
</a><br>
|
14 |
+
and we will be happy to help you!</p>
|
15 |
+
<style>
|
16 |
+
.ycd-support-metabox {
|
17 |
+
text-align: left !important;
|
18 |
+
}
|
19 |
+
</style>
|
20 |
+
</div>
|
21 |
+
</div>
|
assets/views/supportMetabox.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
We love our plugin and do the best to improve all features for You. But sometimes issues happened, or you can't find required feature that you need. Don't worry, just pressing here
|
5 |
<br>
|
6 |
<a href="<?php echo YCD_COUNTDOWN_SUPPORT_URL; ?>" style="font-size: 18px; cursor: pointer;" target="_blank">
|
7 |
-
<button type="button" id="ycd-report-problem-button" class="ycd-support-button-red">
|
8 |
<i class="ai1wm-icon-notification"></i>
|
9 |
Report issue
|
10 |
</button>
|
4 |
We love our plugin and do the best to improve all features for You. But sometimes issues happened, or you can't find required feature that you need. Don't worry, just pressing here
|
5 |
<br>
|
6 |
<a href="<?php echo YCD_COUNTDOWN_SUPPORT_URL; ?>" style="font-size: 18px; cursor: pointer;" target="_blank">
|
7 |
+
<button type="button" id="ycd-report-problem-button" class="ycd-support-button-red" style="margin: 10px;">
|
8 |
<i class="ai1wm-icon-notification"></i>
|
9 |
Report issue
|
10 |
</button>
|
assets/views/timerMainView.php
CHANGED
@@ -27,6 +27,28 @@ $textFontFamily = $this->getOptionValue('ycd-text-font-family');
|
|
27 |
<input type="number" name="ycd-timer-seconds" id="ycdTimeSeconds" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="seconds" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-seconds'))?>">
|
28 |
</div>
|
29 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
<div class="row form-group">
|
31 |
<div class="col-md-6">
|
32 |
<label for="ycd-countdown-timer-milliseconds" class="ycd-label-of-switch"><?php _e('Enable Miliseconds', YCD_TEXT_DOMAIN); ?></label>
|
27 |
<input type="number" name="ycd-timer-seconds" id="ycdTimeSeconds" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="seconds" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-seconds'))?>">
|
28 |
</div>
|
29 |
</div>
|
30 |
+
<div class="row form-group">
|
31 |
+
<div class="col-md-6">
|
32 |
+
<label for="ycd-countdown-timer-days" class="ycd-label-of-switch"><?php _e('Enable Days', YCD_TEXT_DOMAIN); ?></label>
|
33 |
+
</div>
|
34 |
+
<div class="col-md-6">
|
35 |
+
<label class="ycd-switch">
|
36 |
+
<input type="checkbox" id="ycd-countdown-timer-days" name="ycd-countdown-timer-days" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-countdown-timer-days'); ?>>
|
37 |
+
<span class="ycd-slider ycd-round"></span>
|
38 |
+
</label>
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
+
<div class="ycd-accordion-content ycd-hide-content">
|
42 |
+
<div class="row form-group">
|
43 |
+
<div class="col-md-6">
|
44 |
+
<label for="ycdTimeDays"><?php _e('Days', YCD_TEXT_DOMAIN); ?></label>
|
45 |
+
</div>
|
46 |
+
<div class="col-md-2">
|
47 |
+
<input type="number" name="ycd-timer-days" id="ycdTimeDays" min="0" max="60" class="form-control ycd-timer-time-settings" data-type="days" value="<?php echo esc_attr($this->getOptionValue('ycd-timer-days'))?>">
|
48 |
+
</div>
|
49 |
+
</div>
|
50 |
+
</div>
|
51 |
+
|
52 |
<div class="row form-group">
|
53 |
<div class="col-md-6">
|
54 |
<label for="ycd-countdown-timer-milliseconds" class="ycd-label-of-switch"><?php _e('Enable Miliseconds', YCD_TEXT_DOMAIN); ?></label>
|
classes/countdown/ComingSoon.php
CHANGED
@@ -48,10 +48,18 @@ Class ComingSoon {
|
|
48 |
|
49 |
public function render() {
|
50 |
$comingSoonThis = $this;
|
|
|
51 |
require_once YCD_FRONT_VIEWS_PATH.'comingSoonTempleate.php';
|
52 |
exit();
|
53 |
}
|
54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
public static function defaults() {
|
56 |
$defaults = array();
|
57 |
|
@@ -74,6 +82,7 @@ Class ComingSoon {
|
|
74 |
$defaults['ycd-coming-soon-page-font-family'] = '';
|
75 |
$defaults['ycd-coming-soon-bg-video'] = '';
|
76 |
$defaults['ycd-coming-soon-bg-video-url'] = '';
|
|
|
77 |
$defaults['checkboxes'] = array(
|
78 |
'ycd-enable-coming-soon',
|
79 |
'ycd-coming-soon-bg-image',
|
@@ -125,7 +134,7 @@ Class ComingSoon {
|
|
125 |
|
126 |
public function adminView() {
|
127 |
|
128 |
-
require_once
|
129 |
}
|
130 |
|
131 |
public static function saveComingSoonSettings($postData) {
|
48 |
|
49 |
public function render() {
|
50 |
$comingSoonThis = $this;
|
51 |
+
$this->changeHeaderStatus();
|
52 |
require_once YCD_FRONT_VIEWS_PATH.'comingSoonTempleate.php';
|
53 |
exit();
|
54 |
}
|
55 |
|
56 |
+
private function changeHeaderStatus() {
|
57 |
+
$mode = $this->getOptionValue('ycd-coming-soon-mode');
|
58 |
+
if ($mode == 'maintenanceMode') {
|
59 |
+
status_header(503);
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
public static function defaults() {
|
64 |
$defaults = array();
|
65 |
|
82 |
$defaults['ycd-coming-soon-page-font-family'] = '';
|
83 |
$defaults['ycd-coming-soon-bg-video'] = '';
|
84 |
$defaults['ycd-coming-soon-bg-video-url'] = '';
|
85 |
+
$defaults['ycd-coming-soon-mode'] = 'comingSoonMode';
|
86 |
$defaults['checkboxes'] = array(
|
87 |
'ycd-enable-coming-soon',
|
88 |
'ycd-coming-soon-bg-image',
|
134 |
|
135 |
public function adminView() {
|
136 |
|
137 |
+
require_once YCD_ADMIN_COMING_VIEWS_PATH.'comingSoon.php';
|
138 |
}
|
139 |
|
140 |
public static function saveComingSoonSettings($postData) {
|
classes/countdown/TimerCountdown.php
CHANGED
@@ -27,8 +27,8 @@ class TimerCountdown extends Countdown {
|
|
27 |
);
|
28 |
$defaultOptions = $this->changeDefaultOptionsByNames($defaultOptions, $changingOptions);
|
29 |
|
30 |
-
|
31 |
-
|
32 |
|
33 |
public function metaboxes($metaboxes) {
|
34 |
unset($metaboxes['generalOptions']);
|
@@ -52,6 +52,7 @@ class TimerCountdown extends Countdown {
|
|
52 |
$allDataOptions = $this->getDataAllOptions();
|
53 |
|
54 |
$options['id'] = $this->getId();
|
|
|
55 |
$options['hours'] = $this->getOptionValue('ycd-timer-hours');
|
56 |
$options['minutes'] = $this->getOptionValue('ycd-timer-minutes');
|
57 |
$options['seconds'] = $this->getOptionValue('ycd-timer-seconds');
|
@@ -82,48 +83,48 @@ class TimerCountdown extends Countdown {
|
|
82 |
if(!is_admin()) {
|
83 |
$important = '!important';
|
84 |
}
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
|
128 |
private function getTimerContent() {
|
129 |
$id = $this->getId();
|
@@ -135,7 +136,7 @@ class TimerCountdown extends Countdown {
|
|
135 |
$millisecondsClass = 'ycd-hide';
|
136 |
if (!empty($enableMilliseconds)) {
|
137 |
$millisecondsClass = '';
|
138 |
-
|
139 |
|
140 |
$startTitle = $this->getOptionValue('ycd-timer-button-start-title');
|
141 |
$stopTitle = $this->getOptionValue('ycd-timer-button-stop-title');
|
@@ -144,36 +145,50 @@ class TimerCountdown extends Countdown {
|
|
144 |
$resetButtonLabel = $this->getOptionValue('ycd-timer-reset-button-label');
|
145 |
$stopButtonClassName = $this->getOptionValue('ycd-timer-button-stop-custom-class');
|
146 |
$resetButtonClassName = $this->getOptionValue('ycd-timer-reset-button-class-name');
|
|
|
147 |
$buttonTitle = ($autoCounting) ? $stopTitle: $startTitle;
|
|
|
|
|
|
|
|
|
|
|
148 |
ob_start();
|
149 |
?>
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
177 |
<?php
|
178 |
$content = ob_get_contents();
|
179 |
$content .= $this->contentStyles();
|
@@ -187,7 +202,7 @@ class TimerCountdown extends Countdown {
|
|
187 |
if(YCD_PKG_VERSION != YCD_FREE_VERSION) {
|
188 |
ScriptsIncluder::registerScript('ycdGoogleFonts.js');
|
189 |
ScriptsIncluder::enqueueScript('ycdGoogleFonts.js');
|
190 |
-
|
191 |
|
192 |
ScriptsIncluder::registerScript('ycdTimer.js');
|
193 |
ScriptsIncluder::localizeScript('ycdTimer.js', 'YcdArgs', array('isAdmin' => is_admin()));
|
27 |
);
|
28 |
$defaultOptions = $this->changeDefaultOptionsByNames($defaultOptions, $changingOptions);
|
29 |
|
30 |
+
return $defaultOptions;
|
31 |
+
}
|
32 |
|
33 |
public function metaboxes($metaboxes) {
|
34 |
unset($metaboxes['generalOptions']);
|
52 |
$allDataOptions = $this->getDataAllOptions();
|
53 |
|
54 |
$options['id'] = $this->getId();
|
55 |
+
$options['days'] = $this->getOptionValue('ycd-timer-days');
|
56 |
$options['hours'] = $this->getOptionValue('ycd-timer-hours');
|
57 |
$options['minutes'] = $this->getOptionValue('ycd-timer-minutes');
|
58 |
$options['seconds'] = $this->getOptionValue('ycd-timer-seconds');
|
83 |
if(!is_admin()) {
|
84 |
$important = '!important';
|
85 |
}
|
86 |
+
ob_start();
|
87 |
+
?>
|
88 |
+
<style type="text/css" id="ycd-digit-font-family-<?php echo $id; ?>">
|
89 |
+
.ycd-timer-wrapper-<?php echo $id; ?> .ycd-timer-box > span {
|
90 |
+
font-family: <?php echo $fontFamily ?>;
|
91 |
+
}
|
92 |
+
</style>
|
93 |
+
<style type="text/css" id="ycd-digit-font-size-<?php echo $id; ?>">
|
94 |
+
.ycd-timer-time.ycd-timer-wrapper-<?php echo $id; ?> {
|
95 |
+
font-size: <?php echo $fontSize ?>;
|
96 |
+
}
|
97 |
+
</style>
|
98 |
+
<style type="text/css" id="ycd-timer-content-padding-<?php echo $id; ?>">
|
99 |
+
.ycd-timer-content-wrapper-<?php echo $id; ?> {
|
100 |
+
padding: <?php echo $timerContentPadding ?>;
|
101 |
+
}
|
102 |
+
</style>
|
103 |
+
<style type="text/css" id="ycd-timer-content-padding-<?php echo $id; ?>">
|
104 |
+
.ycd-countdown-wrapper .ycd-timer-start-stop-<?php echo $id; ?> {
|
105 |
+
background-color: <?php echo $startStopBgColor ?>;
|
106 |
+
color: <?php echo $startStopColor ?>;
|
107 |
+
}
|
108 |
+
.ycd-countdown-wrapper .ycd-timer-reset-<?php echo $id; ?> {
|
109 |
+
background-color: <?php echo $resetBgColor ?>;
|
110 |
+
color: <?php echo $resetColor ?>;
|
111 |
+
}
|
112 |
+
</style>
|
113 |
+
<style type="text/css">
|
114 |
+
.ycd-timer-wrapper-<?php echo $id; ?> .ycd-timer-box span {
|
115 |
+
color: <?php echo $timerColor; ?> <?php echo $important; ?>;
|
116 |
+
}
|
117 |
+
.ycd-timer-wrapper-<?php echo $id; ?> {
|
118 |
+
<?php echo 'background-image: url('.$imageUrl.'); background-repeat: '.$imageRepeat.'; background-size: '.$bgImageSize.'; '; ?>
|
119 |
+
text-align: <?php echo $textAlign; ?>;
|
120 |
+
}
|
121 |
+
</style>
|
122 |
+
<?php
|
123 |
+
$styles = ob_get_contents();
|
124 |
+
ob_end_clean();
|
125 |
+
|
126 |
+
return $styles;
|
127 |
+
}
|
128 |
|
129 |
private function getTimerContent() {
|
130 |
$id = $this->getId();
|
136 |
$millisecondsClass = 'ycd-hide';
|
137 |
if (!empty($enableMilliseconds)) {
|
138 |
$millisecondsClass = '';
|
139 |
+
}
|
140 |
|
141 |
$startTitle = $this->getOptionValue('ycd-timer-button-start-title');
|
142 |
$stopTitle = $this->getOptionValue('ycd-timer-button-stop-title');
|
145 |
$resetButtonLabel = $this->getOptionValue('ycd-timer-reset-button-label');
|
146 |
$stopButtonClassName = $this->getOptionValue('ycd-timer-button-stop-custom-class');
|
147 |
$resetButtonClassName = $this->getOptionValue('ycd-timer-reset-button-class-name');
|
148 |
+
$timerDays = $this->getOptionValue('ycd-countdown-timer-days');
|
149 |
$buttonTitle = ($autoCounting) ? $stopTitle: $startTitle;
|
150 |
+
|
151 |
+
$daysClassName = 'ycd-hide';
|
152 |
+
if (!empty($timerDays)) {
|
153 |
+
$daysClassName = '';
|
154 |
+
}
|
155 |
ob_start();
|
156 |
?>
|
157 |
+
<div class="ycd-countdown-wrapper ycd-timer-content-wrapper-<?php echo esc_attr($id); ?>">
|
158 |
+
<div class="ycd-timer-time ycd-timer-container ycd-timer-wrapper-<?php echo esc_attr($id); ?>" data-options='<?php echo $options; ?>' data-id="<?php echo esc_attr($id); ?>">
|
159 |
+
<div class="timer-time-set ycd-timer-box" id="currentTime">
|
160 |
+
<div class="ycd-timer-span-wrapper">
|
161 |
+
<span id="ycdDaysValue" class="ycd-days-value-<?php echo esc_attr($id); ?> ycd-timer-number ycd-days-span <?php echo $daysClassName; ?>">00</span><!--
|
162 |
+
--><span class="ycd-dots ycd-days-span <?php echo $daysClassName; ?>">:</span><!--
|
163 |
+
--><span id="ycdHoursValue" class="ycd-hours-value-<?php echo esc_attr($id); ?> ycd-timer-number">00</span><!--
|
164 |
+
--><span class="ycd-dots">:</span><!--
|
165 |
+
--><span id="ycdMinutesValue" class="ycd-minutes-value-<?php echo esc_attr($id); ?> ycd-timer-number">00</span><!--
|
166 |
+
--><span class="ycd-dots">:</span><!--
|
167 |
+
--><span id="ycdSecondsValue" class="ycd-seconds-value-<?php echo esc_attr($id); ?> ycd-timer-number">00</span><!--
|
168 |
+
--><span class="ycd-milliseconds <?php echo $millisecondsClass; ?>">.</span><span class="ycd-milliseconds <?php echo $millisecondsClass; ?> ycd-milliseconds-value ycd-milliseconds-value-<?php echo esc_attr($id); ?>">000</span>
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
+
<div class="timer-time-set ycd-timer-box" id="nextTime" style="opacity: 0;">
|
172 |
+
<span id="ycdDaysNext" class="ycd-days-next-value-<?php echo esc_attr($id); ?> ycd-timer-number">00</span><!--
|
173 |
+
--><span class="ycd-dots">:</span><!--
|
174 |
+
--><span id="ycdHoursNext"class="ycd-hours-next-value-<?php echo esc_attr($id); ?>">00</span><!--
|
175 |
+
--><span>:</span><!--
|
176 |
+
--><span id="ycdMinutesNext" class="ycd-minutes-next-value-<?php echo esc_attr($id); ?>">00</span><!--
|
177 |
+
--><span>:</span><!--
|
178 |
+
--><span id="ycdSecondsNext" class="ycd-seconds-next-value-<?php echo esc_attr($id); ?>">00</span>
|
179 |
+
</div>
|
180 |
+
</div>
|
181 |
+
<div class="ycd-timmer-buttons ycd-timmer-buttons-<?php echo esc_attr($id); ?>">
|
182 |
+
<?php if (!empty($timerButton)): ?>
|
183 |
+
<button class="ycd-timer-start-stop ycd-timer-start-stop-<?php echo esc_attr($id); ?> <?php echo $stopButtonClassName; ?>" data-status="<?php echo esc_attr($autoCounting); ?>" data-start="<?php echo esc_attr($startTitle); ?>" data-stop="<?php echo esc_attr($stopTitle);?>"><?php echo esc_attr($buttonTitle); ?></button>
|
184 |
+
<?php endif; ?>
|
185 |
+
<?php if (!empty($resetButton)): ?>
|
186 |
+
<button class="ycd-timer-reset ycd-timer-reset-<?php echo esc_attr($id); ?> <?php echo $resetButtonClassName; ?>"><?php echo esc_attr($resetButtonLabel); ?></button>
|
187 |
+
<?php endif; ?>
|
188 |
+
</div>
|
189 |
+
<?php echo $this->renderSubscriptionForm(); ?>
|
190 |
+
<?php echo $this->renderProgressBar(); ?>
|
191 |
+
</div>
|
192 |
<?php
|
193 |
$content = ob_get_contents();
|
194 |
$content .= $this->contentStyles();
|
202 |
if(YCD_PKG_VERSION != YCD_FREE_VERSION) {
|
203 |
ScriptsIncluder::registerScript('ycdGoogleFonts.js');
|
204 |
ScriptsIncluder::enqueueScript('ycdGoogleFonts.js');
|
205 |
+
}
|
206 |
|
207 |
ScriptsIncluder::registerScript('ycdTimer.js');
|
208 |
ScriptsIncluder::localizeScript('ycdTimer.js', 'YcdArgs', array('isAdmin' => is_admin()));
|
config/config.php
CHANGED
@@ -31,6 +31,7 @@ class YcdCountdownConfig {
|
|
31 |
self::addDefine('YCD_VIEWS_PATH', YCD_ASSETS_PATH.'views/');
|
32 |
self::addDefine('YCD_VIEWS_MAIN_PATH', YCD_VIEWS_PATH.'main/');
|
33 |
self::addDefine('YCD_ADMIN_VIEWS_PATH', YCD_VIEWS_PATH.'admin/');
|
|
|
34 |
self::addDefine('YCD_FRONT_VIEWS_PATH', YCD_VIEWS_PATH.'front/');
|
35 |
self::addDefine('YCD_PREVIEW_VIEWS_PATH', YCD_VIEWS_PATH.'preview/');
|
36 |
self::addDefine('YCD_CSS_PATH', YCD_ASSETS_PATH.'css/');
|
@@ -67,8 +68,8 @@ class YcdCountdownConfig {
|
|
67 |
self::addDefine('YCD_CRON_REPEAT_INTERVAL', 1);
|
68 |
self::addDefine('YCD_AJAX_SUCCESS', 1);
|
69 |
self::addDefine('YCD_TABLE_LIMIT', 15);
|
70 |
-
self::addDefine('YCD_VERSION_PRO', 1.
|
71 |
-
self::addDefine('YCD_VERSION', 1.
|
72 |
self::addDefine('YCD_FREE_VERSION', 1);
|
73 |
self::addDefine('YCD_SILVER_VERSION', 2);
|
74 |
self::addDefine('YCD_GOLD_VERSION', 3);
|
31 |
self::addDefine('YCD_VIEWS_PATH', YCD_ASSETS_PATH.'views/');
|
32 |
self::addDefine('YCD_VIEWS_MAIN_PATH', YCD_VIEWS_PATH.'main/');
|
33 |
self::addDefine('YCD_ADMIN_VIEWS_PATH', YCD_VIEWS_PATH.'admin/');
|
34 |
+
self::addDefine('YCD_ADMIN_COMING_VIEWS_PATH', YCD_ADMIN_VIEWS_PATH.'comingSoon/');
|
35 |
self::addDefine('YCD_FRONT_VIEWS_PATH', YCD_VIEWS_PATH.'front/');
|
36 |
self::addDefine('YCD_PREVIEW_VIEWS_PATH', YCD_VIEWS_PATH.'preview/');
|
37 |
self::addDefine('YCD_CSS_PATH', YCD_ASSETS_PATH.'css/');
|
68 |
self::addDefine('YCD_CRON_REPEAT_INTERVAL', 1);
|
69 |
self::addDefine('YCD_AJAX_SUCCESS', 1);
|
70 |
self::addDefine('YCD_TABLE_LIMIT', 15);
|
71 |
+
self::addDefine('YCD_VERSION_PRO', 1.61);
|
72 |
+
self::addDefine('YCD_VERSION', 1.75);
|
73 |
self::addDefine('YCD_FREE_VERSION', 1);
|
74 |
self::addDefine('YCD_SILVER_VERSION', 2);
|
75 |
self::addDefine('YCD_GOLD_VERSION', 3);
|
config/optionsConfig.php
CHANGED
@@ -167,6 +167,7 @@ class YcdCountdownOptionsConfig {
|
|
167 |
$options[] = array('name' => 'ycd-countdown-save-duration-each-user', 'type' => 'checkbox', 'defaultValue' => '');
|
168 |
$options[] = array('name' => 'ycd-countdown-restart', 'type' => 'checkbox', 'defaultValue' => '');
|
169 |
$options[] = array('name' => 'ycd-countdown-restart-hour', 'type' => 'text', 'defaultValue' => '1');
|
|
|
170 |
$options[] = array('name' => 'ycd-timer-hours', 'type' => 'number', 'defaultValue' => 0);
|
171 |
$options[] = array('name' => 'ycd-timer-minutes', 'type' => 'number', 'defaultValue' => 0);
|
172 |
$options[] = array('name' => 'ycd-timer-seconds', 'type' => 'number', 'defaultValue' => 30);
|
@@ -238,6 +239,7 @@ class YcdCountdownOptionsConfig {
|
|
238 |
$options[] = array('name' => 'ycd-countdown-clock-mode', 'type' => 'text', 'defaultValue' => 'clock');
|
239 |
$options[] = array('name' => 'ycd-countdown-timer-button', 'type' => 'checkbox', 'defaultValue' => '');
|
240 |
$options[] = array('name' => 'ycd-countdown-timer-milliseconds', 'type' => 'checkbox', 'defaultValue' => '');
|
|
|
241 |
$options[] = array('name' => 'ycd-timer-auto-counting', 'type' => 'checkbox', 'defaultValue' => 'on');
|
242 |
$options[] = array('name' => 'ycd-timer-button-start-title', 'type' => 'text', 'defaultValue' => __('Start', YCD_TEXT_DOMAIN));
|
243 |
$options[] = array('name' => 'ycd-timer-button-stop-title', 'type' => 'text', 'defaultValue' => __('Stop', YCD_TEXT_DOMAIN));
|
167 |
$options[] = array('name' => 'ycd-countdown-save-duration-each-user', 'type' => 'checkbox', 'defaultValue' => '');
|
168 |
$options[] = array('name' => 'ycd-countdown-restart', 'type' => 'checkbox', 'defaultValue' => '');
|
169 |
$options[] = array('name' => 'ycd-countdown-restart-hour', 'type' => 'text', 'defaultValue' => '1');
|
170 |
+
$options[] = array('name' => 'ycd-timer-days', 'type' => 'number', 'defaultValue' => 0);
|
171 |
$options[] = array('name' => 'ycd-timer-hours', 'type' => 'number', 'defaultValue' => 0);
|
172 |
$options[] = array('name' => 'ycd-timer-minutes', 'type' => 'number', 'defaultValue' => 0);
|
173 |
$options[] = array('name' => 'ycd-timer-seconds', 'type' => 'number', 'defaultValue' => 30);
|
239 |
$options[] = array('name' => 'ycd-countdown-clock-mode', 'type' => 'text', 'defaultValue' => 'clock');
|
240 |
$options[] = array('name' => 'ycd-countdown-timer-button', 'type' => 'checkbox', 'defaultValue' => '');
|
241 |
$options[] = array('name' => 'ycd-countdown-timer-milliseconds', 'type' => 'checkbox', 'defaultValue' => '');
|
242 |
+
$options[] = array('name' => 'ycd-countdown-timer-days', 'type' => 'checkbox', 'defaultValue' => '');
|
243 |
$options[] = array('name' => 'ycd-timer-auto-counting', 'type' => 'checkbox', 'defaultValue' => 'on');
|
244 |
$options[] = array('name' => 'ycd-timer-button-start-title', 'type' => 'text', 'defaultValue' => __('Start', YCD_TEXT_DOMAIN));
|
245 |
$options[] = array('name' => 'ycd-timer-button-stop-title', 'type' => 'text', 'defaultValue' => __('Stop', YCD_TEXT_DOMAIN));
|
countdown-builder.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Countdown builder
|
4 |
-
* Description: The best countdown plugin
|
5 |
-
* Version: 1.7.
|
6 |
* Author: Adam Skaat
|
7 |
* Author URI: https://edmonsoft.com/countdown
|
8 |
* License: GPLv2
|
1 |
<?php
|
2 |
/**
|
3 |
* Plugin Name: Countdown builder
|
4 |
+
* Description: The best countdown plugin by Adam skaat
|
5 |
+
* Version: 1.7.5
|
6 |
* Author: Adam Skaat
|
7 |
* Author URI: https://edmonsoft.com/countdown
|
8 |
* License: GPLv2
|
helpers/AdminHelper.php
CHANGED
@@ -278,6 +278,48 @@ class AdminHelper {
|
|
278 |
),
|
279 |
)
|
280 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
|
282 |
$data['woo-show-products'] = array(
|
283 |
'template' => array(
|
278 |
),
|
279 |
)
|
280 |
);
|
281 |
+
|
282 |
+
$data['comingSoonModes'] =array(
|
283 |
+
'template' => array(
|
284 |
+
'fieldWrapperAttr' => array(
|
285 |
+
'class' => 'col-md-6 ycd-choice-option-wrapper'
|
286 |
+
),
|
287 |
+
'labelAttr' => array(
|
288 |
+
'class' => 'col-md-6 ycd-choice-option-wrapper'
|
289 |
+
),
|
290 |
+
'groupWrapperAttr' => array(
|
291 |
+
'class' => 'row form-group ycd-choice-wrapper'
|
292 |
+
)
|
293 |
+
),
|
294 |
+
'buttonPosition' => 'right',
|
295 |
+
'nextNewLine' => true,
|
296 |
+
'fields' => array(
|
297 |
+
array(
|
298 |
+
'attr' => array(
|
299 |
+
'type' => 'radio',
|
300 |
+
'name' => 'ycd-coming-soon-mode',
|
301 |
+
'class' => 'ycd-coming-soon-maintenance ycd-form-radio',
|
302 |
+
'data-attr-href' => 'ycd-coming-soon-redirect',
|
303 |
+
'value' => 'comingSoonMode'
|
304 |
+
),
|
305 |
+
'label' => array(
|
306 |
+
'name' => __('Coming soon', YCD_TEXT_DOMAIN)
|
307 |
+
)
|
308 |
+
),
|
309 |
+
array(
|
310 |
+
'attr' => array(
|
311 |
+
'type' => 'radio',
|
312 |
+
'name' => 'ycd-coming-soon-mode',
|
313 |
+
'class' => 'ycd-coming-soon-maintenance ycd-form-radio',
|
314 |
+
'data-attr-href' => 'ycd-coming-soon-maintenance',
|
315 |
+
'value' => 'maintenanceMode'
|
316 |
+
),
|
317 |
+
'label' => array(
|
318 |
+
'name' => __('Maintenance', YCD_TEXT_DOMAIN)
|
319 |
+
)
|
320 |
+
)
|
321 |
+
)
|
322 |
+
);
|
323 |
|
324 |
$data['woo-show-products'] = array(
|
325 |
'template' => array(
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
=== Countdown, Coming Soon - Countdown & Clock ===
|
2 |
Contributors: adamskaat
|
3 |
Tags: countdown, timer, countdown timer
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 5.4
|
6 |
-
Stable tag: 1.7.
|
7 |
Requires PHP: 5.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
@@ -65,6 +65,12 @@ Yes you can, we have Circle and Flipclock countdown popups.
|
|
65 |
You need to select the .zip file, there is no need to extract the zip file, just upload it.
|
66 |
|
67 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
= 1.7.4 =
|
69 |
* Timer start button Custom class name (new)
|
70 |
* Timer reset button Custom class name (new)
|
1 |
+
=== Countdown, Coming Soon, Maintenance - Countdown & Clock ===
|
2 |
Contributors: adamskaat
|
3 |
Tags: countdown, timer, countdown timer
|
4 |
Requires at least: 3.8
|
5 |
Tested up to: 5.4
|
6 |
+
Stable tag: 1.7.5
|
7 |
Requires PHP: 5.3
|
8 |
License: GPLv2 or later
|
9 |
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
65 |
You need to select the .zip file, there is no need to extract the zip file, just upload it.
|
66 |
|
67 |
== Changelog ==
|
68 |
+
= 1.7.5 =
|
69 |
+
* New Maintenance mode (new)
|
70 |
+
* Timer days option (new)
|
71 |
+
* Support metabox coming soon section
|
72 |
+
* Bug fixes
|
73 |
+
|
74 |
= 1.7.4 =
|
75 |
* Timer start button Custom class name (new)
|
76 |
* Timer reset button Custom class name (new)
|