Under Construction - Version 3.65

Version Description

  • 2019/11/21
  • minor bug fixes
  • removed NotificationX integration
  • added support for Hummingbird cache plugin
Download this release

Release Info

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

Code changes from version 3.60 to 3.65

Files changed (6) hide show
  1. css/ucp-admin.css +12 -128
  2. images/nx-icon.png +0 -0
  3. images/nx-logo.png +0 -0
  4. js/ucp-admin.js +0 -66
  5. readme.txt +19 -15
  6. under-construction.php +33 -282
css/ucp-admin.css CHANGED
@@ -29,7 +29,9 @@
29
  display: none;
30
  }
31
 
32
- .settings_page_ucp input, .settings_page_ucp select, .settings_page_ucp textarea {
 
 
33
  border-radius: 0;
34
  }
35
 
@@ -122,15 +124,15 @@ p.submit {
122
  .notice a.button-primary.open-ucp-upsell {
123
  vertical-align: baseline;
124
  margin-top: 15px;
125
- font-weight: 800;
126
  height: auto;
127
  padding: 10px;
128
- color: #fefefe;
129
- background-color: #ff9900;
 
130
  }
131
  .notice a.button-primary.open-ucp-upsell:hover {
132
- background-color: white;
133
- color: #ff9900;
134
  }
135
 
136
  .button span {
@@ -1121,6 +1123,9 @@ h3.ucp-pro-logo span {
1121
  border-bottom: solid thin #ff7900;
1122
  text-align: center;
1123
  }
 
 
 
1124
  #ucp-pricing-table tr td:first-child {
1125
  border-right: 10px solid #fff;
1126
  }
@@ -1171,7 +1176,7 @@ h3.ucp-pro-logo span {
1171
  padding: 20px;
1172
  box-sizing: border-box;
1173
  text-align: center;
1174
- margin: 20px -15px -20px -15px;
1175
  background-color: rgba(128, 128, 128, 0.03);
1176
  }
1177
  #tab-upsell-features .upsell-footer {
@@ -1370,127 +1375,6 @@ option.weglot-promo {
1370
  display: none !important;
1371
  }
1372
 
1373
- /* notificationx upsell dialog */
1374
- .notificationx-upsell-dialog .ui-dialog-titlebar {
1375
- background: #5614d5;
1376
- text-align: center;
1377
- height: 55px;
1378
- }
1379
- .notificationx-upsell-dialog .ui-dialog-titlebar img {
1380
- height: 32px;
1381
- display: inline-block;
1382
- margin: 11px 0 0 0;
1383
- }
1384
- .notificationx-upsell-dialog .ui-dialog-titlebar-close {
1385
- color: #fff;
1386
- height: 55px;
1387
- }
1388
- .notificationx-upsell-dialog .ui-dialog-titlebar-close:hover {
1389
- color: #333;
1390
- }
1391
- .notificationx-upsell-dialog .ui-dialog-content {
1392
- padding: 0;
1393
- }
1394
- .notificationx-upsell-dialog .ui-tabs-nav {
1395
- text-align: center;
1396
- }
1397
- .notificationx-upsell-dialog .ui-tabs .upsell-tab {
1398
- padding: 20px 15px;
1399
- text-align: center;
1400
- }
1401
- .notificationx-upsell-dialog a {
1402
- color: #333;
1403
- }
1404
- .notificationx-upsell-dialog a:hover {
1405
- color: #000;
1406
- }
1407
- option.notificationx-promo {
1408
- color: #2980b9;
1409
- }
1410
- .notificationx-pro-feature {
1411
- display: inline-block;
1412
- width: 32%;
1413
- background: rgba(128, 128, 128, 0.03);
1414
- margin: 0 5px 20px 5px;
1415
- padding: 10px;
1416
- box-sizing: border-box;
1417
- vertical-align: top;
1418
- position: relative;
1419
- border-top: 1px solid #2980b9;
1420
- }
1421
- /* upsell dialog */
1422
-
1423
- #notificationx-popup {
1424
- position: fixed;
1425
- width: 240px;
1426
- bottom: 20px;
1427
- right: 40px;
1428
- border: 1px solid #d4d4d4;
1429
- padding: 16px;
1430
- background: #fff;
1431
- display: none;
1432
- -webkit-box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.25);
1433
- -moz-box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.25);
1434
- box-shadow: 0px 0px 16px 0px rgba(0, 0, 0, 0.25);
1435
- border-radius: 4px;
1436
- z-index: 99999;
1437
- }
1438
-
1439
- #notificationx-popup:hover {
1440
- cursor: pointer;
1441
- }
1442
-
1443
- #notificationx-popup img {
1444
- width: 48px;
1445
- }
1446
-
1447
- .settings_page_ucp .notificationx-popup-icon {
1448
- background: #efefff;
1449
- padding: 6px 4px 0px 4px;
1450
- width: 48px;
1451
- float: left;
1452
- margin-right: 10px;
1453
- }
1454
-
1455
- .settings_page_ucp .notificationx-popup-text {
1456
- float: left;
1457
- font-weight: bold;
1458
- }
1459
-
1460
- .settings_page_ucp .notificationx-popup-title {
1461
- color: #6138bd;
1462
- font-size: 18px;
1463
- font-weight: bold;
1464
- padding: 5px 0px;
1465
- }
1466
-
1467
- .settings_page_ucp .notificationx-popup-stars .dashicons-star-filled {
1468
- color: #ecac57;
1469
- font-size: 14px;
1470
- }
1471
-
1472
- .settings_page_ucp .notitificationx-popup-desc {
1473
- width: 100%;
1474
- display: block;
1475
- clear: both;
1476
- padding: 4px 0;
1477
- }
1478
-
1479
- .settings_page_ucp .notificationx-popup-close {
1480
- position: absolute;
1481
- top: 4px;
1482
- right: 6px;
1483
- }
1484
-
1485
- .settings_page_ucp .notificationx-popup-close .dashicons {
1486
- font-size: 24px;
1487
- }
1488
-
1489
- .settings_page_ucp .notificationx-popup-close:hover {
1490
- color: #ccc;
1491
- cursor: pointer;
1492
- }
1493
-
1494
  .settings_page_ucp .put-dismiss-notice {
1495
  display: none;
1496
  }
29
  display: none;
30
  }
31
 
32
+ .settings_page_ucp input,
33
+ .settings_page_ucp select,
34
+ .settings_page_ucp textarea {
35
  border-radius: 0;
36
  }
37
 
124
  .notice a.button-primary.open-ucp-upsell {
125
  vertical-align: baseline;
126
  margin-top: 15px;
127
+ font-weight: 600;
128
  height: auto;
129
  padding: 10px;
130
+ color: #111111;
131
+ background-color: #ffffff;
132
+ border-width: 2px;
133
  }
134
  .notice a.button-primary.open-ucp-upsell:hover {
135
+ background-color: #f1f1f1;
 
136
  }
137
 
138
  .button span {
1123
  border-bottom: solid thin #ff7900;
1124
  text-align: center;
1125
  }
1126
+ #ucp-pricing-table .bb0 td {
1127
+ border-bottom: none;
1128
+ }
1129
  #ucp-pricing-table tr td:first-child {
1130
  border-right: 10px solid #fff;
1131
  }
1176
  padding: 20px;
1177
  box-sizing: border-box;
1178
  text-align: center;
1179
+ margin: 10px -15px -20px -15px;
1180
  background-color: rgba(128, 128, 128, 0.03);
1181
  }
1182
  #tab-upsell-features .upsell-footer {
