Countdown, Coming Soon – Countdown & Clock - Version 1.6.4

Version Description

  • Coming Soon new menu type(new)
  • Coming Soon background color(new)
  • Coming Soon background image(new)
  • Count up bug fixed
Download this release

Release Info

Developer adamskaat
Plugin Icon 128x128 Countdown, Coming Soon – Countdown & Clock
Version 1.6.4
Comparing to
See all releases

Code changes from version 1.6.3 to 1.6.4

assets/css/Css.php CHANGED
@@ -19,6 +19,10 @@ class Css {
19
  public function getComingSoonPage() {
20
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_COMING_SOON;
21
  }
 
 
 
 
22
 
23
  public function getSupportPageKey() {
24
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_SUPPORT;
@@ -51,6 +55,7 @@ class Css {
51
  $newsletterKey = $this->getNewsletterPageKey();
52
  $morePlugins = $this->getMorePluginsPage();
53
  $comingSoonPage = $this->getComingSoonPage();
 
54
  $allowedPages = array(
55
  $settingsKey,
56
  $supportKey,
@@ -58,6 +63,7 @@ class Css {
58
  $newsletterKey,
59
  $morePlugins,
60
  $comingSoonPage,
 
61
  'ycdcountdown_page_ycdcountdown',
62
  );
63
  if(in_array($hook, $allowedPages) || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE) {
19
  public function getComingSoonPage() {
20
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_COMING_SOON;
21
  }
22
+
23
+ public function getComingSoonMenuPage() {
24
+ return 'toplevel_page_'.YCD_COUNTDOWN_COMING_SOON;
25
+ }
26
 
27
  public function getSupportPageKey() {
28
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_SUPPORT;
55
  $newsletterKey = $this->getNewsletterPageKey();
56
  $morePlugins = $this->getMorePluginsPage();
57
  $comingSoonPage = $this->getComingSoonPage();
58
+ $comingSoonMenuPage = $this->getComingSoonMenuPage();
59
  $allowedPages = array(
60
  $settingsKey,
61
  $supportKey,
63
  $newsletterKey,
64
  $morePlugins,
65
  $comingSoonPage,
66
+ $comingSoonMenuPage,
67
  'ycdcountdown_page_ycdcountdown',
68
  );
69
  if(in_array($hook, $allowedPages) || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE) {
assets/js/Admin.js CHANGED
@@ -27,7 +27,13 @@ YcdAdmin.prototype.init = function() {
27
  this.proOptions();
28
  this.changeTimer();
29
 
30
- this.comingSoonFavicon();
 
 
 
 
 
 
31
 
32
  if(ycd_admin_localized.pkgVersion == 1) {
33
  this.redirectToSupportPage();
@@ -265,6 +271,14 @@ YcdAdmin.prototype.changeButtonBoxShadow = function() {
265
  });
266
  };
267
 
 
 
 
 
 
 
 
 
268
  YcdAdmin.prototype.changeClcokWidth = function() {
269
  var width = jQuery('.ycd-clock-width');
270
 
@@ -696,7 +710,7 @@ YcdAdmin.prototype.accordionContent = function() {
696
 
697
  YcdAdmin.prototype.doAccordion = function(checkbox, isChecked) {
698
  var accordionContent = checkbox.parents('.row').nextAll('.ycd-accordion-content').first();
699
-
700
  if(isChecked) {
701
  accordionContent.removeClass('ycd-hide-content');
702
  }
@@ -728,33 +742,36 @@ YcdAdmin.prototype.initCountdownDateTimePicker = function() {
728
  });
729
  };
730
 
731
- YcdAdmin.prototype.comingSoonFavicon = function() {
732
  var custom_uploader;
733
- jQuery('.favicon-image-button').click(function(e) {
734
- e.preventDefault();
735
-
736
- /* If the uploader object has already been created, reopen the dialog */
737
- if (custom_uploader) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
738
  custom_uploader.open();
739
- return;
740
- }
741
- /* Extend the wp.media object */
742
- custom_uploader = wp.media.frames.file_frame = wp.media({
743
- titleFF: 'Choose Image',
744
- button: {
745
- text: 'Choose Image'
746
- },
747
- multiple: false
748
  });
749
- /* When a file is selected, grab the URL and set it as the text field's value */
750
- custom_uploader.on('select', function() {
751
- var attachment = custom_uploader.state().get('selection').first().toJSON();
752
- var imageURL = jQuery('#ycd-coming-soon-favicon');
753
- imageURL.val(attachment.url);
754
- imageURL.trigger('change');
755
- });
756
- /* Open the uploader dialog */
757
- custom_uploader.open();
758
  });
759
 
760
  /* its finish image uploader */
27
  this.proOptions();
28
  this.changeTimer();
29
 
30
+ this.imageButton();
31
+ var that = this;
32
+
33
+ jQuery(window).bind('ycdAccordionTriggered', function () {
34
+ that.imageButton();
35
+ });
36
+ this.comingSonColor();
37
 
38
  if(ycd_admin_localized.pkgVersion == 1) {
39
  this.redirectToSupportPage();
271
  });
272
  };
273
 
274
+ YcdAdmin.prototype.comingSonColor = function () {
275
+ jQuery('.ycd-coming-soon-color').minicolors({
276
+ change: function () {
277
+ liveChangeShadow();
278
+ }
279
+ });
280
+ };
281
+
282
  YcdAdmin.prototype.changeClcokWidth = function() {
283
  var width = jQuery('.ycd-clock-width');
284
 
710
 
711
  YcdAdmin.prototype.doAccordion = function(checkbox, isChecked) {
712
  var accordionContent = checkbox.parents('.row').nextAll('.ycd-accordion-content').first();
713
+ jQuery(window).trigger('ycdAccordionTriggered');
714
  if(isChecked) {
715
  accordionContent.removeClass('ycd-hide-content');
716
  }
742
  });
743
  };
744
 
745
+ YcdAdmin.prototype.imageButton = function() {
746
  var custom_uploader;
747
+ jQuery('.js-ycd-image-btn').each(function () {
748
+ jQuery(this).click(function(e) {
749
+ e.preventDefault();
750
+ var currentButton = jQuery(this);
751
+ /* If the uploader object has already been created, reopen the dialog */
752
+ if (window.custom_uploader) {
753
+ return;
754
+ }
755
+ /* Extend the wp.media object */
756
+ custom_uploader = wp.media.frames.file_frame = wp.media({
757
+ titleFF: 'Choose Image',
758
+ button: {
759
+ text: 'Choose Image'
760
+ },
761
+ multiple: false
762
+ });
763
+ window.custom_uploader = custom_uploader;
764
+ /* When a file is selected, grab the URL and set it as the text field's value */
765
+ custom_uploader.on('select', function() {
766
+ var attachment = custom_uploader.state().get('selection').first().toJSON();
767
+ var imageURL = jQuery('#'+jQuery(currentButton).data('src-id'));
768
+ imageURL.val(attachment.url);
769
+ imageURL.trigger('change');
770
+ custom_uploader, window.custom_uploader = '';
771
+ });
772
+ /* Open the uploader dialog */
773
  custom_uploader.open();
 
 
 
 
 
 
 
 
 
774
  });
 
 
 
 
 
 
 
 
 
775
  });
776
 
777
  /* its finish image uploader */
assets/js/Countdown.js CHANGED
@@ -725,7 +725,7 @@ YcdCountdown.prototype.startTimeCircle = function() {
725
  }
726
  that.addTimeToClock(options, jQuery(this));
727
  if (jQuery(this).data('expired')) {
728
- allOptions['countdownExpired'] = true;
729
  }
730
  that.setOptions(options);
731
  that.setAllOptions(allOptions);
725
  }
726
  that.addTimeToClock(options, jQuery(this));
727
  if (jQuery(this).data('expired')) {
728
+ options['countdownExpired'] = true;
729
  }
730
  that.setOptions(options);
731
  that.setAllOptions(allOptions);
assets/js/Js.php CHANGED
@@ -28,6 +28,10 @@ class Js {
28
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_SUBSCRIBERS;
29
  }
30
 
 
 
 
 
31
  public function getNewsletterPageKey() {
32
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_NEWSLETTER;
33
  }
@@ -70,6 +74,7 @@ class Js {
70
  $subscriberKey = $this->getSubscribersPageKey();
71
  $newsletterKey = $this->getNewsletterPageKey();
72
  $comingSoonPage = $this->getComingSoonPage();
 
73
 
74
  $allowedPages = array(
75
  $settingsKey,
@@ -77,10 +82,12 @@ class Js {
77
  $subscriberKey,
78
  $newsletterKey,
79
  $comingSoonPage,
 
80
  'ycdcountdown_page_ycdcountdown'
81
  );
82
 
83
  if(in_array($hook, $allowedPages) || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE || @$_GET['post_type'] == YCD_COUNTDOWN_POST_TYPE) {
 
84
  wp_enqueue_script('jquery-ui-core');
85
  if(function_exists('wp_enqueue_code_editor')) {
86
  wp_enqueue_code_editor(array( 'type' => 'text/html'));
28
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_SUBSCRIBERS;
29
  }
30
 
31
+ public function getComingSoonMenuPage() {
32
+ return 'toplevel_page_'.YCD_COUNTDOWN_COMING_SOON;
33
+ }
34
+
35
  public function getNewsletterPageKey() {
36
  return YCD_COUNTDOWN_POST_TYPE.'_page_'.YCD_COUNTDOWN_NEWSLETTER;
37
  }
74
  $subscriberKey = $this->getSubscribersPageKey();
75
  $newsletterKey = $this->getNewsletterPageKey();
76
  $comingSoonPage = $this->getComingSoonPage();
77
+ $comingSoonMenuPage = $this->getComingSoonMenuPage();
78
 
79
  $allowedPages = array(
80
  $settingsKey,
82
  $subscriberKey,
83
  $newsletterKey,
84
  $comingSoonPage,
85
+ $comingSoonMenuPage,
86
  'ycdcountdown_page_ycdcountdown'
87
  );
88
 
89
  if(in_array($hook, $allowedPages) || get_post_type(@$_GET['post']) == YCD_COUNTDOWN_POST_TYPE || @$_GET['post_type'] == YCD_COUNTDOWN_POST_TYPE) {
90
+
91
  wp_enqueue_script('jquery-ui-core');
92
  if(function_exists('wp_enqueue_code_editor')) {
93
  wp_enqueue_code_editor(array( 'type' => 'text/html'));
assets/views/admin/comingSoon.php CHANGED
@@ -1,3 +1,7 @@
 
 
 
 
1
  <div class="ycd-bootstrap-wrapper ycd-settings-wrapper">
2
  <form method="POST" action="<?php echo admin_url().'admin-post.php?action=ycdComingSoon'?>">
3
  <div class="row">
@@ -79,10 +83,69 @@
79
  <input type="text" class="form-control" name="ycd-coming-soon-favicon" id="ycd-coming-soon-favicon" value="<?php echo esc_attr($this->getOptionValue('ycd-coming-soon-favicon'));?>">
80
  </div>
81
  <div class="col-md-2">
82
- <button class="favicon-image-button btn btn-primary"><?php _e('Select Image', YCD_TEXT_DOMAIN); ?></button>
83
  </div>
84
  </div>
85
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
  </div>
87
  </div>
88
  <div class="col-lg-6">
1
+ <?php
2
+ use ycd\AdminHelper;
3
+ $defaultData = AdminHelper::defaultData();
4
+ ?>
5
  <div class="ycd-bootstrap-wrapper ycd-settings-wrapper">
6
  <form method="POST" action="<?php echo admin_url().'admin-post.php?action=ycdComingSoon'?>">
7
  <div class="row">
83
  <input type="text" class="form-control" name="ycd-coming-soon-favicon" id="ycd-coming-soon-favicon" value="<?php echo esc_attr($this->getOptionValue('ycd-coming-soon-favicon'));?>">
84
  </div>
85
  <div class="col-md-2">
86
+ <button class="js-ycd-image-btn btn btn-primary" data-src-id="ycd-coming-soon-favicon"><?php _e('Select Image', YCD_TEXT_DOMAIN); ?></button>
87
  </div>
88
  </div>
89
  </div>
90
+ </div>
91
+ <div class="panel panel-default">
92
+ <div class="panel-heading"><?php _e('Design', YCD_TEXT_DOMAIN)?></div>
93
+ <div class="panel-body ycd-bootstrap-wrapper">
94
+ <div class="row form-group">
95
+ <div class="col-md-6">
96
+ <label for="ycd-coming-soon-title"><?php _e('Background Color', YCD_TEXT_DOMAIN); ?></label>
97
+ </div>
98
+ <div class="col-md-6">
99
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
100
+ <input type="text" id="ycd-coming-soon-background-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-coming-soon-background-color" class="minicolors-input form-control ycd-coming-soon-color" value="<?php echo esc_attr($this->getOptionValue('ycd-coming-soon-background-color')); ?>">
101
+ </div>
102
+ </div>
103
+ </div>
104
+ <div class="row form-group">
105
+ <div class="col-md-6">
106
+ <label for="ycd-coming-soon-bg-image" class="ycd-label-of-switch"><?php _e('Background Image', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
107
+ </div>
108
+ <div class="col-md-6 ycd-circles-width-wrapper ycd-option-wrapper<?php echo $isPro; ?>">
109
+ <label class="ycd-switch">
110
+ <input type="checkbox" id="ycd-coming-soon-bg-image" name="ycd-coming-soon-bg-image" class="ycd-accordion-checkbox js-ycd-bg-image" <?php echo $this->getOptionValue('ycd-coming-soon-bg-image'); ?>>
111
+ <span class="ycd-slider ycd-round"></span>
112
+ </label>
113
+ </div>
114
+ </div>
115
+ <div class="ycd-accordion-content ycd-hide-content">
116
+ <div class="row form-group">
117
+ <div class="col-md-6">
118
+ <label for="" class="ycd-label-of-select"><?php _e('Background Size', YCD_TEXT_DOMAIN); ?></label>
119
+ </div>
120
+ <div class="col-md-6 ycd-circles-width-wrapper">
121
+ <?php echo AdminHelper::selectBox($defaultData['bg-image-size'], esc_attr($this->getOPtionValue('ycd-coming-soon-image-size')), array('name' => 'ycd-coming-soon-image-size', 'class' => 'js-ycd-select js-ycd-bg-size')); ?>
122
+ </div>
123
+ </div>
124
+ <div class="row form-group">
125
+ <div class="col-md-6">
126
+ <label for="" class="ycd-label-of-select"><?php _e('Background Repeat', YCD_TEXT_DOMAIN); ?></label>
127
+ </div>
128
+ <div class="col-md-6 ycd-circles-width-wrapper">
129
+ <?php echo AdminHelper::selectBox($defaultData['bg-image-repeat'], esc_attr($this->getOPtionValue('ycd-coming-soon-bg-image-repeat')), array('name' => 'ycd-coming-soon-bg-image-repeat', 'class' => 'js-ycd-select js-bg-image-repeat')); ?>
130
+ </div>
131
+ </div>
132
+ <div class="row form-group">
133
+ <div class="col-md-6">
134
+ <input id="js-coming-soon-upload-image-button" class="js-ycd-image-btn btn btn-primary" data-src-id="ycd-coming-soon-bg-image-url" type="button" value="<?php _e('Select Image', YCD_TEXT_DOMAIN)?>">
135
+ </div>
136
+ <div class="col-md-6 ycd-circles-width-wrapper">
137
+ <input type="url" name="ycd-coming-soon-bg-image-url" id="ycd-coming-soon-bg-image-url" class="form-control" value="<?php echo esc_attr($this->getOptionValue('ycd-coming-soon-bg-image-url')); ?>">
138
+ </div>
139
+ </div>
140
+ </div>
141
+ <?php if(YCD_PKG_VERSION == YCD_FREE_VERSION): ?>
142
+ <a href="<?= YCD_COUNTDOWN_PRO_URL; ?>" target="_blank">
143
+ <div class="ycd-pro ycd-pro-options-div">
144
+ <p class="ycd-pro-options-title">PRO Features</p>
145
+ </div>
146
+ </a>
147
+ <?php endif;?>
148
+ </div>
149
  </div>
150
  </div>
151
  <div class="col-lg-6">
assets/views/front/comingSoonTempleate.php CHANGED
@@ -6,14 +6,14 @@
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
  <?php echo apply_filters('YcdComingSoonPageHeaderContent', ''); ?>
8
  </head>
9
- <body>
10
  <div style="text-align: center">
11
- <?php echo apply_filters('YcdComingSoonPageBeforeHeader', ''); ?>
12
- <?php echo apply_filters('YcdComingSoonPageHeader', ''); ?>
13
- <?php echo apply_filters('YcdComingSoonPageAfterHeader', ''); ?>
14
- <?php echo apply_filters('YcdComingSoonPageBeforeMessage', ''); ?>
15
- <?php echo apply_filters('YcdComingSoonPageMessage', ''); ?>
16
- <?php echo apply_filters('YcdComingSoonPageAfterMessage', ''); ?>
17
  </div>
18
  </body>
19
  </html>
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
  <?php echo apply_filters('YcdComingSoonPageHeaderContent', ''); ?>
8
  </head>
9
+ <body class="ycd-body">
10
  <div style="text-align: center">
11
+ <?php echo apply_filters('YcdComingSoonPageBeforeHeader', '', $comingSoonThis); ?>
12
+ <?php echo apply_filters('YcdComingSoonPageHeader', '', $comingSoonThis); ?>
13
+ <?php echo apply_filters('YcdComingSoonPageAfterHeader', '', $comingSoonThis); ?>
14
+ <?php echo apply_filters('YcdComingSoonPageBeforeMessage', '', $comingSoonThis); ?>
15
+ <?php echo apply_filters('YcdComingSoonPageMessage', '', $comingSoonThis); ?>
16
+ <?php echo apply_filters('YcdComingSoonPageAfterMessage', '', $comingSoonThis); ?>
17
  </div>
18
  </body>
19
  </html>
classes/Actions.php CHANGED
@@ -36,6 +36,16 @@ class Actions {
36
  add_action('admin_head', array($this, 'adminHead'));
37
  add_action('wp_enqueue_scripts', array($this, 'enqueueScripts'));
38
  add_filter('mce_external_plugins', array($this, 'editorButton'));
 
 
 
 
 
 
 
 
 
 
39
  }
40
 
41
  public function editorButton($buttons) {
36
  add_action('admin_head', array($this, 'adminHead'));
37
  add_action('wp_enqueue_scripts', array($this, 'enqueueScripts'));
38
  add_filter('mce_external_plugins', array($this, 'editorButton'));
39
+ add_action("admin_menu", array($this, 'adminMenu'));
40
+ }
41
+
42
+ public function adminMenu() {
43
+ add_menu_page(__('Coming Soon', YCD_TEXT_DOMAIN), __('Coming Soon', YCD_TEXT_DOMAIN), 'manage_options', 'ycdComingSoon', array($this, 'comingSoonMenu'), 'dashicons-clock', 11);
44
+ }
45
+
46
+ public function comingSoonMenu() {
47
+ $comingSoonObj = new ComingSoon();
48
+ $comingSoonObj->adminView();
49
  }
50
 
51
  public function editorButton($buttons) {
classes/countdown/ComingSoon.php CHANGED
@@ -47,6 +47,7 @@ Class ComingSoon {
47
  }
48
 
49
  public function render() {
 
50
  require_once YCD_FRONT_VIEWS_PATH.'comingSoonTempleate.php';
51
  exit();
52
  }
@@ -60,7 +61,12 @@ Class ComingSoon {
60
  $defaults['ycd-coming-soon-title'] = '';
61
  $defaults['ycd-coming-soon-seo-description'] = '';
62
  $defaults['ycd-coming-soon-favicon'] = '';
63
- $defaults['checkboxes'] = array('ycd-enable-coming-soon');
 
 
 
 
 
64
 
65
  return apply_filters('ycdComingSoonDefaults', $defaults);
66
  }
47
  }
48
 
49
  public function render() {
50
+ $comingSoonThis = $this;
51
  require_once YCD_FRONT_VIEWS_PATH.'comingSoonTempleate.php';
52
  exit();
53
  }
61
  $defaults['ycd-coming-soon-title'] = '';
62
  $defaults['ycd-coming-soon-seo-description'] = '';
63
  $defaults['ycd-coming-soon-favicon'] = '';
64
+ $defaults['ycd-coming-soon-bg-image'] = '';
65
+ $defaults['ycd-coming-soon-image-size'] = '';
66
+ $defaults['ycd-coming-soon-bg-image-repeat'] = '';
67
+ $defaults['ycd-coming-soon-bg-image-url'] = '';
68
+ $defaults['ycd-coming-soon-background-color'] = '';
69
+ $defaults['checkboxes'] = array('ycd-enable-coming-soon', 'ycd-coming-soon-bg-image');
70
 
71
  return apply_filters('ycdComingSoonDefaults', $defaults);
72
  }
config/config.php CHANGED
@@ -64,7 +64,7 @@ class YcdCountdownConfig {
64
  self::addDefine('YCD_AJAX_SUCCESS', 1);
65
  self::addDefine('YCD_TABLE_LIMIT', 15);
66
  self::addDefine('YCD_VERSION_PRO', 1.49);
67
- self::addDefine('YCD_VERSION', 1.63);
68
  self::addDefine('YCD_FREE_VERSION', 1);
69
  self::addDefine('YCD_SILVER_VERSION', 2);
70
  self::addDefine('YCD_GOLD_VERSION', 3);
64
  self::addDefine('YCD_AJAX_SUCCESS', 1);
65
  self::addDefine('YCD_TABLE_LIMIT', 15);
66
  self::addDefine('YCD_VERSION_PRO', 1.49);
67
+ self::addDefine('YCD_VERSION', 1.634);
68
  self::addDefine('YCD_FREE_VERSION', 1);
69
  self::addDefine('YCD_SILVER_VERSION', 2);
70
  self::addDefine('YCD_GOLD_VERSION', 3);
countdown-builder.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Countdown builder
4
  * Description: The best countdown plugin
5
- * Version: 1.6.3
6
  * Author: Adam Skaat
7
  * Author URI: https://edmonsoft.com/countdown
8
  * License: GPLv2
2
  /**
3
  * Plugin Name: Countdown builder
4
  * Description: The best countdown plugin
5
+ * Version: 1.6.4
6
  * Author: Adam Skaat
7
  * Author URI: https://edmonsoft.com/countdown
8
  * License: GPLv2
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: adamskaat
3
  Tags: countdown, timer, countdown timer
4
  Requires at least: 3.8
5
  Tested up to: 5.3
6
- Stable tag: 1.6.3
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -64,6 +64,12 @@ Yes you can, we have Circle and Flipclock countdown popups.
64
  You need to select the .zip file, there is no need to extract the zip file, just upload it.
65
 
66
  == Changelog ==
 
 
 
 
 
 
67
  = 1.6.3 =
68
  * Coming Soon Header Title (new)
69
  * Coming Soon SEO Meta Description (new)
3
  Tags: countdown, timer, countdown timer
4
  Requires at least: 3.8
5
  Tested up to: 5.3
6
+ Stable tag: 1.6.4
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
64
  You need to select the .zip file, there is no need to extract the zip file, just upload it.
65
 
66
  == Changelog ==
67
+ = 1.6.4 =
68
+ * Coming Soon new menu type(new)
69
+ * Coming Soon background color(new)
70
+ * Coming Soon background image(new)
71
+ * Count up bug fixed
72
+
73
  = 1.6.3 =
74
  * Coming Soon Header Title (new)
75
  * Coming Soon SEO Meta Description (new)