Countdown, Coming Soon – Countdown & Clock - Version 2.2.4

Version Description

  • Added Countdown Enable start date (New)
  • Added Clocks Background color change possibility.
  • Fixed Security issue during countdowns clone
Download this release

Release Info

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

Code changes from version 2.2.3 to 2.2.4

assets/views/generalOptions.php CHANGED
@@ -313,6 +313,39 @@ if (class_exists('ycd\AdminHelperPro')) {
313
  </div>
314
  </div>
315
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
316
  <div class="row">
317
  <div class="col-md-6">
318
  <label for="ycd-countdown-end-sound" class="ycd-label-of-switch"><?php _e('Display On', YCD_TEXT_DOMAIN); ?></label>
313
  </div>
314
  </div>
315
  </div>
316
+ <div class="row">
317
+ <div class="col-md-6">
318
+ <label for="ycd-countdown-enable-start-date" class="ycd-label-of-switch"><?php _e('Enable start date', YCD_TEXT_DOMAIN); ?></label>
319
+ </div>
320
+ <div class="col-md-6">
321
+ <label class="ycd-switch">
322
+ <input type="checkbox" id="ycd-countdown-enable-start-date" name="ycd-countdown-enable-start-date" class="ycd-accordion-checkbox" <?php echo $this->getOptionValue('ycd-countdown-enable-start-date'); ?>>
323
+ <span class="ycd-slider ycd-round"></span>
324
+ </label>
325
+ </div>
326
+ </div>
327
+ <div class="ycd-accordion-content ycd-hide-content">
328
+ <div class="row form-group">
329
+ <div class="col-md-6">
330
+ <label for="ycd-countdown-start-date" class="ycd-label-of-input">
331
+ <?php _e('Date', YCD_TEXT_DOMAIN); ?>
332
+ </label>
333
+ </div>
334
+ <div class="col-md-6">
335
+ <input type="text" id="ycd-countdown-start-date" class="form-control ycd-date-time-picker" name="ycd-countdown-start-date" value="<?php echo esc_attr($this->getOptionValue('ycd-countdown-start-date')); ?>">
336
+ </div>
337
+ </div>
338
+ <div class="row form-group">
339
+ <div class="col-md-6">
340
+ <label for="ycd-countdown-start-time-zone" class="ycd-label-of-input"><?php _e('Time Zone', YCD_TEXT_DOMAIN); ?></label>
341
+ </div>
342
+ <div class="col-md-6">
343
+ <div class="ycd-select-wrapper">
344
+ <?php echo AdminHelper::selectBox($defaultData['time-zone'], esc_attr($this->getOptionValue('ycd-countdown-start-time-zone')), array('name' => 'ycd-countdown-start-time-zone', 'class' => 'js-ycd-select js-circle-time-zone')); ?>
345
+ </div>
346
+ </div>
347
+ </div>
348
+ </div>
349
  <div class="row">
350
  <div class="col-md-6">
351
  <label for="ycd-countdown-end-sound" class="ycd-label-of-switch"><?php _e('Display On', YCD_TEXT_DOMAIN); ?></label>
assets/views/main/clock1View.php CHANGED
@@ -96,6 +96,16 @@ if(YCD_PKG_VERSION == YCD_FREE_VERSION) {
96
  </div>
97
  </div>
98
  </div>
 
 
 
 
 
 
 
 
 
 
99
  </div>
100
  <?php
101
  require_once YCD_VIEWS_PATH.'preview.php';
96
  </div>
97
  </div>
98
  </div>
99
+ <div class="row form-group">
100
+ <div class="col-md-6">
101
+ <label for="ycd-clock1-time-bg-color" class=""><?php _e('Background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
102
+ </div>
103
+ <div class="col-md-5 ycd-option-wrapper<?php echo $isPro; ?>">
104
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
105
+ <input type="text" id="ycd-clock1-time-bg-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-clock1-time-bg-color" class="minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($this->getOptionValue('ycd-clock1-time-bg-color')); ?>">
106
+ </div>
107
+ </div>
108
+ </div>
109
  </div>
110
  <?php
111
  require_once YCD_VIEWS_PATH.'preview.php';
assets/views/main/clock2View.php CHANGED
@@ -86,6 +86,16 @@ if(YCD_PKG_VERSION == YCD_FREE_VERSION) {
86
  </div>
87
  </div>
88
  </div>
 
 
 
 
 
 
 
 
 
 
89
  </div>
90
  <?php
91
  require_once YCD_VIEWS_PATH.'preview.php';
86
  </div>
87
  </div>
88
  </div>
89
+ <div class="row form-group">
90
+ <div class="col-md-6">
91
+ <label for="ycd-clock2-time-bg-color" class=""><?php _e('Background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
92
+ </div>
93
+ <div class="col-md-5 ycd-option-wrapper<?php echo $isPro; ?>">
94
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
95
+ <input type="text" id="ycd-clock2-time-bg-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-clock2-time-bg-color" class="minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($this->getOptionValue('ycd-clock2-time-bg-color')); ?>">
96
+ </div>
97
+ </div>
98
+ </div>
99
  </div>
100
  <?php
101
  require_once YCD_VIEWS_PATH.'preview.php';
assets/views/main/clock3View.php CHANGED
@@ -54,6 +54,16 @@ if(YCD_PKG_VERSION == YCD_FREE_VERSION) {
54
  </div>
55
  </div>
56
  </div>
 
 
 
 
 
 
 
 
 
 
57
  </div>
58
  <?php
59
  require_once YCD_VIEWS_PATH.'preview.php';
54
  </div>
55
  </div>
56
  </div>
57
+ <div class="row form-group">
58
+ <div class="col-md-6">
59
+ <label for="ycd-clock3-time-bg-color" class=""><?php _e('Background color', YCD_TEXT_DOMAIN); echo $proSpan; ?></label>
60
+ </div>
61
+ <div class="col-md-5 ycd-option-wrapper<?php echo $isPro; ?>">
62
+ <div class="minicolors minicolors-theme-default minicolors-position-bottom minicolors-position-left">
63
+ <input type="text" id="ycd-clock3-time-bg-color" placeholder="<?php _e('Select color', YCD_TEXT_DOMAIN)?>" name="ycd-clock3-time-bg-color" class="minicolors-input form-control js-ycd-time-color" value="<?php echo esc_attr($this->getOptionValue('ycd-clock3-time-bg-color')); ?>">
64
+ </div>
65
+ </div>
66
+ </div>
67
  </div>
68
  <?php
69
  require_once YCD_VIEWS_PATH.'preview.php';
classes/Actions.php CHANGED
@@ -67,7 +67,7 @@ class Actions {
67
  /*
68
  * get the original post id
69
  */
70
- $post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
71
  /*
72
  * and all the original post data then
73
  */
@@ -121,16 +121,17 @@ class Actions {
121
  /*
122
  * duplicate all post meta just in two SQL queries
123
  */
124
- $post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
125
  if (count($post_meta_infos)!=0) {
126
  $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
127
  foreach ($post_meta_infos as $meta_info) {
128
  $meta_key = $meta_info->meta_key;
129
  if( $meta_key == '_wp_old_slug' ) continue;
130
- $meta_value = addslashes($meta_info->meta_value);
131
- $sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
132
  }
133
  $sql_query.= implode(" UNION ALL ", $sql_query_sel);
 
134
  $wpdb->query($sql_query);
135
  }
136
 
67
  /*
68
  * get the original post id
69
  */
70
+ $post_id = (int)(isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
71
  /*
72
  * and all the original post data then
73
  */
121
  /*
122
  * duplicate all post meta just in two SQL queries
123
  */
124
+ $post_meta_infos = $wpdb->get_results($wpdb->prepare("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=%d", $post_id));
125
  if (count($post_meta_infos)!=0) {
126
  $sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
127
  foreach ($post_meta_infos as $meta_info) {
128
  $meta_key = $meta_info->meta_key;
129
  if( $meta_key == '_wp_old_slug' ) continue;
130
+ $meta_value = $meta_info->meta_value;
131
+ $sql_query_sel[]= $wpdb->prepare("SELECT %d, %s, %s", $new_post_id, $meta_key, $meta_value);
132
  }
133
  $sql_query.= implode(" UNION ALL ", $sql_query_sel);
134
+
135
  $wpdb->query($sql_query);
136
  }
137
 
classes/Checker.php CHANGED
@@ -27,6 +27,7 @@ class Checker
27
  if(empty($countdownObj) || !is_object($countdownObj)) {
28
  return false;
29
  }
 
30
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
31
  if(!CheckerPro::allowToShow($countdownObj)) {
32
  return false;
27
  if(empty($countdownObj) || !is_object($countdownObj)) {
28
  return false;
29
  }
30
+
31
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
32
  if(!CheckerPro::allowToShow($countdownObj)) {
33
  return false;
classes/IncludeManager.php CHANGED
@@ -42,8 +42,8 @@ class IncludeManager {
42
  continue;
43
  }
44
  $isAllow = Countdown::allowToLoad($countdownPost, $countdownObj);
45
-
46
- if(!$isAllow) {
47
  continue;
48
  }
49
 
42
  continue;
43
  }
44
  $isAllow = Countdown::allowToLoad($countdownPost, $countdownObj);
45
+
46
+ if(!$isAllow || !$countdownObj->allowOpen()) {
47
  continue;
48
  }
49
 
classes/countdown/Clock1Countdown.php CHANGED
@@ -54,6 +54,7 @@ class Clock1Countdown extends Countdown {
54
  $dial3Color = '#9d9d5c';
55
  $timeColor = '#333';
56
  $dateColor = '#999';
 
57
 
58
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
59
  $indicate = $this->getOptionValue('ycd-clock1-indicate-color');
@@ -62,6 +63,7 @@ class Clock1Countdown extends Countdown {
62
  $dial3Color = $this->getOptionValue('ycd-clock1-dial3-color');
63
  $timeColor = $this->getOptionValue('ycd-clock1-date-color');
64
  $dateColor = $this->getOptionValue('ycd-clock1-time-color');
 
65
  }
66
  $mode = false;
67
  if ($this->getOptionValue('ycd-clock-mode') == '24') {
@@ -78,7 +80,8 @@ class Clock1Countdown extends Countdown {
78
  'time_24h' => $mode,
79
  'date_add' => 3,
80
  'time_add_color' => $timeColor,
81
- 'date_add_color' => $dateColor
 
82
  );
83
 
84
  return $args;
54
  $dial3Color = '#9d9d5c';
55
  $timeColor = '#333';
56
  $dateColor = '#999';
57
+ $bgColor = '#ffffff';
58
 
59
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
60
  $indicate = $this->getOptionValue('ycd-clock1-indicate-color');
63
  $dial3Color = $this->getOptionValue('ycd-clock1-dial3-color');
64
  $timeColor = $this->getOptionValue('ycd-clock1-date-color');
65
  $dateColor = $this->getOptionValue('ycd-clock1-time-color');
66
+ $bgColor = $this->getOptionValue('ycd-clock1-time-bg-color');
67
  }
68
  $mode = false;
69
  if ($this->getOptionValue('ycd-clock-mode') == '24') {
80
  'time_24h' => $mode,
81
  'date_add' => 3,
82
  'time_add_color' => $timeColor,
83
+ 'date_add_color' => $dateColor,
84
+ 'bg_color' => $bgColor
85
  );
86
 
87
  return $args;
classes/countdown/Clock2Countdown.php CHANGED
@@ -54,6 +54,7 @@ class Clock2Countdown extends Countdown {
54
  $dial3Color = '#9d9d5c';
55
  $timeColor = '#333';
56
  $dateColor = '#999';
 
57
 
58
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
59
  $indicate = $this->getOptionValue('ycd-clock2-indicate-color');
@@ -62,6 +63,7 @@ class Clock2Countdown extends Countdown {
62
  $dial3Color = $this->getOptionValue('ycd-clock2-dial3-color');
63
  $timeColor = $this->getOptionValue('ycd-clock2-date-color');
64
  $dateColor = $this->getOptionValue('ycd-clock2-time-color');
 
65
  }
66
  $mode = false;
67
  if ($this->getOptionValue('ycd-clock-mode') == '24') {
@@ -79,6 +81,7 @@ class Clock2Countdown extends Countdown {
79
  'date_add' => 3,
80
  'time_add_color' => $timeColor,
81
  'date_add_color' => $dateColor,
 
82
  );
83
 
84
  return $args;
54
  $dial3Color = '#9d9d5c';
55
  $timeColor = '#333';
56
  $dateColor = '#999';
57
+ $bgColor = '#ffffff';
58
 
59
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
60
  $indicate = $this->getOptionValue('ycd-clock2-indicate-color');
63
  $dial3Color = $this->getOptionValue('ycd-clock2-dial3-color');
64
  $timeColor = $this->getOptionValue('ycd-clock2-date-color');
65
  $dateColor = $this->getOptionValue('ycd-clock2-time-color');
66
+ $bgColor = $this->getOptionValue('ycd-clock2-time-bg-color');
67
  }
68
  $mode = false;
69
  if ($this->getOptionValue('ycd-clock-mode') == '24') {
81
  'date_add' => 3,
82
  'time_add_color' => $timeColor,
83
  'date_add_color' => $dateColor,
84
+ 'bg_color' => $bgColor
85
  );
86
 
87
  return $args;
classes/countdown/Clock3Countdown.php CHANGED
@@ -54,6 +54,7 @@ class Clock3Countdown extends Countdown {
54
  $dial3Color = '#9d9d5c';
55
  $timeColor = '#333';
56
  $dateColor = '#999';
 
57
 
58
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
59
  $indicateColor = $this->getOptionValue('ycd-clock3-indicate-color');
@@ -62,6 +63,7 @@ class Clock3Countdown extends Countdown {
62
  $dial3Color = $this->getOptionValue('ycd-clock3-dial3-color');
63
  $timeColor = $this->getOptionValue('ycd-clock3-date-color');
64
  $dateColor = $this->getOptionValue('ycd-clock3-time-color');
 
65
  }
66
  $mode = false;
67
  if ($this->getOptionValue('ycd-clock-mode') == '24') {
@@ -79,6 +81,7 @@ class Clock3Countdown extends Countdown {
79
  'date_add' => 3,
80
  'time_add_color' => $timeColor,
81
  'date_add_color' => $dateColor,
 
82
  );
83
 
84
  return $args;
54
  $dial3Color = '#9d9d5c';
55
  $timeColor = '#333';
56
  $dateColor = '#999';
57
+ $bgColor = '#ffffff';
58
 
59
  if(YCD_PKG_VERSION > YCD_FREE_VERSION) {
60
  $indicateColor = $this->getOptionValue('ycd-clock3-indicate-color');
63
  $dial3Color = $this->getOptionValue('ycd-clock3-dial3-color');
64
  $timeColor = $this->getOptionValue('ycd-clock3-date-color');
65
  $dateColor = $this->getOptionValue('ycd-clock3-time-color');
66
+ $bgColor = $this->getOptionValue('ycd-clock3-time-bg-color');
67
  }
68
  $mode = false;
69
  if ($this->getOptionValue('ycd-clock-mode') == '24') {
81
  'date_add' => 3,
82
  'time_add_color' => $timeColor,
83
  'date_add_color' => $dateColor,
84
+ 'bg_color' => $bgColor
85
  );
86
 
87
  return $args;
classes/countdown/Countdown.php CHANGED
@@ -884,6 +884,11 @@ abstract class Countdown {
884
  $id = $this->getId();
885
  $status = true;
886
 
 
 
 
 
 
887
  if(!empty($_COOKIE['YcdDontShow'.$id]) && $this->getOptionValue('ycd-countdown-showing-limitation')) {
888
  $status = false;
889
  }
@@ -1143,4 +1148,27 @@ abstract class Countdown {
1143
 
1144
  return $content;
1145
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1146
  }
884
  $id = $this->getId();
885
  $status = true;
886
 
887
+ $isAllowedStartDate = $this->isAllowStartDate();
888
+ if (!$isAllowedStartDate) {
889
+ return false;
890
+ }
891
+
892
  if(!empty($_COOKIE['YcdDontShow'.$id]) && $this->getOptionValue('ycd-countdown-showing-limitation')) {
893
  $status = false;
894
  }
1148
 
1149
  return $content;
1150
  }
1151
+
1152
+ private function isAllowStartDate()
1153
+ {
1154
+ $status = true;
1155
+ $enabledStartDate = $this->getOptionValue('ycd-countdown-enable-start-date');
1156
+
1157
+ if (!empty($enabledStartDate)) {
1158
+ $date = $this->getOptionValue('ycd-countdown-start-date');
1159
+ $timeZone = $this->getOptionValue('ycd-countdown-start-time-zone');
1160
+
1161
+ $date .= ':00';
1162
+ $timeDate = new DateTime('now');
1163
+ if ($timeZone) {
1164
+ $timeDate = new DateTime('now', new DateTimeZone($timeZone));
1165
+ }
1166
+ $timeNow = strtotime($timeDate->format('Y-m-d H:i:s'));
1167
+ $seconds = strtotime($date)-$timeNow;
1168
+
1169
+ return ($seconds < 0);
1170
+ }
1171
+
1172
+ return $status;
1173
+ }
1174
  }
config/config.php CHANGED
@@ -75,7 +75,7 @@ class YcdCountdownConfig
75
  self::addDefine('YCD_CRON_REPEAT_INTERVAL', 1);
76
  self::addDefine('YCD_AJAX_SUCCESS', 1);
77
  self::addDefine('YCD_TABLE_LIMIT', 15);
78
- self::addDefine('YCD_VERSION_PRO', 2.08);
79
  self::addDefine('YCD_VERSION', 2.23);
80
  self::addDefine('YCD_FREE_VERSION', 1);
81
  self::addDefine('YCD_SILVER_VERSION', 2);
@@ -84,12 +84,12 @@ class YcdCountdownConfig
84
  self::addDefine('YCD_EXTENSION_VERSION', 99);
85
  require_once(dirname(__FILE__).'/config-pkg.php');
86
 
87
- $versionText = '2.2.3';
88
  if (YCD_PKG_VERSION != YCD_FREE_VERSION) {
89
- $versionText = '2.0.9';
90
  }
91
  self::addDefine('YCD_VERSION_TEXT', $versionText);
92
- self::addDefine('YCD_LAST_UPDATE', 'Dec 5');
93
  self::addDefine('YCD_NEXT_UPDATE', 'Dec 23');
94
  }
95
 
75
  self::addDefine('YCD_CRON_REPEAT_INTERVAL', 1);
76
  self::addDefine('YCD_AJAX_SUCCESS', 1);
77
  self::addDefine('YCD_TABLE_LIMIT', 15);
78
+ self::addDefine('YCD_VERSION_PRO', 2.10);
79
  self::addDefine('YCD_VERSION', 2.23);
80
  self::addDefine('YCD_FREE_VERSION', 1);
81
  self::addDefine('YCD_SILVER_VERSION', 2);
84
  self::addDefine('YCD_EXTENSION_VERSION', 99);
85
  require_once(dirname(__FILE__).'/config-pkg.php');
86
 
87
+ $versionText = '2.2.4';
88
  if (YCD_PKG_VERSION != YCD_FREE_VERSION) {
89
+ $versionText = '2.1.0';
90
  }
91
  self::addDefine('YCD_VERSION_TEXT', $versionText);
92
+ self::addDefine('YCD_LAST_UPDATE', 'Dec 15');
93
  self::addDefine('YCD_NEXT_UPDATE', 'Dec 23');
94
  }
95
 
config/optionsConfig.php CHANGED
@@ -270,6 +270,9 @@ class YcdCountdownOptionsConfig
270
  $options[] = array('name' => 'ycd-circle-box-shadow-color', 'type' => 'text', 'defaultValue' => '#ffffff');
271
  $options[] = array('name' => 'ycd-display-settings', 'type' => 'ycd', 'defaultValue' => array(array('key1' => 'select_settings')));
272
  $options[] = array('name' => 'ycd-countdown-display-on', 'type' => 'checkbox', 'defaultValue' => '');
 
 
 
273
  $options[] = array('name' => 'ycd-position-countdown', 'type' => 'text', 'defaultValue' => 'top_center');
274
  $options[] = array('name' => 'ycd-countdown-clock-mode', 'type' => 'text', 'defaultValue' => 'clock');
275
  $options[] = array('name' => 'ycd-countdown-timer-button', 'type' => 'checkbox', 'defaultValue' => '');
270
  $options[] = array('name' => 'ycd-circle-box-shadow-color', 'type' => 'text', 'defaultValue' => '#ffffff');
271
  $options[] = array('name' => 'ycd-display-settings', 'type' => 'ycd', 'defaultValue' => array(array('key1' => 'select_settings')));
272
  $options[] = array('name' => 'ycd-countdown-display-on', 'type' => 'checkbox', 'defaultValue' => '');
273
+ $options[] = array('name' => 'ycd-countdown-enable-start-date', 'type' => 'checkbox', 'defaultValue' => '');
274
+ $options[] = array('name' => 'ycd-countdown-start-date', 'type' => 'text', 'defaultValue' => date('Y-m-d H:i'));
275
+ $options[] = array('name' => 'ycd-countdown-start-time-zone', 'type' => 'text', 'defaultValue' => self::getDefaultTimezone());
276
  $options[] = array('name' => 'ycd-position-countdown', 'type' => 'text', 'defaultValue' => 'top_center');
277
  $options[] = array('name' => 'ycd-countdown-clock-mode', 'type' => 'text', 'defaultValue' => 'clock');
278
  $options[] = array('name' => 'ycd-countdown-timer-button', 'type' => 'checkbox', 'defaultValue' => '');
countdown-builder.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Countdown builder
4
  * Description: The best countdown plugin by Adam skaat
5
- * Version: 2.2.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 by Adam skaat
5
+ * Version: 2.2.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.8.2
6
- Stable tag: 2.2.3
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -67,6 +67,11 @@ Yes you can, we have Circle and Flipclock countdown popups.
67
  You need to select the .zip file, there is no need to extract the zip file, just upload it.
68
 
69
  == Changelog ==
 
 
 
 
 
70
  = 2.2.3 =
71
  * Bug fixed of the Countdown Gutenberg block
72
  * Countdown Gutenberg block improvements
3
  Tags: countdown, timer, countdown timer
4
  Requires at least: 3.8
5
  Tested up to: 5.8.2
6
+ Stable tag: 2.2.4
7
  Requires PHP: 5.3
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
67
  You need to select the .zip file, there is no need to extract the zip file, just upload it.
68
 
69
  == Changelog ==
70
+ = 2.2.4 =
71
+ * Added Countdown Enable start date (New)
72
+ * Added Clocks Background color change possibility.
73
+ * Fixed Security issue during countdowns clone
74
+
75
  = 2.2.3 =
76
  * Bug fixed of the Countdown Gutenberg block
77
  * Countdown Gutenberg block improvements