1375
  display: none !important;
1376
  }
1377
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1378
  .settings_page_ucp .put-dismiss-notice {
1379
  display: none;
1380
  }
images/nx-icon.png DELETED
Binary file
images/nx-logo.png DELETED
Binary file
js/ucp-admin.js CHANGED
@@ -299,7 +299,6 @@ jQuery(document).ready(function($) {
299
  $('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
300
  });
301
 
302
- // upsell dialog init
303
  $('#mailoptin-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog mailoptin-upsell-dialog',
304
  'modal': 1,
305
  'resizable': false,
@@ -330,38 +329,6 @@ jQuery(document).ready(function($) {
330
  return false;
331
  });
332
 
333
- // upsell dialog init
334
- $('#notificationx-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog notificationx-upsell-dialog',
335
- 'modal': 1,
336
- 'resizable': false,
337
- 'title': 'Display notification bars',
338
- 'zIndex': 9999,
339
- 'width': 550,
340
- 'height': 'auto',
341
- 'show': 'fade',
342
- 'hide': 'fade',
343
- 'open': function(event, ui) {
344
- ucp_fix_dialog_close(event, ui);
345
- $(this).siblings().find('span.ui-dialog-title').html(ucp.notificationx_dialog_upsell_title);
346
- },
347
- 'close': function(event, ui) { },
348
- 'autoOpen': false,
349
- 'closeOnEscape': true
350
- });
351
- $(window).resize(function(e) {
352
- $('#notificationx-upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
353
- });
354
-
355
- jQuery('#install-notificationx').on('click',function(e) {
356
- $('#notificationx-upsell-dialog').dialog('close');
357
- jQuery('body').append('<div style="width:550px;height:450px; position:fixed;top:10%;left:50%;margin-left:-275px; color:#444; background-color: #fbfbfb;border:1px solid #DDD; border-radius:4px;box-shadow: 0px 0px 0px 4000px rgba(0, 0, 0, 0.85);z-index: 9999999;"><iframe src="' + ucp.notificationx_install_url + '" style="width:100%;height:100%;border:none;" /></div>');
358
- jQuery('#wpwrap').css('pointer-events', 'none');
359
- e.preventDefault();
360
- return false;
361
- });
362
-
363
-
364
- // upsell dialog init
365
  $('#weglot-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog weglot-upsell-dialog',
366
  'modal': 1,
367
  'resizable': false,
@@ -456,17 +423,6 @@ jQuery(document).ready(function($) {
456
  return false;
457
  });
458
 
459
- $('.settings_page_ucp').on('click', '.open-notificationx-upsell', function(e) {
460
- e.preventDefault();
461
-
462
- $(this).blur();
463
-
464
- $('#notificationx-upsell-dialog').dialog('open');
465
-
466
- return false;
467
- });
468
-
469
-
470
  $('.settings_page_ucp').on('click', '.open-weglot-upsell', function(e) {
471
  e.preventDefault();
472
 
@@ -477,17 +433,6 @@ jQuery(document).ready(function($) {
477
  return false;
478
  });
479
 
480
- $('.settings_page_ucp').on('click', '#notificationx-popup', function(e) {
481
- e.preventDefault();
482
-
483
- $(this).blur();
484
-
485
- $('#notificationx-upsell-dialog').dialog('open');
486
-
487
- return false;
488
- });
489
-
490
-
491
  $('#tabs_upsell').on('tabsactivate', function(event, ui) {
492
  $('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
493
  });
@@ -507,17 +452,6 @@ jQuery(document).ready(function($) {
507
  }
508
  });
509
 
510
- ucp_nx = Cookies.get('ucp_nx');
511
- if(ucp_nx != 'closed'){
512
- $('#notificationx-popup').delay(2000).slideDown(500);
513
- }
514
-
515
- $('.settings_page_ucp').on('click','.notificationx-popup-close',function(e){
516
- e.stopPropagation();
517
- $('#notificationx-popup').hide();
518
- Cookies.set('ucp_nx', 'closed', { expires: 700 });
519
- });
520
-
521
  if (!Date.now) {
522
  Date.now = function() { return new Date().getTime(); }
523
  }
299
  $('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
300
  });
301
 
 
302
  $('#mailoptin-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog mailoptin-upsell-dialog',
303
  'modal': 1,
304
  'resizable': false,
329
  return false;
330
  });
331
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
332
  $('#weglot-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog weglot-upsell-dialog',
333
  'modal': 1,
334
  'resizable': false,
423
  return false;
424
  });
425
 
 
 
 
 
 
 
 
 
 
 
 
426
  $('.settings_page_ucp').on('click', '.open-weglot-upsell', function(e) {
427
  e.preventDefault();
428
 
433
  return false;
434
  });
435
 
 
 
 
 
 
 
 
 
 
 
 
436
  $('#tabs_upsell').on('tabsactivate', function(event, ui) {
437
  $('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
438
  });
452
  }
453
  });
454
 
 
 
 
 
 
 
 
 
 
 
 
455
  if (!Date.now) {
456
  Date.now = function() { return new Date().getTime(); }
457
  }
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Under Construction ===
2
- Contributors: WebFactory, UnderConstructionPage, googlemapswidget, securityninja, wpreset
3
  Tags: coming soon page, under construction mode, under construction, under construction page, coming soon, maintenance mode, maintenance page, launch page, coming soon mode, maintenance mode page, offline page, maintenance, landing page
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 5.3
7
- Stable tag: 3.60
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -13,32 +13,30 @@ Super-easy to use Under Construction Page, Maintenance Mode & Coming Soon Page.
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=great-designs#designs">great templates</a> users love.
17
 
