Under Construction - Version 2.90

Version Description

Download this release

Release Info

Developer WebFactory
Plugin Icon 128x128 Under Construction
Version 2.90
Comparing to
See all releases

Code changes from version 2.85 to 2.90

css/ucp-admin.css CHANGED
@@ -6,6 +6,36 @@
6
 
7
  @import url('//fonts.googleapis.com/css?family=Roboto:900');
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  .settings_page_ucp h1 {
10
  margin-bottom: 30px;
11
  }
@@ -53,10 +83,6 @@ p.submit {
53
  padding-bottom: 0;
54
  }
55
 
56
- a.reset-settings.button:hover {
57
- color: #ea1919;
58
- }
59
-
60
  .button.loading {
61
  pointer-events: none;
62
  cursor: default !important;
@@ -153,7 +179,25 @@ div.ucp-thumb, div.ucp-thumb-special {
153
  display: inline-block;
154
  text-align: center;
155
  padding: 10px;
156
- border: 2px solid transparent;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
158
 
159
  div.ucp-thumb.active {
@@ -162,7 +206,6 @@ div.ucp-thumb.active {
162
 
163
  div.ucp-thumb:hover, div.ucp-thumb-special:hover {
164
  border: 2px solid rgba(255, 121, 0, 0.7);
165
- cursor: pointer;
166
  }
167
 
168
  div.ucp-thumb.active span {
6
 
7
  @import url('//fonts.googleapis.com/css?family=Roboto:900');
8
 
9
+ .settings_page_ucp .button-primary, .settings_page_ucp .button.button-primary {
10
+ background: #FF9900;
11
+ color: #FFFFFF;
12
+ }
13
+
14
+ .settings_page_ucp .button, .settings_page_ucp .button-primary, .settings_page_ucp .button-secondary {
15
+ -webkit-border-radius: 0;
16
+ border-radius: 0;
17
+ border: 1px solid #FF9900;
18
+ background: transparent;
19
+ color: #FF9900;
20
+ text-shadow: none;
21
+ box-shadow: none;
22
+ margin-right: 4px;
23
+ }
24
+
25
+ .settings_page_ucp .button:hover,
26
+ .settings_page_ucp .button-primary:hover,
27
+ .settings_page_ucp .button-secondary:hover,
28
+ .settings_page_ucp .button-primary:active,
29
+ .settings_page_ucp .button:active,
30
+ .settings_page_ucp .button-secondary:active,
31
+ .settings_page_ucp .button-primary:focus,
32
+ .settings_page_ucp .button-secondary:focus {
33
+ background:rgba(255, 153, 0, 0.7);
34
+ color:#FFFFFF;
35
+ border: 1px solid #FF9900;
36
+ box-shadow: none;
37
+ }
38
+
39
  .settings_page_ucp h1 {
40
  margin-bottom: 30px;
41
  }
83
  padding-bottom: 0;
84
  }
85
 
 
 
 
 
86
  .button.loading {
87
  pointer-events: none;
88
  cursor: default !important;
179
  display: inline-block;
180
  text-align: center;
181
  padding: 10px;
182
+ border: 2px solid rgba(241, 241, 241, 0.7);
183
+ }
184
+
185
+ div.ucp-thumb span {
186
+ text-align: left;
187
+ display: block;
188
+ padding: 4px 0 10px 0;
189
+ }
190
+
191
+ div.ucp-thumb .buttons {
192
+ text-align: left;
193
+ }
194
+
195
+ div.ucp-thumb .buttons a {
196
+ margin-right: 10px;
197
+ }
198
+
199
+ .wp-core-ui div.ucp-thumb .button-primary:active, .wp-core-ui div.ucp-thumb .button-secondary:active {
200
+ vertical-align: inherit;
201
  }
202
 
203
  div.ucp-thumb.active {
206
 
207
  div.ucp-thumb:hover, div.ucp-thumb-special:hover {
208
  border: 2px solid rgba(255, 121, 0, 0.7);
 
209
  }
210
 
211
  div.ucp-thumb.active span {
images/thumbnails/_pro_clouds.jpg DELETED
Binary file
images/thumbnails/_pro_custom.jpg DELETED
Binary file
images/thumbnails/_pro_mountain.jpg DELETED
Binary file
images/thumbnails/_pro_smoothie.jpg DELETED
Binary file
images/thumbnails/_pro_video.jpg DELETED
Binary file
images/thumbnails/_pro_watch.jpg DELETED
Binary file
images/thumbnails/pro/cloud-business-inc.jpg ADDED
Binary file
images/thumbnails/pro/custom.jpg ADDED
Binary file
images/thumbnails/pro/forest-in-the-fog.jpg ADDED
Binary file
images/thumbnails/pro/mountain.jpg ADDED
Binary file
images/thumbnails/pro/relaxing-screensaver.jpg ADDED
Binary file
images/thumbnails/pro/simple-beige.jpg ADDED
Binary file
images/thumbnails/pro/small-office.jpg ADDED
Binary file
images/thumbnails/pro/smoothie.jpg ADDED
Binary file
images/thumbnails/pro/soothing-nature.jpg ADDED
Binary file
images/thumbnails/pro/travel-blog.jpg ADDED
Binary file
images/thumbnails/pro/watch-company.jpg ADDED
Binary file
js/ucp-admin.js CHANGED
@@ -6,7 +6,8 @@
6
 
7
 
8
  jQuery(document).ready(function($) {
9
- old_settings = $('#ucp_form *').not('.skip-save').serialize();
 
10
 
11
  // init tabs
12
  $('#ucp_tabs').tabs({
@@ -152,17 +153,14 @@ jQuery(document).ready(function($) {
152
  }
153
  }); // if enter on support email
154
 
155
- // select theme via thumb
156
- $('.ucp-thumb').on('click', function(e) {
157
- if ($(this).hasClass('ucp-thumb-pro')) {
158
- return true;
159
- }
160
 
 
 
161
  e.preventDefault();
162
- theme_id = $(this).data('theme-id');
163
- $('.ucp-thumb').removeClass('active');
164
- $(this).addClass('active');
165
  $('#theme_id').val(theme_id);
 
166
 
167
  return false;
168
  });
@@ -316,6 +314,20 @@ jQuery(document).ready(function($) {
316
  return;
317
  }
318
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  if ($(this).is('select')) {
320
  $(this).find('option').attr('selected', '');
321
  $(this).find('option:first').attr('selected', 'selected');
6
 
7
 
8
  jQuery(document).ready(function($) {
9
+ var old_settings = $('#ucp_form *').not('.skip-save').serialize();
10
+ var ad_name = '';
11
 
12
  // init tabs
13
  $('#ucp_tabs').tabs({
153
  }
154
  }); // if enter on support email
155
 
 
 
 
 
 
156
 
157
+ // activate theme via thumb and save
158
+ $('.ucp-thumb .activate-theme').on('click', function(e) {
159
  e.preventDefault();
160
+
161
+ theme_id = $(this).parents('.ucp-thumb').data('theme-id');
 
162
  $('#theme_id').val(theme_id);
163
+ $('#ucp_tabs #submit').trigger('click');
164
 
165
  return false;
166
  });
314
  return;
315
  }
316
 
317
+ ad_name = $(this).attr('id');
318
+ if (!ad_name) {
319
+ ad_name = $(this).data('pro-ad');
320
+ }
321
+ if (!ad_name) {
322
+ ad_name = '';
323
+ }
324
+
325
+ $('.promo-button').each(function(ind, el) {
326
+ tmp = $(el).data('href-org');
327
+ tmp = tmp.replace('pricing-table', ad_name);
328
+ $(el).attr('href', tmp);
329
+ });
330
+
331
  if ($(this).is('select')) {
332
  $(this).find('option').attr('selected', '');
333
  $(this).find('option:first').attr('selected', 'selected');
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Under Construction ===
2
  Contributors: WebFactory, UnderConstructionPage
3
- Tags: maintenance mode, maintenance page, coming soon page, landing page, under construction
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
- Stable tag: 2.85
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -13,13 +13,13 @@ The fastest & simplest Under Construction Page, Landing Page, Maintenance Mode &
13
 
14
  == Description ==
15
 
16
- Create an Under Construction Page, Maintenance Mode Page, Coming Soon Page or a Landing Page that takes **less than a minute to install & configure**. This plugin won't waste your time! UCP is simple, fast, efficient & user-friendly with <a href="https://underconstructionpage.com/">great designs</a>.
17
 
18
  [youtube https://www.youtube.com/watch?v=fqqWrQENSDc]
19
 
20
- > > **PRO** version offers more than 100 extra features and options including the drag&drop builder, 400,000+ hi-res searchable images, 100+ templates, affiliate&traffic tracking, advanced access control, MailChimp, Zapier & universal autoresponder integration, and priority USA based support. Find out more on the <a href="https://underconstructionpage.com/">official plugin site</a>.
21
 
22
- A simple, no-nonsense plugin for all those situations when you have to hide the site behind an Under Construction page for a while. Live examples are available on the <a href="https://underconstructionpage.com/" rel="friend">Under Construction website</a>. Give us a shout on Twitter <a href="http://twitter.com/WebFactoryLtd">@WebFactoryLtd</a> or check out the <a href="https://youtu.be/fqqWrQENSDc">video</a>.
23
 
24
 
25
  **Options**
@@ -27,7 +27,7 @@ A simple, no-nonsense plugin for all those situations when you have to hide the
27
  * Under construction mode - off / on
28
  * Automatic End date & time - automatically disable construction mode on a set date
29
  * Google Analytics Tracking ID - enable tracking via Google Analytics
30
- * Theme - a new one is added with each update, <a href="https://underconstructionpage.com/">test all available themes (25+)</a>
31
  * Custom CSS - adjust any part of the page to fit your needs
32
  * Title - page title, for SEO
33
  * Description - page description, for SEO
@@ -87,43 +87,51 @@ Or if needed, upload manually;
87
 
88
  == Screenshots ==
89
 
90
- 1. Under Construction Text theme
91
- 2. Mad Designer theme
92
- 3. Plain Text theme
93
- 4. Under Construction theme
94
- 5. Things Went Dark theme
95
- 6. Forklift at Work theme
96
- 7. Cyber Chick theme
97
- 8. Rocket Launch theme
98
- 9. Loader at Work theme
99
- 10. Cyber Chick Dark theme
100
- 11. Safe theme
101
- 12. People at Work theme
102
- 13. Windmill theme
103
- 14. Sad Site theme
104
- 15. Lighthouse
105
- 16. Hot Air Baloon
106
- 17. People at Work #2 theme
107
- 18. Rocket Launch #2 theme
108
- 19. Light Bulb theme
109
- 20. Ambulance theme
110
- 21. Laptop theme
111
- 22. Puzzles theme contributed by <a href="https://twitter.com/EdelHaut">Ralf Biester</a>
112
- 23. Internet of Things
113
- 24. Setup theme
114
- 25. Stop theme
115
- 26. Clock theme
116
- 27. Bulldozer theme
117
- 28. Christmas theme
118
- 29. Main settings
119
- 30. Design settings
120
- 31. Content settings
121
- 32. Access settings
122
- 33. Support
 
123
 
124
 
125
  == Changelog ==
126
 
 
 
 
 
 
 
 
127
  = 2.85 =
128
  * 2018/02/05
129
  * involving users into translation efforts
1
  === Under Construction ===
2
  Contributors: WebFactory, UnderConstructionPage
3
+ Tags: maintenance mode, maintenance page, coming soon page, landing page, under construction, under construction page, coming soon, launch page, coming soon mode, maintenance mode page, offline page, maintenance
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
+ Stable tag: 2.90
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
13
 
14
  == Description ==
15
 
16
+ Create an Under Construction Page, Maintenance Mode Page, Coming Soon Page or a Landing Page that takes **less than a minute to install & configure**. This plugin won't waste your time! UCP is simple, fast, efficient & user-friendly with <a href="https://underconstructionpage.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=top#designs">great designs</a>.
17
 
18
  [youtube https://www.youtube.com/watch?v=fqqWrQENSDc]
19
 
20
+ > > **PRO** version offers more than 100 extra features and options including the drag&drop builder, 400,000+ hi-res searchable images, 100+ templates, affiliate&traffic tracking, advanced access control, MailChimp, Zapier & universal autoresponder integration, and priority USA based support. Find out more on the <a href="https://underconstructionpage.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=official-site">official plugin site</a>.
21
 
22
+ A simple, no-nonsense plugin for all those situations when you have to hide the site behind an Under Construction page for a while. Live examples are available on the <a href="https://underconstructionpage.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=website" rel="friend">Under Construction website</a>. Give us a shout on Twitter <a href="http://twitter.com/WebFactoryLtd">@WebFactoryLtd</a> or check out the <a href="https://youtu.be/fqqWrQENSDc">video</a>.
23
 
24
 
25
  **Options**
27
  * Under construction mode - off / on
28
  * Automatic End date & time - automatically disable construction mode on a set date
29
  * Google Analytics Tracking ID - enable tracking via Google Analytics
30
+ * Theme - a new one is added with each update, <a href="https://underconstructionpage.com/templates/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=available-themes">test all available themes (30+)</a>
31
  * Custom CSS - adjust any part of the page to fit your needs
32
  * Title - page title, for SEO
33
  * Description - page description, for SEO
87
 
88
  == Screenshots ==
89
 
90
+ 1. Build an under construction page in less than a minute with over 30 themes
91
+ 2. Under Construction Text theme
92
+ 3. Mad Designer theme
93
+ 4. Plain Text theme
94
+ 5. Under Construction theme
95
+ 6. Things Went Dark theme
96
+ 7. Forklift at Work theme
97
+ 8. Cyber Chick theme
98
+ 9. Rocket Launch theme
99
+ 10. Loader at Work theme
100
+ 11. Cyber Chick Dark theme
101
+ 12. Safe theme
102
+ 13. People at Work theme
103
+ 14. Windmill theme
104
+ 15. Sad Site theme
105
+ 16. Lighthouse
106
+ 17. Hot Air Baloon
107
+ 18. People at Work #2 theme
108
+ 19. Rocket Launch #2 theme
109
+ 20. Light Bulb theme
110
+ 21. Ambulance theme
111
+ 22. Laptop theme
112
+ 23. Puzzles theme contributed by <a href="https://twitter.com/EdelHaut">Ralf Biester</a>
113
+ 24. Internet of Things
114
+ 25. Setup theme
115
+ 26. Stop theme
116
+ 27. Clock theme
117
+ 28. Bulldozer theme
118
+ 29. Christmas theme
119
+ 30. Main settings
120
+ 31. Design settings
121
+ 32. Content settings
122
+ 33. Access settings
123
+ 34. Support
124
 
125
 
126
  == Changelog ==
127
 
128
+ = 2.85 =
129
+ * 2018/03/13
130
+ * removed the "help us translate" notice
131
+ * few small bug fixes
132
+ * added theme preview feature
133
+ * GUI buttons now follow plugin's branding guide
134
+
135
  = 2.85 =
136
  * 2018/02/05
137
  * involving users into translation efforts
under-construction.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin URI: https://underconstructionpage.com/
5
  Description: Put your site behind a great looking under construction, coming soon, maintenance mode or landing page.
6
  Author: Web factory Ltd
7
- Version: 2.85
8
  Author URI: http://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
  Domain Path: lang
@@ -256,7 +256,15 @@ class UCP {
256
  } else {
257
  header('Retry-After: ' . DAY_IN_SECONDS);
258
  }
259
- echo self::get_template($options['theme']);
 
 
 
 
 
 
 
 
260
  exit;
261
  }
262
  } // display_construction_page
@@ -814,7 +822,8 @@ class UCP {
814
  }
815
 
816
  // ask for translation
817
- if (self::is_plugin_page() &&
 
818
  empty($notices['dismiss_translate']) &&
819
  (time() - $meta['first_install']) > (DAY_IN_SECONDS * 1)) {
820
  $translate_url = self::generate_web_link('translate-notification', 'translate-the-plugin/');
@@ -927,13 +936,13 @@ class UCP {
927
  }
928
 
929
  if (self::is_construction_mode_enabled(true)) {
930
- $main_label = '<img style="height: 17px; margin-bottom: -4px; padding-right: 3px;" src="' . UCP_PLUGIN_URL . '/images/ucp_icon.png" alt="' . __('Under construction mode is enabled', 'under-construction-page') . '" title="' . __('Under construction mode is enabled', 'under-construction-page') . '"> <span class="ab-label">' . __('UnderConstruction', 'under-construction-page') . ' <i class="ucp-status-dot ucp-status-dot-enabled">&#9679;</i></span>';
931
  $class = 'ucp-enabled';
932
  $action_url = add_query_arg(array('action' => 'ucp_change_status', 'new_status' => 'disabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
933
  $action = __('Under Construction Mode', 'under-construction-page');
934
  $action .= '<a href="' . $action_url . '" id="ucp-status-wrapper" class="on"><span id="ucp-status-off" class="ucp-status-btn">OFF</span><span id="ucp-status-on" class="ucp-status-btn">ON</span></a>';
935
  } else {
936
- $main_label = '<img style="height: 17px; margin-bottom: -4px; padding-right: 3px;" src="' . UCP_PLUGIN_URL . '/images/ucp_icon.png" alt="' . __('Under construction mode is disabled', 'under-construction-page') . '" title="' . __('Under construction mode is disabled', 'under-construction-page') . '"> <span class="ab-label">' . __('UnderConstruction', 'under-construction-page') . ' <i class="ucp-status-dot ucp-status-dot-disabled">&#9679;</i></span>';
937
  $class = 'ucp-disabled';
938
  $action_url = add_query_arg(array('action' => 'ucp_change_status', 'new_status' => 'enabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
939
  $action = __('Under Construction Mode', 'under-construction-page');
@@ -1160,6 +1169,7 @@ class UCP {
1160
  $options['license_active'] = $tmp['license_active'];
1161
  if ($tmp['license_active']) {
1162
  add_settings_error(UCP_OPTIONS_KEY, 'license_key', __('License key saved and activated!', 'under-construction-page'), 'updated');
 
1163
  } else {
1164
  add_settings_error(UCP_OPTIONS_KEY, 'license_key', 'License not active. ' . $tmp['error'], 'error');
1165
  }
@@ -1308,7 +1318,7 @@ class UCP {
1308
  <label for="search_engines" class="toggle"><span class="toggle_handler"></span></label>
1309
  </div>';
1310
 
1311
- echo '<p class="description">' . __('While performing maintenance or having any temporary content displayed, it is favorable for SEO to prevent search engines from indexing the temporaray site. This is a <a href="#" class="open-ucp-upsell">PRO feature</a>.', 'under-construction-page') . '</p>';
1312
  echo '</td></tr>';
1313
 
1314
  echo '<tr valign="top">
@@ -1397,7 +1407,7 @@ class UCP {
1397
  <input type="checkbox" id="external_shortcodes" type="checkbox" value="1" class="skip-save open-ucp-upsell">
1398
  <label for="external_shortcodes" class="toggle"><span class="toggle_handler"></span></label>
1399
  </div>';
1400
- echo '<p class="description">Enable if you have a 3rd party shortcode you\'d like to use on the under construction page. This is a <a href="#" class="open-ucp-upsell">PRO feature</a>.</p>';
1401
  echo '</td></tr>';
1402
 
1403
  echo '<tr valign="top" id="login_button_wrap">
@@ -1534,32 +1544,37 @@ class UCP {
1534
 
1535
 
1536
  static function get_themes() {
1537
- $themes = array('_pro_video' => __('Fireworks Video Background', 'under-construction-page'),
1538
  'mad_designer' => __('Mad Designer', 'under-construction-page'),
1539
  'plain_text' => __('Plain Text', 'under-construction-page'),
1540
  '_pro_mountain' => __('Mountain Peak', 'under-construction-page'),
1541
  'under_construction' => __('Under Construction', 'under-construction-page'),
1542
  'dark' => __('Things Went Dark', 'under-construction-page'),
 
1543
  'forklift' => __('Forklift at Work', 'under-construction-page'),
1544
- '_pro_watch' => __('The Watch Store', 'under-construction-page'),
1545
  'under_construction_text' => __('Under Construction Text', 'under-construction-page'),
 
1546
  'cyber_chick' => __('Cyber Chick', 'under-construction-page'),
1547
- '_pro_custom' => __('Build Your Own Custom Theme', 'under-construction-page'),
1548
  'rocket' => __('Rocket Launch', 'under-construction-page'),
 
1549
  'loader' => __('Loader at Work', 'under-construction-page'),
1550
  'cyber_chick_dark' => __('Cyber Chick Dark', 'under-construction-page'),
 
1551
  'safe' => __('Safe', 'under-construction-page'),
1552
  'people' => __('People at Work', 'under-construction-page'),
1553
- '_pro_clouds' => __('White Clouds', 'under-construction-page'),
1554
  'windmill' => __('Windmill', 'under-construction-page'),
1555
  'sad_site' => __('Sad Site', 'under-construction-page'),
 
1556
  'lighthouse' => __('Lighthouse', 'under-construction-page'),
1557
- '_pro_smoothie' => __('Green Smoothie Webinar', 'under-construction-page'),
1558
  'hot_air_baloon' => __('Hot Air Balloon', 'under-construction-page'),
 
1559
  'people_2' => __('People at Work #2', 'under-construction-page'),
1560
  'rocket_2' => __('Rocket Launch #2', 'under-construction-page'),
 
1561
  'light_bulb' => __('Light Bulb', 'under-construction-page'),
1562
  'ambulance' => __('Ambulance', 'under-construction-page'),
 
1563
  'laptop' => __('Laptop', 'under-construction-page'),
1564
  'puzzles' => __('Puzzles', 'under-construction-page'),
1565
  'iot' => __('Internet of Things', 'under-construction-page'),
@@ -1594,9 +1609,18 @@ class UCP {
1594
  $class = '';
1595
  }
1596
  if (substr($theme_id, 0, 4) == '_pro') {
1597
- echo '<div class="ucp-thumb ucp-thumb-pro open-ucp-upsell" data-theme-id="' . $theme_id . '" data-tab="buy"><a href="#"><img src="' . $img_path . $theme_id . '.jpg" alt="' . $theme_name . '" title="' . $theme_name . '"></a><span>' . $theme_name . '</span><div class="ribbon"><i>PRO</i></div></div>';
 
 
 
 
 
 
 
1598
  } else {
1599
- echo '<div class="ucp-thumb' . $class . '" data-theme-id="' . $theme_id . '"><img src="' . $img_path . $theme_id . '.png" alt="' . $theme_name . '" title="' . $theme_name . '"><span>' . $theme_name . '</span></div>';
 
 
1600
  }
1601
  } // foreach
1602
 
@@ -1643,7 +1667,7 @@ class UCP {
1643
  <input type="checkbox" id="whitelisted_ips" type="checkbox" value="1" class="skip-save open-ucp-upsell">
1644
  <label for="whitelisted_ips" class="toggle"><span class="toggle_handler"></span></label>
1645
  </div>';
1646
- echo '<p>Listed IP addresses will not be affected by the under construction mode and their users will always see the "normal" site. This is a <a href="#" class="open-ucp-upsell">PRO feature</a>.';
1647
  echo '<td></tr>';
1648
 
1649
  echo '<tr valign="top">
@@ -1653,7 +1677,7 @@ class UCP {
1653
  <input type="checkbox" id="access_links" type="checkbox" value="1" class="skip-save open-ucp-upsell">
1654
  <label for="access_links" class="toggle"><span class="toggle_handler"></span></label>
1655
  </div>';
1656
- echo '<p>The most flexible and user-friendly way (especially when working with clients) to give only selected visitors access to the "normal" site. Simply generate a new link, configure expiration options (time, number of visits or unique IPs) and share it with users to allow them access to the site. This is a <a href="#" class="open-ucp-upsell">PRO feature</a>.';
1657
  echo '<td></tr>';
1658
 
1659
  echo '<tr valign="top" id="whitelisted-roles">
@@ -1680,7 +1704,7 @@ class UCP {
1680
  echo '<option class="ucp-promo" value="-1">Listed URLs will NEVER be affected by UCP</option>';
1681
  echo '<option class="ucp-promo" value="-1">ONLY listed URLs CAN BE affected by UCP</option>';
1682
  echo '</select>';
1683
- echo '<p class="description">Use this option to set per URL rules and lock down the entire site except selected pages; or lock down just some pages and leave all others accessible to visitors. If second option is used all other access rules still apply. This is a <a href="#" class="open-ucp-upsell">PRO feature</a>.</p>';
1684
  echo '</td>';
1685
  echo '</tr>';
1686
 
@@ -1741,12 +1765,12 @@ class UCP {
1741
  echo '<option value="-1" class="ucp-promo">Normal</option>';
1742
  echo '<option value="-1" class="ucp-promo">High</option>';
1743
  echo '</select>';
1744
- echo '<p class="description">' . __('We reply to all tickets as fast as possible. However, <a href="#" class="open-ucp-upsell">PRO users</a> get to jump the queue.', 'under-construction-page') . '</p>';
1745
  echo '</td></tr>';
1746
 
1747
  echo '<tr valign="top">
1748
  <th scope="row"><label for="support_email">' . __('Your Email Address', 'under-construction-page') . '</label></th>
1749
- <td><input id="support_email" type="text" class="regular-text skip-save" name="support_email" value="' . $user->user_email . '" placeholder="name@domain.com">';
1750
  echo '<p class="description">' . __('We will reply to this email, so please, double-check it.', 'under-construction-page') . '</p>';
1751
  echo '</td></tr>';
1752
 
@@ -1794,7 +1818,7 @@ class UCP {
1794
  echo '<p style="text-align: center;"><a href="' . $update_url . '" class="button button-primary button-large">Update UnderConstructionPage files to PRO</a><br><br></p>';
1795
  } else {
1796
  echo '<div id="ucp-earlybird"><span>Build <b>landing pages, coming soon pages, maintenance &amp; under construction pages</b> faster &amp; easier!</span>';
1797
- echo '<p class="textcenter"><a href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now with a LIMITED <b>20% discount</b>!</a></p>';
1798
  echo '</div>';
1799
  }
1800
 
@@ -1845,7 +1869,7 @@ class UCP {
1845
  echo '</div>';
1846
 
1847
  echo '<p class="submit">';
1848
- echo get_submit_button(__('Save &amp; Validate License Key', 'under-construction-page'), 'primary large', 'license-submit', false);
1849
  echo '</p>';
1850
  } // tab_pro
1851
 
@@ -2018,15 +2042,15 @@ class UCP {
2018
  </tr>
2019
  <tr>
2020
  <td>
2021
- <a class="promo-button go-to-license-key" href="' . self::generate_web_link('pricing-table-20-off', 'buy/', array('p' => 'agency-lifetime-welcome', 'r' => 'UCP v' . self::$version)) . '" target="_blank">BUY NOW 20% OFF<br><del>$250</del> $200</a>
2022
  <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WordPress admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2023
  </td>
2024
  <td>
2025
- <a class="promo-button go-to-license-key" href="' . self::generate_web_link('pricing-table-20-off', 'buy/', array('p' => 'pro-lifetime-welcome', 'r' => 'UCP v' . self::$version)) . '" target="_blank">BUY NOW 20% OFF<br><del>$70</del> $56</a>
2026
  <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WordPress admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2027
  </td>
2028
  <td>
2029
- <a class="promo-button go-to-license-key" href="' . self::generate_web_link('pricing-table-20-off', 'buy/', array('p' => 'pro-yearly-welcome', 'r' => 'UCP v' . self::$version)) . '" target="_blank">BUY NOW 20% OFF<br><del>$39</del> $31<small>/year</small></a>
2030
  <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WordPress admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2031
  </td>
2032
  </tr>
4
  Plugin URI: https://underconstructionpage.com/
5
  Description: Put your site behind a great looking under construction, coming soon, maintenance mode or landing page.
6
  Author: Web factory Ltd
7
+ Version: 2.90
8
  Author URI: http://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
  Domain Path: lang
256
  } else {
257
  header('Retry-After: ' . DAY_IN_SECONDS);
258
  }
259
+
260
+ $themes = self::get_themes();
261
+ if (!empty($_GET['theme']) && substr($_GET['theme'], 5) != '_pro_' && !empty($themes[$_GET['theme']])) {
262
+ $theme = $_GET['theme'];
263
+ } else {
264
+ $theme = $options['theme'];
265
+ }
266
+
267
+ echo self::get_template($theme);
268
  exit;
269
  }
270
  } // display_construction_page
822
  }
823
 
824
  // ask for translation
825
+ // disabled
826
+ if (false && self::is_plugin_page() &&
827
  empty($notices['dismiss_translate']) &&
828
  (time() - $meta['first_install']) > (DAY_IN_SECONDS * 1)) {
829
  $translate_url = self::generate_web_link('translate-notification', 'translate-the-plugin/');
936
  }
937
 
938
  if (self::is_construction_mode_enabled(true)) {
939
+ $main_label = '<img style="height: 17px; margin-bottom: -4px; padding-right: 3px;" src="' . UCP_PLUGIN_URL . 'images/ucp_icon.png" alt="' . __('Under construction mode is enabled', 'under-construction-page') . '" title="' . __('Under construction mode is enabled', 'under-construction-page') . '"> <span class="ab-label">' . __('UnderConstruction', 'under-construction-page') . ' <i class="ucp-status-dot ucp-status-dot-enabled">&#9679;</i></span>';
940
  $class = 'ucp-enabled';
941
  $action_url = add_query_arg(array('action' => 'ucp_change_status', 'new_status' => 'disabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
942
  $action = __('Under Construction Mode', 'under-construction-page');
943
  $action .= '<a href="' . $action_url . '" id="ucp-status-wrapper" class="on"><span id="ucp-status-off" class="ucp-status-btn">OFF</span><span id="ucp-status-on" class="ucp-status-btn">ON</span></a>';
944
  } else {
945
+ $main_label = '<img style="height: 17px; margin-bottom: -4px; padding-right: 3px;" src="' . UCP_PLUGIN_URL . 'images/ucp_icon.png" alt="' . __('Under construction mode is disabled', 'under-construction-page') . '" title="' . __('Under construction mode is disabled', 'under-construction-page') . '"> <span class="ab-label">' . __('UnderConstruction', 'under-construction-page') . ' <i class="ucp-status-dot ucp-status-dot-disabled">&#9679;</i></span>';
946
  $class = 'ucp-disabled';
947
  $action_url = add_query_arg(array('action' => 'ucp_change_status', 'new_status' => 'enabled', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
948
  $action = __('Under Construction Mode', 'under-construction-page');
1169
  $options['license_active'] = $tmp['license_active'];
1170
  if ($tmp['license_active']) {
1171
  add_settings_error(UCP_OPTIONS_KEY, 'license_key', __('License key saved and activated!', 'under-construction-page'), 'updated');
1172
+ set_site_transient('update_plugins', null);
1173
  } else {
1174
  add_settings_error(UCP_OPTIONS_KEY, 'license_key', 'License not active. ' . $tmp['error'], 'error');
1175
  }
1318
  <label for="search_engines" class="toggle"><span class="toggle_handler"></span></label>
1319
  </div>';
1320
 
1321
+ echo '<p class="description">' . __('While performing maintenance or having any temporary content displayed, it is favorable for SEO to prevent search engines from indexing the temporaray site. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="search_engines_text">PRO feature</a>.', 'under-construction-page') . '</p>';
1322
  echo '</td></tr>';
1323
 
1324
  echo '<tr valign="top">
1407
  <input type="checkbox" id="external_shortcodes" type="checkbox" value="1" class="skip-save open-ucp-upsell">
1408
  <label for="external_shortcodes" class="toggle"><span class="toggle_handler"></span></label>
1409
  </div>';
1410
+ echo '<p class="description">Enable if you have a 3rd party shortcode you\'d like to use on the under construction page. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="external_shortcodes">PRO feature</a>.</p>';
1411
  echo '</td></tr>';
1412
 
1413
  echo '<tr valign="top" id="login_button_wrap">
1544
 
1545
 
1546
  static function get_themes() {
1547
+ $themes = array('_pro_relaxing-screensaver' => __('Fireworks Video Background', 'under-construction-page'),
1548
  'mad_designer' => __('Mad Designer', 'under-construction-page'),
1549
  'plain_text' => __('Plain Text', 'under-construction-page'),
1550
  '_pro_mountain' => __('Mountain Peak', 'under-construction-page'),
1551
  'under_construction' => __('Under Construction', 'under-construction-page'),
1552
  'dark' => __('Things Went Dark', 'under-construction-page'),
1553
+ '_pro_watch-company' => __('The Watch Store', 'under-construction-page'),
1554
  'forklift' => __('Forklift at Work', 'under-construction-page'),
 
1555
  'under_construction_text' => __('Under Construction Text', 'under-construction-page'),
1556
+ '_pro_cloud-business-inc' => __('Cloud Business', 'under-construction-page'),
1557
  'cyber_chick' => __('Cyber Chick', 'under-construction-page'),
 
1558
  'rocket' => __('Rocket Launch', 'under-construction-page'),
1559
+ '_pro_smoothie' => __('Green Smoothie Webinar', 'under-construction-page'),
1560
  'loader' => __('Loader at Work', 'under-construction-page'),
1561
  'cyber_chick_dark' => __('Cyber Chick Dark', 'under-construction-page'),
1562
+ '_pro_small-office' => __('Small Office', 'under-construction-page'),
1563
  'safe' => __('Safe', 'under-construction-page'),
1564
  'people' => __('People at Work', 'under-construction-page'),
1565
+ '_pro_custom' => __('Build Your Own Custom Theme', 'under-construction-page'),
1566
  'windmill' => __('Windmill', 'under-construction-page'),
1567
  'sad_site' => __('Sad Site', 'under-construction-page'),
1568
+ '_pro-soothing-nature' => __('Soothing Nature', 'under-construction-page'),
1569
  'lighthouse' => __('Lighthouse', 'under-construction-page'),
 
1570
  'hot_air_baloon' => __('Hot Air Balloon', 'under-construction-page'),
1571
+ '_pro_simple-beige' => __('Simple Beige Text', 'under-construction-page'),
1572
  'people_2' => __('People at Work #2', 'under-construction-page'),
1573
  'rocket_2' => __('Rocket Launch #2', 'under-construction-page'),
1574
+ '_pro_travel-blog' => __('Travel Blog', 'under-construction-page'),
1575
  'light_bulb' => __('Light Bulb', 'under-construction-page'),
1576
  'ambulance' => __('Ambulance', 'under-construction-page'),
1577
+ '_pro_forest-in-the-fog' => __('Forest in the Fog', 'under-construction-page'),
1578
  'laptop' => __('Laptop', 'under-construction-page'),
1579
  'puzzles' => __('Puzzles', 'under-construction-page'),
1580
  'iot' => __('Internet of Things', 'under-construction-page'),
1609
  $class = '';
1610
  }
1611
  if (substr($theme_id, 0, 4) == '_pro') {
1612
+ $theme_id = substr($theme_id, 5);
1613
+ echo '<div class="ucp-thumb ucp-thumb-pro" data-theme-id="' . $theme_id . '"><img src="' . $img_path . 'pro/' . $theme_id . '.jpg" alt="' . $theme_name . '" title="' . $theme_name . '"><span>' . $theme_name . '</span>';
1614
+ echo '<div class="buttons"><a href="#" data-pro-ad="activate_' . $theme_id . '" class="open-ucp-upsell button button-primary">Activate</a> ';
1615
+ if ($theme_id != 'custom') {
1616
+ echo '<a href="https://templates.underconstructionpage.com/?ucp_template_preview&template=' . $theme_id . '&utm_source=ucp-free&utm_medium=plugin&utm_content=design-preview-' . $theme_id . '&utm_campaign=ucp-free-v' . self::$version . '" class="button-secondary" target="_blank">Preview</a>';
1617
+ }
1618
+ echo '</div>';
1619
+ echo '<div class="ribbon"><i>PRO</i></div></div>';
1620
  } else {
1621
+ echo '<div class="ucp-thumb' . $class . '" data-theme-id="' . $theme_id . '"><img src="' . $img_path . $theme_id . '.png" alt="' . $theme_name . '" title="' . $theme_name . '"><span>' . $theme_name . '</span>';
1622
+ echo '<div class="buttons"><a href="#" class="button button-primary activate-theme">Activate</a> <a href="' . get_home_url() . '/?ucp_preview&theme=' . $theme_id . '" class="button-secondary" target="_blank">Preview</a></div>';
1623
+ echo '</div>';
1624
  }
1625
  } // foreach
1626
 
1667
  <input type="checkbox" id="whitelisted_ips" type="checkbox" value="1" class="skip-save open-ucp-upsell">
1668
  <label for="whitelisted_ips" class="toggle"><span class="toggle_handler"></span></label>
1669
  </div>';
1670
+ echo '<p>Listed IP addresses will not be affected by the under construction mode and their users will always see the "normal" site. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="whitelisted_ips">PRO feature</a>.';
1671
  echo '<td></tr>';
1672
 
1673
  echo '<tr valign="top">
1677
  <input type="checkbox" id="access_links" type="checkbox" value="1" class="skip-save open-ucp-upsell">
1678
  <label for="access_links" class="toggle"><span class="toggle_handler"></span></label>
1679
  </div>';
1680
+ echo '<p>The most flexible and user-friendly way (especially when working with clients) to give only selected visitors access to the "normal" site. Simply generate a new link, configure expiration options (time, number of visits or unique IPs) and share it with users to allow them access to the site. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="access_links">PRO feature</a>.';
1681
  echo '<td></tr>';
1682
 
1683
  echo '<tr valign="top" id="whitelisted-roles">
1704
  echo '<option class="ucp-promo" value="-1">Listed URLs will NEVER be affected by UCP</option>';
1705
  echo '<option class="ucp-promo" value="-1">ONLY listed URLs CAN BE affected by UCP</option>';
1706
  echo '</select>';
1707
+ echo '<p class="description">Use this option to set per URL rules and lock down the entire site except selected pages; or lock down just some pages and leave all others accessible to visitors. If second option is used all other access rules still apply. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="url_rules">PRO feature</a>.</p>';
1708
  echo '</td>';
1709
  echo '</tr>';
1710
 
1765
  echo '<option value="-1" class="ucp-promo">Normal</option>';
1766
  echo '<option value="-1" class="ucp-promo">High</option>';
1767
  echo '</select>';
1768
+ echo '<p class="description">' . __('We reply to all tickets as fast as possible. However, <a data-pro-ad="support_priority" href="#" class="open-ucp-upsell">PRO users</a> get to jump the queue.', 'under-construction-page') . '</p>';
1769
  echo '</td></tr>';
1770
 
1771
  echo '<tr valign="top">
1772
  <th scope="row"><label for="support_email">' . __('Your Email Address', 'under-construction-page') . '</label></th>
1773
+ <td><input id="support_email" type="text" class="regular-text skip-save" name="support_email" value="" placeholder="name@domain.com">';
1774
  echo '<p class="description">' . __('We will reply to this email, so please, double-check it.', 'under-construction-page') . '</p>';
1775
  echo '</td></tr>';
1776
 
1818
  echo '<p style="text-align: center;"><a href="' . $update_url . '" class="button button-primary button-large">Update UnderConstructionPage files to PRO</a><br><br></p>';
1819
  } else {
1820
  echo '<div id="ucp-earlybird"><span>Build <b>landing pages, coming soon pages, maintenance &amp; under construction pages</b> faster &amp; easier!</span>';
1821
+ echo '<p class="textcenter"><a data-pro-ad="get_pro" href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now with a LIMITED <b>20% discount</b>!</a></p>';
1822
  echo '</div>';
1823
  }
1824
 
1869
  echo '</div>';
1870
 
1871
  echo '<p class="submit">';
1872
+ echo get_submit_button(__('Save &amp; Validate License Key', 'under-construction-page'), 'large secondary', 'license-submit', false);
1873
  echo '</p>';
1874
  } // tab_pro
1875
 
2042
  </tr>
2043
  <tr>
2044
  <td>
2045
+ <a data-href-org="' . self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime-welcome', 'r' => 'UCP v' . self::$version)) . '" class="promo-button go-to-license-key" href="' . self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime-welcome', 'r' => 'UCP v' . self::$version)) . '" target="_blank">BUY NOW 20% OFF<br><del>$250</del> $200</a>
2046
  <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WordPress admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2047
  </td>
2048
  <td>
2049
+ <a data-href-org="' . self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-lifetime-welcome', 'r' => 'UCP v' . self::$version)) . '" class="promo-button go-to-license-key" href="' . self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-lifetime-welcome', 'r' => 'UCP v' . self::$version)) . '" target="_blank">BUY NOW 20% OFF<br><del>$70</del> $56</a>
2050
  <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WordPress admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2051
  </td>
2052
  <td>
2053
+ <a data-href-org="' . self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-yearly-welcome', 'r' => 'UCP v' . self::$version)) . '" class="promo-button go-to-license-key" href="' . self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-yearly-welcome', 'r' => 'UCP v' . self::$version)) . '" target="_blank">BUY NOW 20% OFF<br><del>$39</del> $31<small>/year</small></a>
2054
  <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WordPress admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2055
  </td>
2056
  </tr>