Minimal Coming Soon & Maintenance Mode - Version 2.20

Version Description

  • 2020-10-27
  • removed auto activation for PRO version
Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Minimal Coming Soon & Maintenance Mode
Version 2.20
Comparing to
See all releases

Code changes from version 2.19 to 2.20

framework/admin/license.php CHANGED
@@ -17,7 +17,7 @@ $csmm_lc = new WF_Licensing_CSMM(array(
17
  'version' => csmm_get_plugin_version(),
18
  'plugin_file' => CSMM_FILE,
19
  'skip_hooks' => false,
20
- 'disable_remote' => false,
21
  'debug' => false,
22
  'js_folder' => plugin_dir_url(CSMM_FILE) . 'framework/admin/js/'
23
  ));
@@ -36,7 +36,6 @@ add_action('wf_licensing_' . $csmm_lc->prefix . 'validate_ajax', function ($lice
36
  if ($result == true) {
37
  if (empty($license['error'])) {
38
  set_transient('signals_csmm_err_' . get_current_user_id(), '<div class="csmm-alert csmm-alert-success"><strong>License key saved and activated!</strong><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 60);
39
- delete_transient('_site_transient_update_plugins');
40
  } else {
41
  set_transient('signals_csmm_err_' . get_current_user_id(), '<div class="csmm-alert csmm-alert-danger"><strong>License not active.</strong> ' . $license['error'] . '<button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 60);
42
  }
17
  'version' => csmm_get_plugin_version(),
18
  'plugin_file' => CSMM_FILE,
19
  'skip_hooks' => false,
20
+ 'disable_remote' => true,
21
  'debug' => false,
22
  'js_folder' => plugin_dir_url(CSMM_FILE) . 'framework/admin/js/'
23
  ));
36
  if ($result == true) {
37
  if (empty($license['error'])) {
38
  set_transient('signals_csmm_err_' . get_current_user_id(), '<div class="csmm-alert csmm-alert-success"><strong>License key saved and activated!</strong><button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 60);
 
39
  } else {
40
  set_transient('signals_csmm_err_' . get_current_user_id(), '<div class="csmm-alert csmm-alert-danger"><strong>License not active.</strong> ' . $license['error'] . '<button type="button" class="notice-dismiss"><span class="screen-reader-text">Dismiss this notice.</span></button></div>', 60);
41
  }
framework/admin/views/settings-pro.php CHANGED
@@ -247,11 +247,15 @@ if (!defined('WPINC')) {
247
  <label>Type: </label>' . $license_formatted['name_long'];
248
  echo '<br><label>Valid: </label>' . $license_formatted['valid_until'];
249
 
250
- $plugin = plugin_basename(CSMM_FILE);
251
- $update_url = wp_nonce_url(admin_url('update.php?action=upgrade-plugin&amp;plugin=' . urlencode($plugin)), 'upgrade-plugin_' . $plugin);
252
  echo '<p class="center">Thank you for purchasing Coming Soon &amp; Maintenance Mode PRO! <b>Your license has been verified and activated.</b> ';
253
- echo 'Please <b>click the button below</b> to update plugin files to the PRO version.</p>';
254
- echo '<p><a href="' . esc_url($update_url) . '" class="button button-primary"><b>Update Coming Soon &amp; Maintenance Mode files to PRO &amp; finish the activation</b></a></p>';
 
 
 
 
 
 
255
  } else { // not active
256
  echo '<strong style="color: #ea1919;">Inactive</strong>';
257
  if (!empty($csmm_lc->get_license('error'))) {
@@ -269,11 +273,11 @@ if (!defined('WPINC')) {
269
  echo '&nbsp; &nbsp;<a href="#" data-text-wait="Activating. Please wait." class="signals-btn signals-btn-secondary" id="csmm_keyless_activation">Keyless Activation</a>';
270
  }
271
  echo '</p>';
272
- echo '<p class="mb0"><i>By attempting to activate a license you agree to share the following data with <a target="_blank" href="https://www.webfactoryltd.com/">WebFactory Ltd</a>: license key, site URL, site title, site WP version, and Coming Soon &amp; Maintenance Mode (free) version.</i>';
273
  echo '</p>';
274
  ?>
275
  </div>
276
 
277
  </div>
278
  </div>
279
- </div><!-- #pro -->
247
  <label>Type: </label>' . $license_formatted['name_long'];
248
  echo '<br><label>Valid: </label>' . $license_formatted['valid_until'];
249
 
 
 
250
  echo '<p class="center">Thank you for purchasing Coming Soon &amp; Maintenance Mode PRO! <b>Your license has been verified and activated.</b> ';
251
+ echo '<br>To start using the PRO version, please follow these steps:</p>';
252
+ echo '<ol>';
253
+ echo '<li><a href="https://dashboard.comingsoonwp.com/pro-download/" target="_blank">Download</a> the latest version of the PRO plugin or grab it from the purchase confirmation email we sent you.</li>';
254
+ echo '<li>Go to <a href="' . admin_url('plugin-install.php') . '">Plugins - Add New - Upload Plugin</a> and upload the ZIP you just downloaded.</li>';
255
+ echo '<li>If asked to replace (overwrite) the free version - confirm it.</li>';
256
+ echo '<li>Activate the plugin.</li>';
257
+ echo '<li>That\'s it, no more steps.</li>';
258
+ echo '</ol><br>';
259
  } else { // not active
260
  echo '<strong style="color: #ea1919;">Inactive</strong>';
261
  if (!empty($csmm_lc->get_license('error'))) {
273
  echo '&nbsp; &nbsp;<a href="#" data-text-wait="Activating. Please wait." class="signals-btn signals-btn-secondary" id="csmm_keyless_activation">Keyless Activation</a>';
274
  }
275
  echo '</p>';
276
+ echo '<p class="mb0"><small><i>By attempting to activate a license you agree to share the following data with <a target="_blank" href="https://www.webfactoryltd.com/">WebFactory Ltd</a>: license key, site URL, site title, site WP version, and Coming Soon &amp; Maintenance Mode (free) version.</i></small>';
277
  echo '</p>';
278
  ?>
279
  </div>
280
 
281
  </div>
282
  </div>
283
+ </div><!-- #pro -->
framework/wf-licensing.php CHANGED
@@ -12,7 +12,7 @@ if (false === class_exists('WF_Licensing_CSMM')) {
12
  protected $api_ver = 'v1/';
13
  protected $valid_forever = '2035-01-01';
14
  protected $unlimited_installs = 99999;
15
- public $disable_remote = false;
16
  public $debug = false;
17
 
18
 
@@ -44,9 +44,6 @@ if (false === class_exists('WF_Licensing_CSMM')) {
44
  register_activation_hook($this->plugin_file, array($this, 'activate_plugin'));
45
  register_deactivation_hook($this->plugin_file, array($this, 'deactivate_plugin'));
46
 
47
- add_filter('pre_set_site_transient_update_plugins', array($this, 'update_filter'));
48
- add_filter('plugins_api', array($this, 'update_details'), 100, 3);
49
-
50
  add_action('init', array($this, 'init'));
51
 
52
  add_action('wp_ajax_wf_licensing_' . $this->prefix . '_validate', array($this, 'validate_ajax'));
@@ -56,11 +53,11 @@ if (false === class_exists('WF_Licensing_CSMM')) {
56
  }
57
 
58
  $this->log('__construct', $params, get_object_vars($this));
59
-
60
  add_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_refresh', array($this, 'remote_action_refresh'));
61
  add_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_deactivate_license', array($this, 'remote_action_deactivate_license'));
62
  add_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_validate_license', array($this, 'remote_action_validate_license'));
63
-
64
  add_action('plugins_loaded', array($this, 'monitor_remote_actions'));
65
  } // __construct
66
 
@@ -94,86 +91,86 @@ if (false === class_exists('WF_Licensing_CSMM')) {
94
  wp_localize_script('wf_licensing', 'wf_licensing_' . $this->prefix, $vars);
95
  }
96
  } // init
97
-
98
-
99
  function monitor_remote_actions()
100
  {
101
  if ($this->disable_remote || is_admin()) {
102
  return;
103
  }
104
-
105
  if (!empty($_REQUEST[$this->prefix . '_access_key']) && !empty($_REQUEST[$this->prefix . '_action']) && isset($_REQUEST[$this->prefix . '_action_params'])) {
106
  $access_key = substr(trim($_REQUEST[$this->prefix . '_access_key']), 0, 32);
107
  $action = substr(trim($_REQUEST[$this->prefix . '_action']), 0, 32);
108
  $action_params = $_REQUEST[$this->prefix . '_action_params'];
109
  $rand = substr($_REQUEST[$this->prefix . '_rand'], 0, 5);
110
  $rand = preg_replace("/[^0-9]/", '', $rand);
111
-
112
  nocache_headers();
113
  header('X-WF-Licensing-' . $this->prefix . ': ' . $this->version);
114
-
115
  if (strlen($rand) != 5) {
116
  wp_send_json_error('Invalid random value.');
117
  }
118
-
119
  if (false == $this->is_active(false, false, true)) {
120
  wp_send_json_error('License is not active.');
121
  }
122
-
123
  if (false == $this->is_remote_action($action)) {
124
  wp_send_json_error('Unknown remote action.');
125
  }
126
-
127
  $access_key = preg_replace("/[^0-9a-zA-Z]/", '', $access_key);
128
  if (strlen($access_key) != 32) {
129
  wp_send_json_error('Invalid access key format.');
130
  }
131
-
132
  $license = $this->get_license();
133
  if ($access_key != $license['access_key']) {
134
  wp_send_json_error('Invalid access key.');
135
  }
136
-
137
  $post_data = @json_decode(file_get_contents('php://input'), true);
138
  do_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_' . $action, $action_params, $this, $post_data);
139
-
140
  wp_send_json_error('Remote action did not execute.');
141
  die();
142
  }
143
  } // monitor_remote_actions
144
-
145
-
146
  function remote_action_refresh($action_params)
147
  {
148
  $data = $this->prepare_server_query_data('remote_refresh');
149
-
150
  wp_send_json_success($data);
151
  } // remote_action_refresh
152
-
153
-
154
  function remote_action_validate_license($action_params)
155
  {
156
  $validate = $this->validate();
157
  $license = $this->get_license();
158
-
159
  wp_send_json_success(array('validate' => $validate, 'license' => $license));
160
  } // remote_action_validate_license
161
-
162
-
163
  function remote_action_deactivate_license($action_params)
164
  {
165
  $license = $this->get_license();
166
  $this->update_license(false);
167
-
168
  if ($action_params['keep_license_key']) {
169
  $tmp = array('error' => 'License is no longer valid for this site.', 'license_key' => $license['license_key']);
170
  $this->update_license($tmp);
171
  }
172
-
173
  wp_send_json_success();
174
  } // remote_action_deactivate_license
175
-
176
-
177
  private function is_remote_action($action)
178
  {
179
  $actions = array('refresh', 'validate_license', 'deactivate_license');
@@ -237,7 +234,7 @@ if (false === class_exists('WF_Licensing_CSMM')) {
237
 
238
  $options = get_option('wf_licensing_' . $this->prefix, array());
239
  $options = array_merge($default, $options);
240
-
241
  if (empty($options['access_key'])) {
242
  $options['access_key'] = $this->generate_access_key();
243
  $this->update_license($options);
@@ -249,14 +246,14 @@ if (false === class_exists('WF_Licensing_CSMM')) {
249
  return $options;
250
  }
251
  } // get_license
252
-
253
-
254
  function generate_access_key()
255
  {
256
  $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
257
  $pieces = array();
258
  $max = strlen($keyspace) - 1;
259
-
260
  for ($i = 0; $i < 32; ++$i) {
261
  $pieces[] = $keyspace[random_int(0, $max)];
262
  }
@@ -288,7 +285,7 @@ if (false === class_exists('WF_Licensing_CSMM')) {
288
  if ($license['meta']) {
289
  $tmp = '';
290
  foreach ($license['meta'] as $meta => $meta_value) {
291
-
292
  if ($meta[0] == '_' || filter_var($meta_value, FILTER_VALIDATE_BOOLEAN) != true) {
293
  continue;
294
  }
@@ -391,7 +388,7 @@ if (false === class_exists('WF_Licensing_CSMM')) {
391
  }
392
 
393
  $license = $this->get_license();
394
-
395
  if (
396
  !empty($license['license_key']) && !empty($license['name']) &&
397
  !empty($license['valid_until']) && $license['valid_until'] >= date('Y-m-d')
@@ -612,7 +609,7 @@ if (false === class_exists('WF_Licensing_CSMM')) {
612
  function prepare_server_query_data($action)
613
  {
614
  $license = $this->get_license();
615
-
616
  $query_data = array(
617
  'action' => $action,
618
  'license_key' => $license['license_key'],
@@ -624,11 +621,11 @@ if (false === class_exists('WF_Licensing_CSMM')) {
624
  'access_key' => $license['access_key'],
625
  'meta' => apply_filters('wf_licensing_' . trim($this->prefix, '_') . '_query_server_meta', array(), $action)
626
  );
627
-
628
  if (substr($action, 0, 7) == 'remote_') {
629
  unset($query_data['action'], $query_data['license_key']);
630
  }
631
-
632
  return $query_data;
633
  } // prepare_server_query_data
634
 
@@ -653,18 +650,18 @@ if (false === class_exists('WF_Licensing_CSMM')) {
653
  array_walk_recursive($request_data, function (&$val, $ind) {
654
  $val = rawurlencode($val);
655
  });
656
-
657
  $this->log('query licensing server', $request_data);
658
 
659
  $url = rtrim(add_query_arg($request_data, trailingslashit($this->licensing_servers[0] . $this->api_ver)), '&');
660
-
661
  $response = wp_remote_get($url, $request_params);
662
-
663
  $body = wp_remote_retrieve_body($response);
664
  $result = @json_decode($body, true);
665
-
666
  $this->log('licensing server response', $response);
667
-
668
  if (is_wp_error($response) || empty($body) || !is_array($result) || !isset($result['success'])) {
669
  if (is_wp_error($response)) {
670
  return $response;
@@ -675,88 +672,5 @@ if (false === class_exists('WF_Licensing_CSMM')) {
675
  return $result;
676
  }
677
  } // query_licensing_server
678
-
679
-
680
- /**
681
- * Plugin info lightbox
682
- *
683
- * @param object $return
684
- * @param string $action
685
- * @param object $args
686
- *
687
- * @return object
688
- */
689
- function update_details($return, $action, $args)
690
- {
691
- if (!$this->is_active()) {
692
- return $return;
693
- }
694
-
695
- static $response = false;
696
-
697
- if ($action != 'plugin_information' || empty($args->slug) || $args->slug != $this->slug) {
698
- return $return;
699
- }
700
-
701
- if (empty($response) || is_wp_error($response)) {
702
- $response = $this->query_licensing_server('plugin_information', array('request_details' => serialize($args)));
703
- }
704
-
705
- if (is_wp_error($response)) {
706
- $res = new WP_Error('plugins_api_failed', 'xAn unexpected HTTP error occurred during the API request.', $response->get_error_message());
707
- } elseif ($response['success'] != true) {
708
- $res = new WP_Error('plugins_api_failed', 'Invalid response data received during the API request.', $response['data']);
709
- } else {
710
- $res = (object) $response['data'];
711
- $res->sections = (array) $res->sections;
712
- $res->banners = (array) $res->banners;
713
- $res->icons = (array) $res->icons;
714
- }
715
-
716
- return $res;
717
- } // update_details
718
-
719
-
720
- /**
721
- * Get info on new plugin version if one exists
722
- *
723
- * @param object current plugin info
724
- *
725
- * @return object update info
726
- */
727
- function update_filter($current)
728
- {
729
-
730
- if (!$this->is_active()) {
731
- return $current;
732
- }
733
-
734
- static $response = false;
735
-
736
- $response = get_transient('wf_plugin_update_' . $this->prefix);
737
-
738
- if (empty($response)) {
739
- $response = $this->query_licensing_server('update_info');
740
- set_transient('wf_plugin_update_' . $this->prefix, $response, 120);
741
- }
742
-
743
- if (!is_wp_error($response) && $response['success'] == true) {
744
- $data = (object)$response['data'];
745
-
746
- if (empty($current)) {
747
- $current = new stdClass();
748
- }
749
- if (empty($current->response)) {
750
- $current->response = array();
751
- }
752
- if (!empty($data) && is_object($data) && version_compare($data->new_version, $this->version) === 1) {
753
- $data->icons = (array) $data->icons;
754
- $data->banners = (array) $data->banners;
755
- $current->response[$this->basename] = $data;
756
- }
757
- }
758
-
759
- return $current;
760
- } // update_filter
761
  } // WF_Licensing_CSMM
762
  } // if WF_Licensing_CSMM
12
  protected $api_ver = 'v1/';
13
  protected $valid_forever = '2035-01-01';
14
  protected $unlimited_installs = 99999;
15
+ public $disable_remote = true;
16
  public $debug = false;
17
 
18
 
44
  register_activation_hook($this->plugin_file, array($this, 'activate_plugin'));
45
  register_deactivation_hook($this->plugin_file, array($this, 'deactivate_plugin'));
46
 
 
 
 
47
  add_action('init', array($this, 'init'));
48
 
49
  add_action('wp_ajax_wf_licensing_' . $this->prefix . '_validate', array($this, 'validate_ajax'));
53
  }
54
 
55
  $this->log('__construct', $params, get_object_vars($this));
56
+
57
  add_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_refresh', array($this, 'remote_action_refresh'));
58
  add_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_deactivate_license', array($this, 'remote_action_deactivate_license'));
59
  add_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_validate_license', array($this, 'remote_action_validate_license'));
60
+
61
  add_action('plugins_loaded', array($this, 'monitor_remote_actions'));
62
  } // __construct
63
 
91
  wp_localize_script('wf_licensing', 'wf_licensing_' . $this->prefix, $vars);
92
  }
93
  } // init
94
+
95
+
96
  function monitor_remote_actions()
97
  {
98
  if ($this->disable_remote || is_admin()) {
99
  return;
100
  }
101
+
102
  if (!empty($_REQUEST[$this->prefix . '_access_key']) && !empty($_REQUEST[$this->prefix . '_action']) && isset($_REQUEST[$this->prefix . '_action_params'])) {
103
  $access_key = substr(trim($_REQUEST[$this->prefix . '_access_key']), 0, 32);
104
  $action = substr(trim($_REQUEST[$this->prefix . '_action']), 0, 32);
105
  $action_params = $_REQUEST[$this->prefix . '_action_params'];
106
  $rand = substr($_REQUEST[$this->prefix . '_rand'], 0, 5);
107
  $rand = preg_replace("/[^0-9]/", '', $rand);
108
+
109
  nocache_headers();
110
  header('X-WF-Licensing-' . $this->prefix . ': ' . $this->version);
111
+
112
  if (strlen($rand) != 5) {
113
  wp_send_json_error('Invalid random value.');
114
  }
115
+
116
  if (false == $this->is_active(false, false, true)) {
117
  wp_send_json_error('License is not active.');
118
  }
119
+
120
  if (false == $this->is_remote_action($action)) {
121
  wp_send_json_error('Unknown remote action.');
122
  }
123
+
124
  $access_key = preg_replace("/[^0-9a-zA-Z]/", '', $access_key);
125
  if (strlen($access_key) != 32) {
126
  wp_send_json_error('Invalid access key format.');
127
  }
128
+
129
  $license = $this->get_license();
130
  if ($access_key != $license['access_key']) {
131
  wp_send_json_error('Invalid access key.');
132
  }
133
+
134
  $post_data = @json_decode(file_get_contents('php://input'), true);
135
  do_action('wf_licensing_' . trim($this->prefix, '_') . '_remote_action_' . $action, $action_params, $this, $post_data);
136
+
137
  wp_send_json_error('Remote action did not execute.');
138
  die();
139
  }
140
  } // monitor_remote_actions
141
+
142
+
143
  function remote_action_refresh($action_params)
144
  {
145
  $data = $this->prepare_server_query_data('remote_refresh');
146
+
147
  wp_send_json_success($data);
148
  } // remote_action_refresh
149
+
150
+
151
  function remote_action_validate_license($action_params)
152
  {
153
  $validate = $this->validate();
154
  $license = $this->get_license();
155
+
156
  wp_send_json_success(array('validate' => $validate, 'license' => $license));
157
  } // remote_action_validate_license
158
+
159
+
160
  function remote_action_deactivate_license($action_params)
161
  {
162
  $license = $this->get_license();
163
  $this->update_license(false);
164
+
165
  if ($action_params['keep_license_key']) {
166
  $tmp = array('error' => 'License is no longer valid for this site.', 'license_key' => $license['license_key']);
167
  $this->update_license($tmp);
168
  }
169
+
170
  wp_send_json_success();
171
  } // remote_action_deactivate_license
172
+
173
+
174
  private function is_remote_action($action)
175
  {
176
  $actions = array('refresh', 'validate_license', 'deactivate_license');
234
 
235
  $options = get_option('wf_licensing_' . $this->prefix, array());
236
  $options = array_merge($default, $options);
237
+
238
  if (empty($options['access_key'])) {
239
  $options['access_key'] = $this->generate_access_key();
240
  $this->update_license($options);
246
  return $options;
247
  }
248
  } // get_license
249
+
250
+
251
  function generate_access_key()
252
  {
253
  $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
254
  $pieces = array();
255
  $max = strlen($keyspace) - 1;
256
+
257
  for ($i = 0; $i < 32; ++$i) {
258
  $pieces[] = $keyspace[random_int(0, $max)];
259
  }
285
  if ($license['meta']) {
286
  $tmp = '';
287
  foreach ($license['meta'] as $meta => $meta_value) {
288
+
289
  if ($meta[0] == '_' || filter_var($meta_value, FILTER_VALIDATE_BOOLEAN) != true) {
290
  continue;
291
  }
388
  }
389
 
390
  $license = $this->get_license();
391
+
392
  if (
393
  !empty($license['license_key']) && !empty($license['name']) &&
394
  !empty($license['valid_until']) && $license['valid_until'] >= date('Y-m-d')
609
  function prepare_server_query_data($action)
610
  {
611
  $license = $this->get_license();
612
+
613
  $query_data = array(
614
  'action' => $action,
615
  'license_key' => $license['license_key'],
621
  'access_key' => $license['access_key'],
622
  'meta' => apply_filters('wf_licensing_' . trim($this->prefix, '_') . '_query_server_meta', array(), $action)
623
  );
624
+
625
  if (substr($action, 0, 7) == 'remote_') {
626
  unset($query_data['action'], $query_data['license_key']);
627
  }
628
+
629
  return $query_data;
630
  } // prepare_server_query_data
631
 
650
  array_walk_recursive($request_data, function (&$val, $ind) {
651
  $val = rawurlencode($val);
652
  });
653
+
654
  $this->log('query licensing server', $request_data);
655
 
656
  $url = rtrim(add_query_arg($request_data, trailingslashit($this->licensing_servers[0] . $this->api_ver)), '&');
657
+
658
  $response = wp_remote_get($url, $request_params);
659
+
660
  $body = wp_remote_retrieve_body($response);
661
  $result = @json_decode($body, true);
662
+
663
  $this->log('licensing server response', $response);
664
+
665
  if (is_wp_error($response) || empty($body) || !is_array($result) || !isset($result['success'])) {
666
  if (is_wp_error($response)) {
667
  return $response;
672
  return $result;
673
  }
674
  } // query_licensing_server
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
675
  } // WF_Licensing_CSMM
676
  } // if WF_Licensing_CSMM
minimal-coming-soon-maintenance-mode.php CHANGED
@@ -3,10 +3,10 @@
3
  * Plugin Name: Minimal Coming Soon & Maintenance Mode
4
  * Plugin URI: https://comingsoonwp.com/
5
  * Description: Simply awesome coming soon & maintenance mode plugin. Super-simple to use. MailChimp support built-in.
6
- * Version: 2.19
7
  * Requires at least: 4.0
8
  * Requires PHP: 5.2
9
- * Tested up to: 5.5
10
  * Author: WebFactory Ltd
11
  * Author URI: https://www.webfactoryltd.com/
12
  * License: GPLv3
@@ -14,7 +14,7 @@
14
  *
15
  *
16
  * Minimal Coming Soon & Maintenance Mode Plugin
17
- * Copyright (C) 2016 - 2020, Web Factory Ltd - support@webfactoryltd.com
18
  *
19
  * This program is free software: you can redistribute it and/or modify
20
  * it under the terms of the GNU General Public License as published by
3
  * Plugin Name: Minimal Coming Soon & Maintenance Mode
4
  * Plugin URI: https://comingsoonwp.com/
5
  * Description: Simply awesome coming soon & maintenance mode plugin. Super-simple to use. MailChimp support built-in.
6
+ * Version: 2.20
7
  * Requires at least: 4.0
8
  * Requires PHP: 5.2
9
+ * Tested up to: 5.6
10
  * Author: WebFactory Ltd
11
  * Author URI: https://www.webfactoryltd.com/
12
  * License: GPLv3
14
  *
15
  *
16
  * Minimal Coming Soon & Maintenance Mode Plugin
17
+ * Copyright (C) 2016 - 2020, WebFactory Ltd - support@webfactoryltd.com
18
  *
19
  * This program is free software: you can redistribute it and/or modify
20
  * it under the terms of the GNU General Public License as published by
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: WebFactory
3
  Tags: coming soon, coming soon page, maintenance mode, maintenance mode page, coming soon mode, under construction, maintenance mode page, landing page, offline page, subscribe form, maintenance, mailchimp, gdpr, coming soon builder, coming soon status
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
- Tested up to: 5.5
7
- Stable tag: 2.19
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -82,6 +82,10 @@ Yes and no. When activated it enables itself across the entire WP-MU network.
82
 
83
  == Changelog ==
84
 
 
 
 
 
85
  = 2.19 =
86
  * 2020-10-11
87
  * removed MailOptin integration
3
  Tags: coming soon, coming soon page, maintenance mode, maintenance mode page, coming soon mode, under construction, maintenance mode page, landing page, offline page, subscribe form, maintenance, mailchimp, gdpr, coming soon builder, coming soon status
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
+ Tested up to: 5.6
7
+ Stable tag: 2.20
8
  License: GPLv3
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
82
 
83
  == Changelog ==
84
 
85
+ = 2.20 =
86
+ * 2020-10-27
87
+ * removed auto activation for PRO version
88
+
89
  = 2.19 =
90
  * 2020-10-11
91
  * removed MailOptin integration
wp301/wp301.php CHANGED
@@ -148,7 +148,7 @@ if (false == class_exists('wf_wp301')) {
148
  $out .= '#wp301promo_dismiss:hover { text-decoration: underline; }';
149
  $out .= '#wp301promo_widget, #wp301promo_widget p { font-size: 14px; }';
150
  $out .= '#wp301promo_widget .title301 { font-weight: 600; margin: 10px 0 -10px 0; }';
151
- $out .= '#wp301promo_widget img { max-width: 50%; max-height: 80px; }';
152
  $out .= '#wp301promo_widget .center { text-align: center; }';
153
  $out .= '#wp301promo_email { margin-bottom: 0 !important; }';
154
  $out .= '#wp301promo_widget { background-color: #fafafa; }';
@@ -266,7 +266,7 @@ if (false == class_exists('wf_wp301')) {
266
  $out .= '<li>Create advanced redirect rules &amp; control affiliate links</li>';
267
  $out .= '<li>Detailed log of all redirects &amp; 404s</li>';
268
  $out .= '<li>Manage all sites\' licenses from a central Dashboard</li>';
269
- $out .= '<li>Lifetime license for 10 sites. <a href="https://wp301redirects.com/free-license/?ref=free-' . $this->plugin_slug . '-dashboard" target="_blank">See all features</a></li>';
270
  $out .= '</ul>';
271
 
272
  $out .= '
148
  $out .= '#wp301promo_dismiss:hover { text-decoration: underline; }';
149
  $out .= '#wp301promo_widget, #wp301promo_widget p { font-size: 14px; }';
150
  $out .= '#wp301promo_widget .title301 { font-weight: 600; margin: 10px 0 -10px 0; }';
151
+ $out .= '#wp301promo_widget img { max-width: 45%; max-height: 80px; }';
152
  $out .= '#wp301promo_widget .center { text-align: center; }';
153
  $out .= '#wp301promo_email { margin-bottom: 0 !important; }';
154
  $out .= '#wp301promo_widget { background-color: #fafafa; }';
266
  $out .= '<li>Create advanced redirect rules &amp; control affiliate links</li>';
267
  $out .= '<li>Detailed log of all redirects &amp; 404s</li>';
268
  $out .= '<li>Manage all sites\' licenses from a central Dashboard</li>';
269
+ $out .= '<li>Lifetime license for 10 sites. <a href="https://wp301redirects.com/free-license/?ref=free-' . $this->plugin_slug . '-popup" target="_blank">See all features</a></li>';
270
  $out .= '</ul>';
271
 
272
  $out .= '