18
  [youtube https://www.youtube.com/watch?v=fqqWrQENSDc]
19
 
20
- > **PRO** version offers more than 50 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
  UCP has full support for collecting leads and subscribers via optin boxes in content, and optin popups. We've integrated <a href="https://wordpress.org/plugins/mailoptin/">MailOptin</a> a great, free plugin into UCP that connects to MailChimp and numerous other autoresponder services allowing you to easily collect emails.
25
 
26
  Thanks to our partnership with <a href="https://wordpress.org/plugins/weglot/">Weglot</a>, UCP is fully multilanguage ready and you can instantly translate your under construction page to 100+ languages with one click.
27
 
28
- Increase 20-40% Sales & Interaction in Your Site with <a href="https://wordpress.org/plugins/notificationx/">NotificationX</a>!
29
-
30
 
31
  **Options**
32
 
33
  * Under construction mode - on / off
34
- * Automatic End date & time - automatically disable construction mode on a set date
35
  * Google Analytics Tracking ID - enable tracking via Google Analytics
36
- * 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 (35+)</a>
37
  * Custom CSS - adjust any part of the page to fit your needs
38
  * Title - page title, for SEO
39
  * Description - page description, for SEO
40
  * Headline - main headline/title
41
- * Content - anything you need to display, from styled text to images
42
  * Optin box, optin popup - collect leads and emails and sync with MailChimp and other autoresponders
43
  * Login Button - show a discrete link to the login form, or WP admin if you're logged in
44
  * Social icons/links - new ones are added with every update; let us know if we missed your favorite ones
@@ -59,10 +57,10 @@ Increase 20-40% Sales & Interaction in Your Site with <a href="https://wordpress
59
  * WhatsApp
60
  * Tumblr
61
  * VK
62
- * Whitelisted User Roles - user roles who see the site, instead of maintenance page
63
- * Whitelisted Users - users who see the site, instead of maintenance page
64
 
65
- Under Construction Page has a built-in support system. It requires no registration or any kind of messing about; send a message to our support agents directly from within the plugin. It's compatible with the following caching plugins: W3 Total Cache, WP Super Cache, Endurance Page Cache, SiteGround SuperCacher, WP Fastest Cache and Swift Performance Cache.
66
 
67
 
68
  **What are others saying about the Under Construction Page plugin**
@@ -140,6 +138,12 @@ Or if needed, upload manually;
140
 
141
  == Changelog ==
142
 
 
 
 
 
 
 
143
  = 3.60 =
144
  * 2019/10/31
145
  * minor bug fixes
@@ -490,7 +494,7 @@ Absolutely not.
490
 
491
  = Will it work on my theme? =
492
 
493
- Sure! It works 100% with all themes.
494
 
495
  = Will it work with my plugins? =
496
 
@@ -498,7 +502,7 @@ Sure! It works 100% with all plugins.
498
 
499
  = What changes will it make to my site? =
500
 
501
- None. Once you disable the under construction mode your site will function as it did before.
502
 
503
  = It's not working!!! Arrrrrrrrr =
504
 
1
  === Under Construction ===
2
+ Contributors: WebFactory, UnderConstructionPage, googlemapswidget, wpreset
3
  Tags: coming soon page, under construction mode, under construction, under construction page, coming soon, maintenance mode, maintenance page, launch page, coming soon mode, maintenance mode page, offline page, maintenance, landing page
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 5.3
7
+ Stable tag: 3.65
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**. Under Construction won't waste your time! It's simple, fast, efficient & user-friendly with <a href="https://underconstructionpage.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=great-designs#designs">great templates</a> users love.
17
 
18
  [youtube https://www.youtube.com/watch?v=fqqWrQENSDc]
19
 
20
+ > **PRO** version offers more than 50 extra features and options including the drag&drop builder, over a million hi-res searchable images, 200+ templates, affiliate&traffic tracking, advanced access control, MailChimp, Zapier & universal autoresponder integration, white-label license mode and priority 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 under construction 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">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
  UCP has full support for collecting leads and subscribers via optin boxes in content, and optin popups. We've integrated <a href="https://wordpress.org/plugins/mailoptin/">MailOptin</a> a great, free plugin into UCP that connects to MailChimp and numerous other autoresponder services allowing you to easily collect emails.
25
 
26
  Thanks to our partnership with <a href="https://wordpress.org/plugins/weglot/">Weglot</a>, UCP is fully multilanguage ready and you can instantly translate your under construction page to 100+ languages with one click.
27
 
 
 
28
 
29
  **Options**
30
 
31
  * Under construction mode - on / off
32
+ * Automatic End date & time - automatically disable under construction mode on a set date
33
  * Google Analytics Tracking ID - enable tracking via Google Analytics
34
+ * Theme - <a href="https://underconstructionpage.com/templates/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=available-themes">test all available themes (200+)</a>
35
  * Custom CSS - adjust any part of the page to fit your needs
36
  * Title - page title, for SEO
37
  * Description - page description, for SEO
38
  * Headline - main headline/title
39
+ * Content - anything you need to display
40
  * Optin box, optin popup - collect leads and emails and sync with MailChimp and other autoresponders
41
  * Login Button - show a discrete link to the login form, or WP admin if you're logged in
42
  * Social icons/links - new ones are added with every update; let us know if we missed your favorite ones
57
  * WhatsApp
58
  * Tumblr
59
  * VK
60
+ * Whitelisted User Roles - user roles who see the site, instead of under construction page
61
+ * Whitelisted Users - users who see the site, instead of under construction page
62
 
63
+ Under Construction Page is compatible with the following caching plugins: W3 Total Cache, WP Super Cache, Endurance Page Cache, SiteGround SuperCacher, WP Fastest Cache, Swift Performance Cache, and Hummingbird cache.
64
 
65
 
66
  **What are others saying about the Under Construction Page plugin**
138
 
139
  == Changelog ==
140
 
141
+ = 3.65 =
142
+ * 2019/11/21
143
+ * minor bug fixes
144
+ * removed NotificationX integration
145
+ * added support for Hummingbird cache plugin
146
+
147
  = 3.60 =
148
  * 2019/10/31
149
  * minor bug fixes
494
 
495
  = Will it work on my theme? =
496
 
497
+ Sure! Under construction works 100% with all themes.
498
 
499
  = Will it work with my plugins? =
500
 
502
 
503
  = What changes will it make to my site? =
504
 
505
+ None. Once you disable the under construction page your site will function as it did before.
506
 
507
  = It's not working!!! Arrrrrrrrr =
508
 
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: WebFactory Ltd
7
- Version: 3.60
8
  Author URI: https://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
 
@@ -68,8 +68,6 @@ class UCP {
68
  // if the plugin was updated from ver < 1.20 upgrade settings array
69
  self::maybe_upgrade();
70
 
71
- delete_transient('_nx_meta_activation_notice');
72
-
73
  // add UCP menu to admin tools menu group
74
  add_action('admin_menu', array(__CLASS__, 'admin_menu'));
75
 
@@ -88,7 +86,6 @@ class UCP {
88
  add_action('admin_action_ucp_change_status', array(__CLASS__, 'change_status'));
89
  add_action('admin_action_ucp_reset_settings', array(__CLASS__, 'reset_settings'));
90
  add_action('admin_action_install_mailoptin', array(__CLASS__, 'install_mailoptin'));
91
- add_action('admin_action_install_notificationx', array(__CLASS__, 'install_notificationx'));
92
  add_action('admin_action_install_weglot', array(__CLASS__, 'install_weglot'));
93
  add_action('admin_action_install_security_ninja', array(__CLASS__, 'install_security_ninja'));
94
 
@@ -106,9 +103,6 @@ class UCP {
106
  // main plugin logic
107
  add_action('wp', array(__CLASS__, 'display_construction_page'), 0, 1);
108
 
109
- if(self::is_notificationx_really_setup_and_active()){
110
- add_action('shutdown', array(__CLASS__, 'display_construction_page_x'), 0, 1);
111
- }
112
  // show under construction notice on login form
113
  add_filter('login_message', array(__CLASS__, 'login_message'));
114
 
@@ -160,12 +154,6 @@ class UCP {
160
  $meta = self::get_meta();
161
  $options = self::get_options();
162
 
163
- if (self::$version != $meta['first_version'] && $meta['first_version'] != '3.50' && $meta['options_ver'] != self::$version) {
164
- $pointers = array();
165
- $pointers['nx'] = array('target' => '#menu-settings', 'edge' => 'left', 'align' => 'right', 'content' => 'Easily add notifications to your <b style="font-weight: 800; font-variant: small-caps;">Under Construction Page</b> and continue using them once you launch the site. Open <a href="' . admin_url('options-general.php?page=ucp'). '">Settings - UnderConstruction</a> to set them up in a minute.');
166
- update_option(UCP_POINTERS_KEY, $pointers);
167
- }
168
-
169
  // added in v1.70 to rename roles to whitelisted_roles
170
  if (isset($options['roles'])) {
171
  $options['whitelisted_roles'] = $options['roles'];
@@ -235,7 +223,7 @@ class UCP {
235
  static function display_construction_page() {
236
  $options = self::get_options();
237
  $request_uri = trailingslashit(strtolower(@parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
238
- update_option('ucp_url', $request_uri);
239
  // just to be on the safe side
240
  if (defined('DOING_CRON') && DOING_CRON) {
241
  return false;
@@ -274,92 +262,11 @@ class UCP {
274
  $theme = $options['theme'];
275
  }
276
 
277
- if (self::is_notificationx_really_setup_and_active()) {
278
- ob_start();
279
- } else {
280
- echo self::get_template($theme);
281
- die();
282
- }
283
  }
284
  } // display_construction_page
285
 
286
- static function display_construction_page_x(){
287
- $options = self::get_options();
288
- $request_uri = rtrim(strtolower(@parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)),'/');
289
- $request_uri = '/'.substr($request_uri, strrpos($request_uri, '/') + 1);
290
- if($request_uri != '/wp-login.php'){
291
- $request_uri .= $request_uri.'/';
292
- }
293
- update_option('ucp_x_url',$request_uri);
294
-
295
- // just to be on the safe side
296
- if (defined('DOING_CRON') && DOING_CRON) {
297
- return false;
298
- }
299
- if (defined('DOING_AJAX') && DOING_AJAX) {
300
- return false;
301
- }
302
- if (defined('WP_CLI') && WP_CLI) {
303
- return false;
304
- }
305
-
306
- // some URLs have to be accessible at all times
307
- if ($request_uri == '/wp-admin/' ||
308
- $request_uri == '/feed/' ||
309
- $request_uri == '/feed/rss/' ||
310
- $request_uri == '/feed/rss2/' ||
311
- $request_uri == '/feed/rdf/' ||
312
- $request_uri == '/feed/atom/' ||
313
- $request_uri == '/admin/' ||
314
- $request_uri == '/wp-login.php') {
315
- return;
316
- }
317
-
318
- if (true == self::is_construction_mode_enabled(false) || (is_user_logged_in() && isset($_GET['ucp_preview']))) {
319
- header(self::wp_get_server_protocol() . ' 200 OK');
320
- if ($options['end_date'] && $options['end_date'] != '0000-00-00 00:00') {
321
- header('Retry-After: ' . date('D, d M Y H:i:s T', strtotime($options['end_date'])));
322
- } else {
323
- header('Retry-After: ' . DAY_IN_SECONDS);
324
- }
325
-
326
- $themes = self::get_themes();
327
- if (!empty($_GET['theme']) && substr($_GET['theme'], 5) != '_pro_' && !empty($themes[$_GET['theme']])) {
328
- $theme = $_GET['theme'];
329
- } else {
330
- $theme = $options['theme'];
331
- }
332
-
333
- libxml_use_internal_errors(true);
334
- $doc = new DOMDocument();
335
- $doc->loadHTML('<?xml encoding="UTF-8">' . ob_get_clean());
336
- $selector = new DOMXPath($doc);
337
-
338
- if($options['notificationx_notification'] == 'all'){
339
- $nx_query = 'nx-bar-';
340
- } else if($options['notificationx_notification']>0){
341
- $nx_query = 'nx-bar-'.$options['notificationx_notification'];
342
- } else {
343
- $nx_query = false;
344
- }
345
-
346
- if($nx_query !== false){
347
- $nodes = $selector->query('//*[starts-with(@id, "'.$nx_query.'")]');
348
- $nx_bar_html = array();
349
- foreach($nodes as $node){
350
- $nx_bar_html[] = $node->ownerDocument->saveHTML($node);
351
- }
352
- echo str_replace('<!-- NXBAR -->', implode('',$nx_bar_html),self::get_template($theme));
353
- } else {
354
- echo self::get_template($theme);
355
- }
356
- exit;
357
- } else {
358
- flush();
359
- return;
360
- }
361
- }
362
-
363
 
364
  // keeping compatibility with WP < v4.4
365
  static function wp_get_server_protocol() {
@@ -388,8 +295,8 @@ class UCP {
388
  $pointers = get_option(UCP_POINTERS_KEY);
389
 
390
  // auto remove welcome pointer when options are opened
391
- if ('settings_page_ucp' == $hook) {
392
- unset($pointers['welcome'], $pointers['nx']);
393
  update_option(UCP_POINTERS_KEY, $pointers);
394
  }
395
 
@@ -418,16 +325,15 @@ class UCP {
418
  'dialog_upsell_title' => '<img alt="' . __('UnderConstructionPage PRO', 'under-construction-page') . '" title="' . __('UnderConstructionPage PRO', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/ucp_pro_logo_white.png' . '">',
419
  'mailoptin_dialog_upsell_title' => '<img alt="' . __('MailOptin', 'under-construction-page') . '" title="' . __('MailOptin', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/mailoptin-logo-white.png' . '">',
420
  'weglot_dialog_upsell_title' => '<img alt="' . __('Weglot', 'under-construction-page') . '" title="' . __('Weglot', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/weglot-logo-white.png' . '">',
421
- 'notificationx_dialog_upsell_title' => '<img alt="' . __('NotificationX', 'under-construction-page') . '" title="' . __('NotificationX', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/nx-logo.png' . '">',
422
  'mailoptin_install_url' => add_query_arg(array('action' => 'install_mailoptin'), admin_url('admin.php')),
423
  'weglot_install_url' => add_query_arg(array('action' => 'install_weglot'), admin_url('admin.php')),
424
- 'notificationx_install_url' => add_query_arg(array('action' => 'install_notificationx'), admin_url('admin.php')),
425
  'nonce_dismiss_survey' => wp_create_nonce('ucp_dismiss_survey'),
426
  'nonce_submit_survey' => wp_create_nonce('ucp_submit_survey'),
427
  'nonce_submit_support_message' => wp_create_nonce('ucp_submit_support_message'),
428
  'deactivate_confirmation' => __('Are you sure you want to deactivate UnderConstruction plugin?' . "\n" . 'If you are removing it because of a problem please contact our support. They will be more than happy to help.', 'under-construction-page'));
429
 
430
- if ('settings_page_ucp' == $hook) {
 
431
  wp_enqueue_style('wp-jquery-ui-dialog');
432
  wp_enqueue_style('ucp-select2', UCP_PLUGIN_URL . 'css/select2.min.css', array(), self::$version);
433
  wp_enqueue_style('ucp-admin', UCP_PLUGIN_URL . 'css/ucp-admin.css', array(), self::$version);
@@ -683,27 +589,13 @@ class UCP {
683
 
684
  $out .= '<link rel="icon" sizes="128x128" href="' . trailingslashit(UCP_PLUGIN_URL . 'themes/images') . 'favicon.png" />';
685
 
686
- $jquery_included = false;
687
- if(self::is_notificationx_really_setup_and_active()){
688
- if(!$jquery_included){
689
- $out .= '<script src="' . includes_url('/js/jquery/jquery.js') . '"></script>';
690
- $jquery_included = true;
691
- }
692
- $out .= '<link rel="stylesheet" href="' . NOTIFICATIONX_PUBLIC_URL . 'assets/css/notificationx-public.min.css" type="text/css">';
693
- $out .= '<script type="text/javascript" src="' . NOTIFICATIONX_PUBLIC_URL . 'assets/js/Cookies.js"></script>';
694
- $out .= '<script type="text/javascript" src="' . NOTIFICATIONX_PUBLIC_URL . 'assets/js/notificationx-public.min.js"></script>';
695
- }
696
-
697
  if (self::is_weglot_setup()) {
698
  $out .= '<link rel="stylesheet" href="' . WEGLOT_URL_DIST . '/css/front-css.css?v=' . WEGLOT_VERSION . '" type="text/css">';
699
  $out .= '<script src="' . WEGLOT_URL_DIST . '/front-js.js?v=' . WEGLOT_VERSION . '"></script>';
700
  }
701
 
702
  if (self::is_mailoptin_active()) {
703
- if(!$jquery_included){
704
- $out .= '<script src="' . includes_url('/js/jquery/jquery.js') . '"></script>';
705
- $jquery_included = true;
706
- }
707
  $out .= '<script type="text/javascript">
708
  var mailoptin_globals = {
709
  "admin_url":"' . admin_url() . '",
@@ -756,7 +648,7 @@ class UCP {
756
  } elseif ($tmp[0] < '8') {
757
  $out .= '<p id="linkback">Create a <a href="' . self::generate_web_link('show-love-2') . '" target="_blank">free under construction page for WordPress</a> like this one in under a minute.</p>';
758
  } elseif ($tmp[0] < 'c') {
759
- $out .= '<p id="linkback">Join more than 100,000 happy people using the <a href="https://wordpress.org/plugins/under-construction-page/" target="_blank">free Under Construction Page plugin for WordPress</a>.</p>';
760
  } else {
761
  $out .= '<p id="linkback">Create free <a href="' . self::generate_web_link('show-love-3') . '" target="_blank">maintenance mode pages for WordPress</a>.</p>';
762
  }
@@ -773,10 +665,6 @@ class UCP {
773
  $out .= '</div>';
774
  }
775
 
776
- if(self::is_notificationx_really_setup_and_active()){
777
- $out.='<!-- NXBAR -->';
778
- }
779
-
780
  $out = apply_filters('ucp_footer', $out, $options, $template_id);
781
 
782
  return $out;
@@ -913,7 +801,6 @@ class UCP {
913
  }
914
 
915
  // ask for rating; disabled
916
- // todo: translate strings
917
  if (false && empty($notices['dismiss_rate']) &&
918
  (time() - $meta['first_install']) > (DAY_IN_SECONDS * 1.0)) {
919
  $rate_url = 'https://wordpress.org/support/plugin/under-construction-page/reviews/?filter=5&rate=5#new-post';
@@ -951,14 +838,13 @@ class UCP {
951
  }
952
 
953
  // promo for new users
954
- // todo: translate
955
  if (self::is_plugin_page() &&
956
  empty($notices['dismiss_welcome']) &&
957
  !$shown && $promo == 'welcome') {
958
  $dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'welcome', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
959
 
960
  echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi' . $name . ',<br>';
961
- echo 'We have a <a class="open-ucp-upsell" data-pro-ad="notification-welcome-text" href="#">special time-sensitive offer</a> available only for another <b class="ucp-countdown">59min</b>! A <b>20% DISCOUNT</b> on our most popular lifetime licenses!<br>No nonsense! Pay once and use the plugin forever. <a class="open-ucp-upsell" data-pro-ad="notification-welcome-text2" href="#">Get</a> more than 50+ extra features, 100+ premium themes and 400,000+ professional images.</p>';
962
 
963
  echo '<a href="#" class="button-primary open-ucp-upsell" data-pro-ad="notification-welcome-button">Upgrade to PRO now with a SPECIAL 20% WELCOME DISCOUNT</a>';
964
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '"><small>' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</small></a>';
@@ -973,7 +859,7 @@ class UCP {
973
  $dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'olduser', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
974
 
975
  echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi' . $name . ',<br>';
976
- echo 'We have a <a class="open-ucp-upsell" data-pro-ad="notification-olduser-text" href="#">special offer</a> only for <b>users like you</b> who\'ve been using the UnderConstructionPage for a longer period of time: a <b>special DISCOUNT</b> on our most popular lifetime licenses!<br>No nonsense! Pay once and use the plugin forever.<br><a class="open-ucp-upsell" data-pro-ad="notification-olduser-text" href="#">Upgrade now</a> to <b>PRO</b> &amp; get more than 50+ extra features, 100+ premium themes and 400,000+ images.</p>';
977
 
978
  echo '<a href="#" class="button-primary open-ucp-upsell" data-pro-ad="notification-olduser-button">Upgrade to PRO now with a SPECIAL DISCOUNT</a>';
979
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '"><small>' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</small></a>';
@@ -1226,7 +1112,6 @@ class UCP {
1226
  'heading1' => __('Sorry, we\'re doing some work on the site', 'under-construction-page'),
1227
  'content' => __('Thank you for being patient. We are doing some work on the site and will be back shortly.', 'under-construction-page'),
1228
  'mailoptin_campaign' => '-1',
1229
- 'notificationx_notification' => '-1',
1230
  'social_facebook' => '',
1231
  'social_twitter' => '',
1232
  'social_google' => '',
@@ -1410,6 +1295,9 @@ class UCP {
1410
  if (is_callable(array('Swift_Performance_Cache', 'clear_all_cache'))) {
1411
  Swift_Performance_Cache::clear_all_cache();
1412
  }
 
 
 
1413
  }
1414
 
1415
  return array_merge($old_options, $options);
@@ -1628,7 +1516,6 @@ class UCP {
1628
  echo '</tr>';
1629
  } // weglot not active
1630
 
1631
- // todo: translate
1632
  echo '<tr valign="top">
1633
  <th scope="row"><label for="title">' . __('Title', 'under-construction-page') . '</label></th>
1634
  <td><input type="text" id="title" class="regular-text" name="' . UCP_OPTIONS_KEY . '[title]" value="' . esc_attr($options['title']) . '" />';
@@ -1715,55 +1602,6 @@ class UCP {
1715
  echo '</tr>';
1716
  } // mailoptin not active
1717
 
1718
- if (self::is_notificationx_really_setup_and_active()) {
1719
- $nx_args = array (
1720
- 'post_type' => array( 'notificationx' ),
1721
- 'post_status' => array( 'publish' ),
1722
- 'nopaging' => true,
1723
- 'order' => 'ASC',
1724
- );
1725
- $nx_notifications = get_posts( $nx_args );
1726
- $nx_notifications_dd = array();
1727
-
1728
- if(count($nx_notifications)>0){
1729
- foreach($nx_notifications as $nx_notification){
1730
- $nx_notifications_dd[] = array('val' => $nx_notification->ID, 'label' => strlen($nx_notification->post_title)?$nx_notification->post_title:'NotificationX '.$nx_notification->ID.' (no title)');
1731
- }
1732
- } else {
1733
- $nx_notifications_dd = false;
1734
- }
1735
-
1736
- echo '<tr id="notificationx-settings">';
1737
- echo '<th><label for="notificationx_notification">Notifications</label></th>';
1738
- echo '<td>';
1739
- if ($nx_notifications_dd) {
1740
- echo '<select name="' . UCP_OPTIONS_KEY . '[notificationx_notification]" id="notificationx_notification">';
1741
- echo '<option value="-1">none</option>';
1742
- echo self::create_select_options($nx_notifications_dd, $options['notificationx_notification']);
1743
- echo '<option value="all" '.($options['notificationx_notification'] == 'all'?'selected':'').'>Show all</option>';
1744
- echo '</select>';
1745
- } else {
1746
- echo '<p><a href="' . admin_url('post-new.php?post_type=notificationx') . '">Create your first notification</a></p>';
1747
- }
1748
- echo '<p class="description">Create, edit and manage notifications on the <a href="' . admin_url('edit.php?post_type=notificationx') . '">NotificationX page</a>.</p>';
1749
- echo '</td>';
1750
- echo '</tr>';
1751
- } else {
1752
- echo '<tr>';
1753
- echo '<th><label for="">Notification Bar</label></th>';
1754
- echo '<td>';
1755
- echo '<div class="toggle-wrapper">
1756
- <input type="checkbox" id="notificationx_support" type="checkbox" value="1" class="skip-save open-notificationx-upsell">
1757
- <label for="notificationx_support" class="toggle"><span class="toggle_handler"></span></label>
1758
- </div>';
1759
- echo '<p class="description">Add notifications to instantly engage and influence your visitors\' actions using social proof.</p>
1760
- <p class="description">To add notifications <a href="#" class="open-notificationx-upsell">install the free NotificationX plugin</a>. It seamlessly integrates with UCP and offers numerous options.</p>';
1761
- echo '</td>';
1762
- echo '</tr>';
1763
-
1764
-
1765
- } // notificationx not active
1766
-
1767
  echo '<tr>';
1768
  echo '<th><label for="content_font">Content Font</label></th>';
1769
  echo '<td><select class="skip-save open-ucp-upsell" id="content_font">';
@@ -2354,33 +2192,6 @@ class UCP {
2354
  echo '</div>';
2355
  // weglot install dialog
2356
 
2357
- // notificationx install dialog
2358
- echo '<div id="notificationx-upsell-dialog" style="display: none;" title="NotificationX"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
2359
- echo '<div style="padding: 20px; font-size: 14px;">';
2360
- echo '<ul class="ucp-list">';
2361
- echo '<li>influence your visitors’ actions using social proof notifications';
2362
- echo '<li>increase your leads, sales & engagements';
2363
- echo '<li>boost conversion rates using 4 different types of notification';
2364
- echo '<li>works out-of-the-box';
2365
- echo '<li>free plugin available from the official WordPress repository';
2366
- echo '</ul>';
2367
- echo '<p class="upsell-footer"><a class="button button-primary" id="install-notificationx">Install &amp; activate NotificationX to display notification bars</a></p>';
2368
- echo '</div>';
2369
- echo '</div>';
2370
-
2371
- if (!self::is_notificationx_really_setup_and_active()) {
2372
- echo '<div id="notificationx-popup" style="display: none;">
2373
- <div class="notificationx-popup-icon"><img alt="Notification X" src="' . UCP_PLUGIN_URL . 'images/nx-icon.png' . '"></div>
2374
- <div class="notificationx-popup-text">435 people rated <br />
2375
- <div class="notificationx-popup-title">Notification X</div>
2376
- <div class="notificationx-popup-stars"><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span></div>
2377
- </div>
2378
- <div class="notitificationx-popup-desc">Put a notification like this on your page to instantly influence your visitors</div>
2379
- <div class="notificationx-popup-close"><span title="Close" class="dashicons dashicons-no"></span></div>
2380
- </div>';
2381
- }
2382
- // notificationx install dialog
2383
-
2384
  $promo = self::is_promo_active();
2385
  if ($promo == 'welcome') {
2386
  $header = 'A <b>welcoming discount</b> has been applied to selected packages! It\'s <b>time limited</b> and available for only another <b class="ucp-countdown">59min 30sec</b>.';
@@ -2464,10 +2275,15 @@ class UCP {
2464
  <td>Monthly/Yearly Payment</td>
2465
  </tr>
2466
  <tr>
2467
- <td>100 Client &amp; Personal Sites</td>
2468
  <td>1 Personal or Client Site</td>
2469
  <td>3 Personal Sites</td>
2470
  </tr>
 
 
 
 
 
2471
  <tr>
2472
  <td>Lifetime Priority Support &amp; Updates</td>
2473
  <td>Lifetime Support &amp; Updates</td>
@@ -2484,29 +2300,34 @@ class UCP {
2484
  <td>Drag&amp;Drop Builder</td>
2485
  </tr>
2486
  <tr>
2487
- <td>200+ Templates</td>
2488
- <td>100+ Templates</td>
2489
- <td>100+ Templates</td>
2490
  </tr>
2491
  <tr>
2492
- <td>Zapier Integration + Extra Modules</td>
2493
  <td><span class="dashicons dashicons-no"></td>
2494
  <td><span class="dashicons dashicons-no"></td>
2495
  </tr>
2496
  <tr>
 
 
 
 
 
2497
  <td>
2498
  <a data-href-org="' . $products['agency']['link'] . '" class="promo-button go-to-license-key" href="' . $products['agency']['link'] . '" target="_blank">' . $products['agency']['price'] . '</a>
2499
- <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WP admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2500
  </td>
2501
  <td>
2502
  <a data-href-org="' . $products['pro-lifetime']['link'] . '" class="promo-button go-to-license-key" href="' . $products['pro-lifetime']['link'] . '" target="_blank">' . $products['pro-lifetime']['price'] . '</a>
2503
- <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WP admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2504
  </td>
2505
  <td>
2506
  <a data-href-org="' . $products['pro-yearly']['link'] . '" class="promo-button go-to-license-key" href="' . $products['pro-yearly']['link'] . '" target="_blank">' . $products['pro-yearly']['price'] . '</a>
2507
- <span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment<br><span class="dashicons dashicons-yes"></span> Instant activation from WP admin<br><span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span>
2508
  </td>
2509
  </tr>
 
 
 
2510
  </tbody>
2511
  </table>';
2512
  echo '<p class="upsell-footer">More pricing options &amp; details about packages are available on <a href="' . self::generate_web_link('pricing-table-more-info') . '" target="_blank">underconstructionpage.com</a>. Already have a PRO license? <a href="#" class="go-to-license-key">Activate it</a>.</p>';
@@ -2726,63 +2547,6 @@ class UCP {
2726
  echo '</div>';
2727
  } // install_security_ninja
2728
 
2729
- // auto download / install / activate NotificationX plugin
2730
- static function install_notificationx() {
2731
- if (false === current_user_can('administrator')) {
2732
- wp_die('Sorry, you have to be an admin to run this action.');
2733
- }
2734
-
2735
- $plugin_slug = 'notificationx/notificationx.php';
2736
- $plugin_zip = 'https://downloads.wordpress.org/plugin/notificationx.latest-stable.zip';
2737
-
2738
- @include_once ABSPATH . 'wp-admin/includes/plugin.php';
2739
- @include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
2740
- @include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
2741
- @include_once ABSPATH . 'wp-admin/includes/file.php';
2742
- @include_once ABSPATH . 'wp-admin/includes/misc.php';
2743
- echo '<style>
2744
- body{
2745
- font-family: sans-serif;
2746
- font-size: 14px;
2747
- line-height: 1.5;
2748
- color: #444;
2749
- }
2750
- </style>';
2751
-
2752
- echo '<div style="margin: 20px; color:#444;">';
2753
- echo 'If things are not done in a minute <a target="_parent" href="' . admin_url('plugin-install.php?s=notificationx&tab=search&type=term') .'">install the plugin manually via Plugins page</a><br><br>';
2754
- echo 'Starting ...<br><br>';
2755
-
2756
- wp_cache_flush();
2757
- $upgrader = new Plugin_Upgrader();
2758
- echo 'Check if NotificationX is already installed ... <br />';
2759
- if (self::is_plugin_installed($plugin_slug)) {
2760
- echo 'NotificationX is already installed! <br /><br />Making sure it\'s the latest version.<br />';
2761
- $upgrader->upgrade($plugin_slug);
2762
- $installed = true;
2763
- } else {
2764
- echo 'Installing NotificationX.<br />';
2765
- $installed = $upgrader->install($plugin_zip);
2766
- }
2767
- wp_cache_flush();
2768
-
2769
- if (!is_wp_error($installed) && $installed) {
2770
- echo 'Activating NotificationX.<br />';
2771
- $activate = activate_plugin($plugin_slug);
2772
-
2773
- if (is_null($activate)) {
2774
- echo 'NotificationX Activated.<br />';
2775
-
2776
- echo '<script>setTimeout(function() { top.location = "options-general.php?page=ucp"; }, 1000);</script>';
2777
- echo '<br>If you are not redirected in a few seconds - <a href="options-general.php?page=ucp" target="_parent">click here</a>.';
2778
- }
2779
- } else {
2780
- echo 'Could not install NotificationX. You\'ll have to <a target="_parent" href="' . admin_url('plugin-install.php?s=notificationx&tab=search&type=term') .'">download and install manually</a>.';
2781
- }
2782
-
2783
- echo '</div>';
2784
- } // install_notificationx
2785
-
2786
  static function is_plugin_installed($slug) {
2787
  if (!function_exists('get_plugins')) {
2788
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
@@ -2816,19 +2580,6 @@ class UCP {
2816
  } // is_mailoptin_active
2817
 
2818
 
2819
- // check if NotificationX plugin is active
2820
- static function is_notificationx_really_setup_and_active() {
2821
- if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {
2822
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
2823
- }
2824
-
2825
- if (is_plugin_active('notificationx/notificationx.php') && version_compare(NOTIFICATIONX_VERSION,'1.0.3','>=')) {
2826
- return true;
2827
- } else {
2828
- return false;
2829
- }
2830
- } // is_notificationx_really_setup_and_active
2831
-
2832
  // check if Weglot plugin is active and min version installed
2833
  static function is_weglot_active() {
2834
  if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {
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: WebFactory Ltd
7
+ Version: 3.65
8
  Author URI: https://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
 
68
  // if the plugin was updated from ver < 1.20 upgrade settings array
69
  self::maybe_upgrade();
70
 
 
 
71
  // add UCP menu to admin tools menu group
72
  add_action('admin_menu', array(__CLASS__, 'admin_menu'));
73
 
86
  add_action('admin_action_ucp_change_status', array(__CLASS__, 'change_status'));
87
  add_action('admin_action_ucp_reset_settings', array(__CLASS__, 'reset_settings'));
88
  add_action('admin_action_install_mailoptin', array(__CLASS__, 'install_mailoptin'));
 
89
  add_action('admin_action_install_weglot', array(__CLASS__, 'install_weglot'));
90
  add_action('admin_action_install_security_ninja', array(__CLASS__, 'install_security_ninja'));
91
 
103
  // main plugin logic
104
  add_action('wp', array(__CLASS__, 'display_construction_page'), 0, 1);
105
 
 
 
 
106
  // show under construction notice on login form
107
  add_filter('login_message', array(__CLASS__, 'login_message'));
108
 
154
  $meta = self::get_meta();
155
  $options = self::get_options();
156
 
 
 
 
 
 
 
157
  // added in v1.70 to rename roles to whitelisted_roles
158
  if (isset($options['roles'])) {
159
  $options['whitelisted_roles'] = $options['roles'];
223
  static function display_construction_page() {
224
  $options = self::get_options();
225
  $request_uri = trailingslashit(strtolower(@parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)));
226
+
227
  // just to be on the safe side
228
  if (defined('DOING_CRON') && DOING_CRON) {
229
  return false;
262
  $theme = $options['theme'];
263
  }
264
 
265
+ echo self::get_template($theme);
266
+ die();
 
 
 
 
267
  }
268
  } // display_construction_page
269
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
270
 
271
  // keeping compatibility with WP < v4.4
272
  static function wp_get_server_protocol() {
295
  $pointers = get_option(UCP_POINTERS_KEY);
296
 
297
  // auto remove welcome pointer when options are opened
298
+ if (self::is_plugin_page()) {
299
+ unset($pointers['welcome']);
300
  update_option(UCP_POINTERS_KEY, $pointers);
301
  }
302
 
325
  'dialog_upsell_title' => '<img alt="' . __('UnderConstructionPage PRO', 'under-construction-page') . '" title="' . __('UnderConstructionPage PRO', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/ucp_pro_logo_white.png' . '">',
326
  'mailoptin_dialog_upsell_title' => '<img alt="' . __('MailOptin', 'under-construction-page') . '" title="' . __('MailOptin', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/mailoptin-logo-white.png' . '">',
327
  'weglot_dialog_upsell_title' => '<img alt="' . __('Weglot', 'under-construction-page') . '" title="' . __('Weglot', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/weglot-logo-white.png' . '">',
 
328
  'mailoptin_install_url' => add_query_arg(array('action' => 'install_mailoptin'), admin_url('admin.php')),
329
  'weglot_install_url' => add_query_arg(array('action' => 'install_weglot'), admin_url('admin.php')),
 
330
  'nonce_dismiss_survey' => wp_create_nonce('ucp_dismiss_survey'),
331
  'nonce_submit_survey' => wp_create_nonce('ucp_submit_survey'),
332
  'nonce_submit_support_message' => wp_create_nonce('ucp_submit_support_message'),
333
  'deactivate_confirmation' => __('Are you sure you want to deactivate UnderConstruction plugin?' . "\n" . 'If you are removing it because of a problem please contact our support. They will be more than happy to help.', 'under-construction-page'));
334
 
335
+ if (self::is_plugin_page()) {
336
+ remove_editor_styles();
337
  wp_enqueue_style('wp-jquery-ui-dialog');
338
  wp_enqueue_style('ucp-select2', UCP_PLUGIN_URL . 'css/select2.min.css', array(), self::$version);
339
  wp_enqueue_style('ucp-admin', UCP_PLUGIN_URL . 'css/ucp-admin.css', array(), self::$version);
589
 
590
  $out .= '<link rel="icon" sizes="128x128" href="' . trailingslashit(UCP_PLUGIN_URL . 'themes/images') . 'favicon.png" />';
591
 
 
 
 
 
 
 
 
 
 
 
 
592
  if (self::is_weglot_setup()) {
593
  $out .= '<link rel="stylesheet" href="' . WEGLOT_URL_DIST . '/css/front-css.css?v=' . WEGLOT_VERSION . '" type="text/css">';
594
  $out .= '<script src="' . WEGLOT_URL_DIST . '/front-js.js?v=' . WEGLOT_VERSION . '"></script>';
595
  }
596
 
597
  if (self::is_mailoptin_active()) {
598
+ $out .= '<script src="' . includes_url('/js/jquery/jquery.js') . '"></script>';
 
 
 
599
  $out .= '<script type="text/javascript">
600
  var mailoptin_globals = {
601
  "admin_url":"' . admin_url() . '",
648
  } elseif ($tmp[0] < '8') {
649
  $out .= '<p id="linkback">Create a <a href="' . self::generate_web_link('show-love-2') . '" target="_blank">free under construction page for WordPress</a> like this one in under a minute.</p>';
650
  } elseif ($tmp[0] < 'c') {
651
+ $out .= '<p id="linkback">Join more than 400,000 happy people using the <a href="https://wordpress.org/plugins/under-construction-page/" target="_blank">free Under Construction Page plugin for WordPress</a>.</p>';
652
  } else {
653
  $out .= '<p id="linkback">Create free <a href="' . self::generate_web_link('show-love-3') . '" target="_blank">maintenance mode pages for WordPress</a>.</p>';
654
  }
665
  $out .= '</div>';
666
  }
667
 
 
 
 
 
668
  $out = apply_filters('ucp_footer', $out, $options, $template_id);
669
 
670
  return $out;
801
  }
802
 
803
  // ask for rating; disabled
 
804
  if (false && empty($notices['dismiss_rate']) &&
805
  (time() - $meta['first_install']) > (DAY_IN_SECONDS * 1.0)) {
806
  $rate_url = 'https://wordpress.org/support/plugin/under-construction-page/reviews/?filter=5&rate=5#new-post';
838
  }
839
 
840
  // promo for new users
 
841
  if (self::is_plugin_page() &&
842
  empty($notices['dismiss_welcome']) &&
843
  !$shown && $promo == 'welcome') {
844
  $dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'welcome', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
845
 
846
  echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi' . $name . ',<br>';
847
+ echo 'We have a <a class="open-ucp-upsell" data-pro-ad="notification-welcome-text" href="#">special time-sensitive offer</a> available just for another <b class="ucp-countdown">59min</b>! A <b>20% DISCOUNT</b> on our most popular lifetime licenses!<br>No nonsense! Pay once and use the plugin forever. <a class="open-ucp-upsell" data-pro-ad="notification-welcome-text2" href="#">Get</a> more than 50+ extra features, 200+ premium themes and over a million professional images.</p>';
848
 
849
  echo '<a href="#" class="button-primary open-ucp-upsell" data-pro-ad="notification-welcome-button">Upgrade to PRO now with a SPECIAL 20% WELCOME DISCOUNT</a>';
850
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '"><small>' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</small></a>';
859
  $dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'olduser', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
860
 
861
  echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi' . $name . ',<br>';
862
+ echo 'We have a <a class="open-ucp-upsell" data-pro-ad="notification-olduser-text" href="#">special offer</a> only for <b>users like you</b> who\'ve been using the UnderConstructionPage for a longer period of time: a <b>special DISCOUNT</b> on our most popular lifetime licenses!<br>No nonsense! Pay once and use the plugin forever.<br><a class="open-ucp-upsell" data-pro-ad="notification-olduser-text" href="#">Upgrade now</a> to <b>PRO</b> &amp; get more than 50+ extra features, 200+ premium themes and over a million HD images.</p>';
863
 
864
  echo '<a href="#" class="button-primary open-ucp-upsell" data-pro-ad="notification-olduser-button">Upgrade to PRO now with a SPECIAL DISCOUNT</a>';
865
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '"><small>' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</small></a>';
1112
  'heading1' => __('Sorry, we\'re doing some work on the site', 'under-construction-page'),
1113
  'content' => __('Thank you for being patient. We are doing some work on the site and will be back shortly.', 'under-construction-page'),
1114
  'mailoptin_campaign' => '-1',
 
1115
  'social_facebook' => '',
1116
  'social_twitter' => '',
1117
  'social_google' => '',
1295
  if (is_callable(array('Swift_Performance_Cache', 'clear_all_cache'))) {
1296
  Swift_Performance_Cache::clear_all_cache();
1297
  }
1298
+ if (is_callable(array('Hummingbird\WP_Hummingbird', 'flush_cache'))) {
1299
+ Hummingbird\WP_Hummingbird::flush_cache(true, false);
1300
+ }
1301
  }
1302
 
1303
  return array_merge($old_options, $options);
1516
  echo '</tr>';
1517
  } // weglot not active
1518
 
 
1519
  echo '<tr valign="top">
1520
  <th scope="row"><label for="title">' . __('Title', 'under-construction-page') . '</label></th>
1521
  <td><input type="text" id="title" class="regular-text" name="' . UCP_OPTIONS_KEY . '[title]" value="' . esc_attr($options['title']) . '" />';
1602
  echo '</tr>';
1603
  } // mailoptin not active
1604
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1605
  echo '<tr>';
1606
  echo '<th><label for="content_font">Content Font</label></th>';
1607
  echo '<td><select class="skip-save open-ucp-upsell" id="content_font">';
2192
  echo '</div>';
2193
  // weglot install dialog
2194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2195
  $promo = self::is_promo_active();
2196
  if ($promo == 'welcome') {
2197
  $header = 'A <b>welcoming discount</b> has been applied to selected packages! It\'s <b>time limited</b> and available for only another <b class="ucp-countdown">59min 30sec</b>.';
2275
  <td>Monthly/Yearly Payment</td>
2276
  </tr>
2277
  <tr>
2278
+ <td>100 Client or Personal Sites<br>(licenses are transferable between sites)</td>
2279
  <td>1 Personal or Client Site</td>
2280
  <td>3 Personal Sites</td>
2281
  </tr>
2282
+ <tr>
2283
+ <td>White-Label License Mode</td>
2284
+ <td><span class="dashicons dashicons-no"></td>
2285
+ <td><span class="dashicons dashicons-no"></td>
2286
+ </tr>
2287
  <tr>
2288
  <td>Lifetime Priority Support &amp; Updates</td>
2289
  <td>Lifetime Support &amp; Updates</td>
2300
  <td>Drag&amp;Drop Builder</td>
2301
  </tr>
2302
  <tr>
2303
+ <td>120+ PRO Templates</td>
2304
+ <td>120+ PRO Templates</td>
2305
+ <td>120+ PRO Templates</td>
2306
  </tr>
2307
  <tr>
2308
+ <td>80+ Agency Templates</td>
2309
  <td><span class="dashicons dashicons-no"></td>
2310
  <td><span class="dashicons dashicons-no"></td>
2311
  </tr>
2312
  <tr>
2313
+ <td>Zapier Integration + Extra Modules</td>
2314
+ <td><span class="dashicons dashicons-no"></td>
2315
+ <td><span class="dashicons dashicons-no"></td>
2316
+ </tr>
2317
+ <tr class="bb0">
2318
  <td>
2319
  <a data-href-org="' . $products['agency']['link'] . '" class="promo-button go-to-license-key" href="' . $products['agency']['link'] . '" target="_blank">' . $products['agency']['price'] . '</a>
 
2320
  </td>
2321
  <td>
2322
  <a data-href-org="' . $products['pro-lifetime']['link'] . '" class="promo-button go-to-license-key" href="' . $products['pro-lifetime']['link'] . '" target="_blank">' . $products['pro-lifetime']['price'] . '</a>
 
2323
  </td>
2324
  <td>
2325
  <a data-href-org="' . $products['pro-yearly']['link'] . '" class="promo-button go-to-license-key" href="' . $products['pro-yearly']['link'] . '" target="_blank">' . $products['pro-yearly']['price'] . '</a>
 
2326
  </td>
2327
  </tr>
2328
+ <tr class="bb0">
2329
+ <td colspan="3"><span class="instant-download"><span class="dashicons dashicons-yes"></span> Secure payment <span class="dashicons dashicons-yes"></span> Instant activation from WP admin <span class="dashicons dashicons-yes"></span> 100% No-Risk Money Back Guarantee</span></td>
2330
+ </tr>
2331
  </tbody>
2332
  </table>';
2333
  echo '<p class="upsell-footer">More pricing options &amp; details about packages are available on <a href="' . self::generate_web_link('pricing-table-more-info') . '" target="_blank">underconstructionpage.com</a>. Already have a PRO license? <a href="#" class="go-to-license-key">Activate it</a>.</p>';
2547
  echo '</div>';
2548
  } // install_security_ninja
2549
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2550
  static function is_plugin_installed($slug) {
2551
  if (!function_exists('get_plugins')) {
2552
  require_once ABSPATH . 'wp-admin/includes/plugin.php';
2580
  } // is_mailoptin_active
2581
 
2582
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2583
  // check if Weglot plugin is active and min version installed
2584
  static function is_weglot_active() {
2585
  if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {