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 | Under Construction |
Version | 3.65 |
Comparing to | |
See all releases |
Code changes from version 3.60 to 3.65
- css/ucp-admin.css +12 -128
- images/nx-icon.png +0 -0
- images/nx-logo.png +0 -0
- js/ucp-admin.js +0 -66
- readme.txt +19 -15
- under-construction.php +33 -282
css/ucp-admin.css
CHANGED
@@ -29,7 +29,9 @@
|
|
29 |
display: none;
|
30 |
}
|
31 |
|
32 |
-
.settings_page_ucp input,
|
|
|
|
|
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:
|
126 |
height: auto;
|
127 |
padding: 10px;
|
128 |
-
color: #
|
129 |
-
background-color: #
|
|
|
130 |
}
|
131 |
.notice a.button-primary.open-ucp-upsell:hover {
|
132 |
-
background-color:
|
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:
|
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,
|
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.
|
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**.
|
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,
|
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"
|
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 -
|
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
|
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
|
63 |
-
* Whitelisted Users - users who see the site, instead of
|
64 |
|
65 |
-
Under Construction Page
|
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!
|
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
|
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.
|
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 |
-
|
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 |
-
|
278 |
-
|
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 (
|
392 |
-
unset($pointers['welcome']
|
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 (
|
|
|
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 |
-
|
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
|
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
|
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 ' <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> & get more than 50+ extra features,
|
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 ' <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 & 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
|
2468 |
<td>1 Personal or Client Site</td>
|
2469 |
<td>3 Personal Sites</td>
|
2470 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
2471 |
<tr>
|
2472 |
<td>Lifetime Priority Support & Updates</td>
|
2473 |
<td>Lifetime Support & Updates</td>
|
@@ -2484,29 +2300,34 @@ class UCP {
|
|
2484 |
<td>Drag&Drop Builder</td>
|
2485 |
</tr>
|
2486 |
<tr>
|
2487 |
-
<td>
|
2488 |
-
<td>
|
2489 |
-
<td>
|
2490 |
</tr>
|
2491 |
<tr>
|
2492 |
-
<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 & 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 ' <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> & 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 ' <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 & Updates</td>
|
2289 |
<td>Lifetime Support & Updates</td>
|
2300 |
<td>Drag&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 & 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')) {
|