Version Description
- 2018/11/12
- few bug fixes
- integration with MailOptin - collect leads & emails with in-content forms and popups
- we're at 1,820,000 downloads
Download this release
Release Info
| Developer | WebFactory |
| Plugin | |
| Version | 3.20 |
| Comparing to | |
| See all releases | |
Code changes from version 3.15 to 3.20
- css/ucp-admin.css +59 -2
- images/mailoptin-logo-white.png +0 -0
- js/ucp-admin.js +48 -1
- js/ucp-jquery-plugins.js +4 -4
- readme.txt +12 -3
- under-construction.php +191 -15
css/ucp-admin.css
CHANGED
|
@@ -26,6 +26,14 @@
|
|
| 26 |
display: none;
|
| 27 |
}
|
| 28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
.settings_page_ucp .button:hover,
|
| 30 |
.settings_page_ucp .button-primary:hover,
|
| 31 |
.settings_page_ucp .button-secondary:hover,
|
|
@@ -375,9 +383,7 @@ span.select2-container .select2-search--inline .select2-search__field {
|
|
| 375 |
.question-wrapper .dashicons.big {
|
| 376 |
color: rgba(0, 0, 0, 1);
|
| 377 |
display: inline;
|
| 378 |
-
height: 61px;
|
| 379 |
font-size: 61px;
|
| 380 |
-
margin-bottom: 10px;
|
| 381 |
}
|
| 382 |
|
| 383 |
.question-wrapper img {
|
|
@@ -858,3 +864,54 @@ option.ucp-promo {
|
|
| 858 |
color: #e14d43;
|
| 859 |
}
|
| 860 |
/* upsell dialog */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
display: none;
|
| 27 |
}
|
| 28 |
|
| 29 |
+
.ucp-notice-small {
|
| 30 |
+
border-left: 4px solid #00a0d2;
|
| 31 |
+
margin: 5px 0 15px;
|
| 32 |
+
padding: 1px 12px;
|
| 33 |
+
background-color: #fafafa;
|
| 34 |
+
display: inline-block;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
.settings_page_ucp .button:hover,
|
| 38 |
.settings_page_ucp .button-primary:hover,
|
| 39 |
.settings_page_ucp .button-secondary:hover,
|
| 383 |
.question-wrapper .dashicons.big {
|
| 384 |
color: rgba(0, 0, 0, 1);
|
| 385 |
display: inline;
|
|
|
|
| 386 |
font-size: 61px;
|
|
|
|
| 387 |
}
|
| 388 |
|
| 389 |
.question-wrapper img {
|
| 864 |
color: #e14d43;
|
| 865 |
}
|
| 866 |
/* upsell dialog */
|
| 867 |
+
|
| 868 |
+
|
| 869 |
+
/* mailoptin upsell dialog */
|
| 870 |
+
.mailoptin-upsell-dialog .ui-dialog-titlebar {
|
| 871 |
+
background: #2980b9;
|
| 872 |
+
text-align: center;
|
| 873 |
+
height: 55px;
|
| 874 |
+
}
|
| 875 |
+
.mailoptin-upsell-dialog .ui-dialog-titlebar img {
|
| 876 |
+
height: 32px;
|
| 877 |
+
display: inline-block;
|
| 878 |
+
margin: 11px 0 0 0;
|
| 879 |
+
}
|
| 880 |
+
.mailoptin-upsell-dialog .ui-dialog-titlebar-close {
|
| 881 |
+
color: #fff;
|
| 882 |
+
height: 55px;
|
| 883 |
+
}
|
| 884 |
+
.mailoptin-upsell-dialog .ui-dialog-titlebar-close:hover {
|
| 885 |
+
color: #333;
|
| 886 |
+
}
|
| 887 |
+
.mailoptin-upsell-dialog .ui-dialog-content {
|
| 888 |
+
padding: 0;
|
| 889 |
+
}
|
| 890 |
+
.mailoptin-upsell-dialog .ui-tabs-nav {
|
| 891 |
+
text-align: center;
|
| 892 |
+
}
|
| 893 |
+
.mailoptin-upsell-dialog .ui-tabs .upsell-tab {
|
| 894 |
+
padding: 20px 15px;
|
| 895 |
+
text-align: center;
|
| 896 |
+
}
|
| 897 |
+
.mailoptin-upsell-dialog a {
|
| 898 |
+
color: #333;
|
| 899 |
+
}
|
| 900 |
+
.mailoptin-upsell-dialog a:hover {
|
| 901 |
+
color: #000;
|
| 902 |
+
}
|
| 903 |
+
option.mailoptin-promo {
|
| 904 |
+
color: #2980b9;
|
| 905 |
+
}
|
| 906 |
+
.mailoptin-pro-feature {
|
| 907 |
+
display: inline-block;
|
| 908 |
+
width: 32%;
|
| 909 |
+
background: rgba(128, 128, 128, 0.03);
|
| 910 |
+
margin: 0 5px 20px 5px;
|
| 911 |
+
padding: 10px;
|
| 912 |
+
box-sizing: border-box;
|
| 913 |
+
vertical-align: top;
|
| 914 |
+
position: relative;
|
| 915 |
+
border-top: 1px solid #2980b9;
|
| 916 |
+
}
|
| 917 |
+
/* upsell dialog */
|
images/mailoptin-logo-white.png
ADDED
|
Binary file
|
js/ucp-admin.js
CHANGED
|
@@ -262,6 +262,7 @@ jQuery(document).ready(function($) {
|
|
| 262 |
|
| 263 |
// helper for linking anchors in different tabs
|
| 264 |
$('.settings_page_ucp').on('click', '.change_tab', function(e) {
|
|
|
|
| 265 |
$('#ucp_tabs').tabs('option', 'active', $(this).data('tab'));
|
| 266 |
|
| 267 |
// get the link anchor and scroll to it
|
|
@@ -269,6 +270,8 @@ jQuery(document).ready(function($) {
|
|
| 269 |
if (target) {
|
| 270 |
$.scrollTo('#' + target, 500, {offset: {top:-50, left:0}});
|
| 271 |
}
|
|
|
|
|
|
|
| 272 |
});
|
| 273 |
|
| 274 |
|
|
@@ -276,7 +279,7 @@ jQuery(document).ready(function($) {
|
|
| 276 |
$('#upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog ucp-upsell-dialog',
|
| 277 |
'modal': 1,
|
| 278 |
'resizable': false,
|
| 279 |
-
'title': '
|
| 280 |
'zIndex': 9999,
|
| 281 |
'width': 900,
|
| 282 |
'height': 'auto',
|
|
@@ -294,6 +297,38 @@ jQuery(document).ready(function($) {
|
|
| 294 |
$('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
|
| 295 |
});
|
| 296 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
// zebra on pricing table, per column
|
| 298 |
$('#ucp-pricing-table').find('tr').each(function() {
|
| 299 |
$(this).find('td').eq(1).addClass('hover');
|
|
@@ -346,6 +381,18 @@ jQuery(document).ready(function($) {
|
|
| 346 |
return false;
|
| 347 |
});
|
| 348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 349 |
$('#tabs_upsell').on('tabsactivate', function(event, ui) {
|
| 350 |
$('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
|
| 351 |
});
|
| 262 |
|
| 263 |
// helper for linking anchors in different tabs
|
| 264 |
$('.settings_page_ucp').on('click', '.change_tab', function(e) {
|
| 265 |
+
e.preventDefault();
|
| 266 |
$('#ucp_tabs').tabs('option', 'active', $(this).data('tab'));
|
| 267 |
|
| 268 |
// get the link anchor and scroll to it
|
| 270 |
if (target) {
|
| 271 |
$.scrollTo('#' + target, 500, {offset: {top:-50, left:0}});
|
| 272 |
}
|
| 273 |
+
|
| 274 |
+
return false;
|
| 275 |
});
|
| 276 |
|
| 277 |
|
| 279 |
$('#upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog ucp-upsell-dialog',
|
| 280 |
'modal': 1,
|
| 281 |
'resizable': false,
|
| 282 |
+
'title': 'UCP Upsell',
|
| 283 |
'zIndex': 9999,
|
| 284 |
'width': 900,
|
| 285 |
'height': 'auto',
|
| 297 |
$('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
|
| 298 |
});
|
| 299 |
|
| 300 |
+
// upsell dialog init
|
| 301 |
+
$('#mailoptin-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog mailoptin-upsell-dialog',
|
| 302 |
+
'modal': 1,
|
| 303 |
+
'resizable': false,
|
| 304 |
+
'title': 'Start Collecting Leads and Subscribers',
|
| 305 |
+
'zIndex': 9999,
|
| 306 |
+
'width': 550,
|
| 307 |
+
'height': 'auto',
|
| 308 |
+
'show': 'fade',
|
| 309 |
+
'hide': 'fade',
|
| 310 |
+
'open': function(event, ui) {
|
| 311 |
+
ucp_fix_dialog_close(event, ui);
|
| 312 |
+
$(this).siblings().find('span.ui-dialog-title').html(ucp.mailoptin_dialog_upsell_title);
|
| 313 |
+
},
|
| 314 |
+
'close': function(event, ui) { },
|
| 315 |
+
'autoOpen': false,
|
| 316 |
+
'closeOnEscape': true
|
| 317 |
+
});
|
| 318 |
+
$(window).resize(function(e) {
|
| 319 |
+
$('#mailoptin-upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
|
| 320 |
+
});
|
| 321 |
+
|
| 322 |
+
|
| 323 |
+
jQuery('#install-mailoptin').on('click',function(e){
|
| 324 |
+
$('#mailoptin-upsell-dialog').dialog('close');
|
| 325 |
+
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.mailoptin_install_url + '" style="width:100%;height:100%;border:none;" /></div>');
|
| 326 |
+
jQuery('#wpwrap').css('pointer-events', 'none');
|
| 327 |
+
e.preventDefault();
|
| 328 |
+
return false;
|
| 329 |
+
});
|
| 330 |
+
|
| 331 |
+
|
| 332 |
// zebra on pricing table, per column
|
| 333 |
$('#ucp-pricing-table').find('tr').each(function() {
|
| 334 |
$(this).find('td').eq(1).addClass('hover');
|
| 381 |
return false;
|
| 382 |
});
|
| 383 |
|
| 384 |
+
|
| 385 |
+
$('.settings_page_ucp').on('click', '.open-mailoptin-upsell', function(e) {
|
| 386 |
+
e.preventDefault();
|
| 387 |
+
|
| 388 |
+
$(this).blur();
|
| 389 |
+
|
| 390 |
+
$('#mailoptin-upsell-dialog').dialog('open');
|
| 391 |
+
|
| 392 |
+
return false;
|
| 393 |
+
});
|
| 394 |
+
|
| 395 |
+
|
| 396 |
$('#tabs_upsell').on('tabsactivate', function(event, ui) {
|
| 397 |
$('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
|
| 398 |
});
|
js/ucp-jquery-plugins.js
CHANGED
|
@@ -5,12 +5,12 @@
|
|
| 5 |
*/
|
| 6 |
|
| 7 |
/**
|
| 8 |
-
* Copyright (c) 2007
|
| 9 |
-
*
|
| 10 |
* @author Ariel Flesler
|
| 11 |
-
* @version 1.
|
| 12 |
*/
|
| 13 |
-
;(function(
|
| 14 |
|
| 15 |
|
| 16 |
/*! js-cookie v2.1.3 | MIT */
|
| 5 |
*/
|
| 6 |
|
| 7 |
/**
|
| 8 |
+
* Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
|
| 9 |
+
* Licensed under MIT
|
| 10 |
* @author Ariel Flesler
|
| 11 |
+
* @version 2.1.2
|
| 12 |
*/
|
| 13 |
+
;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
|
| 14 |
|
| 15 |
|
| 16 |
/*! js-cookie v2.1.3 | MIT */
|
readme.txt
CHANGED
|
@@ -3,8 +3,8 @@ Contributors: WebFactory, UnderConstructionPage, googlemapswidget, securityninja
|
|
| 3 |
Tags: maintenance mode, maintenance page, coming soon page, landing page, under construction, under construction page, coming soon, launch page, coming soon mode, maintenance mode page, offline page, maintenance
|
| 4 |
Requires at least: 4.0
|
| 5 |
Requires PHP: 5.2
|
| 6 |
-
Tested up to:
|
| 7 |
-
Stable tag: 3.
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
|
@@ -21,6 +21,8 @@ Create an Under Construction Page, Maintenance Mode Page, Coming Soon Page or a
|
|
| 21 |
|
| 22 |
A simple, no-nonsense plugin for all those situations when you have to hide the site behind an Under Construction page for a while. Live examples are available on the <a href="https://underconstructionpage.com/?utm_source=wordpressorg&utm_medium=content&utm_campaign=readme&utm_content=website" rel="friend">Under Construction website</a>. Give us a shout on Twitter <a href="http://twitter.com/WebFactoryLtd">@WebFactoryLtd</a> or check out the <a href="https://youtu.be/fqqWrQENSDc">video</a>.
|
| 23 |
|
|
|
|
|
|
|
| 24 |
|
| 25 |
**Options**
|
| 26 |
|
|
@@ -33,6 +35,7 @@ A simple, no-nonsense plugin for all those situations when you have to hide the
|
|
| 33 |
* Description - page description, for SEO
|
| 34 |
* Headline - main headline/title
|
| 35 |
* Content - anything you need to display, from styled text to images
|
|
|
|
| 36 |
* Login Button - show a discrete link to the login form, or WP admin if you're logged in
|
| 37 |
* Social icons/links - new ones are added with every update; let us know if we missed your favorite ones
|
| 38 |
* Facebook
|
|
@@ -131,6 +134,12 @@ Or if needed, upload manually;
|
|
| 131 |
|
| 132 |
== Changelog ==
|
| 133 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 134 |
= 3.15 =
|
| 135 |
* 2018/08/22
|
| 136 |
* minor bug fixes
|
|
@@ -467,4 +476,4 @@ Open your site and force refresh browser cache (Ctrl or Shift + F5). If that doe
|
|
| 467 |
|
| 468 |
= Is UCP compatible with caching plugins? =
|
| 469 |
|
| 470 |
-
UCP is compatible with all caching plugins. However, please note that we automatically empty cache when UCP status is changed only for the following plugins: W3 Total Cache, WP Super Cache, Endurance Page Cache, SiteGround SuperCacher and WP Fastest Cache.
|
| 3 |
Tags: maintenance mode, maintenance page, coming soon page, landing page, under construction, under construction page, coming soon, launch page, coming soon mode, maintenance mode page, offline page, maintenance
|
| 4 |
Requires at least: 4.0
|
| 5 |
Requires PHP: 5.2
|
| 6 |
+
Tested up to: 5.0
|
| 7 |
+
Stable tag: 3.20
|
| 8 |
License: GPLv2 or later
|
| 9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
| 10 |
|
| 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 |
|
| 27 |
**Options**
|
| 28 |
|
| 35 |
* Description - page description, for SEO
|
| 36 |
* Headline - main headline/title
|
| 37 |
* Content - anything you need to display, from styled text to images
|
| 38 |
+
* Optin box, optin popup - collect leads and emails and sync with MailChimp and other autoresponders
|
| 39 |
* Login Button - show a discrete link to the login form, or WP admin if you're logged in
|
| 40 |
* Social icons/links - new ones are added with every update; let us know if we missed your favorite ones
|
| 41 |
* Facebook
|
| 134 |
|
| 135 |
== Changelog ==
|
| 136 |
|
| 137 |
+
= 3.20 =
|
| 138 |
+
* 2018/11/12
|
| 139 |
+
* few bug fixes
|
| 140 |
+
* integration with MailOptin - collect leads & emails with in-content forms and popups
|
| 141 |
+
* we're at 1,820,000 downloads
|
| 142 |
+
|
| 143 |
= 3.15 =
|
| 144 |
* 2018/08/22
|
| 145 |
* minor bug fixes
|
| 476 |
|
| 477 |
= Is UCP compatible with caching plugins? =
|
| 478 |
|
| 479 |
+
UCP is compatible with all caching plugins. However, please note that we automatically empty cache when UCP status is changed only for the following plugins: W3 Total Cache, WP Super Cache, Endurance Page Cache, SiteGround SuperCacher and WP Fastest Cache.
|
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 |
Domain Path: lang
|
|
@@ -25,7 +25,6 @@
|
|
| 25 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
| 26 |
*/
|
| 27 |
|
| 28 |
-
|
| 29 |
// this is an include only WP file
|
| 30 |
if (!defined('ABSPATH')) {
|
| 31 |
die;
|
|
@@ -87,6 +86,7 @@ class UCP {
|
|
| 87 |
add_action('admin_action_ucp_dismiss_notice', array(__CLASS__, 'dismiss_notice'));
|
| 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 |
|
| 91 |
// enqueue admin scripts
|
| 92 |
add_action('admin_enqueue_scripts', array(__CLASS__, 'admin_enqueue_scripts'));
|
|
@@ -325,6 +325,8 @@ class UCP {
|
|
| 325 |
'promo_countdown' => $countdown,
|
| 326 |
'is_activated' => UCP_license::is_activated(),
|
| 327 |
'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' . '">',
|
|
|
|
|
|
|
| 328 |
'nonce_dismiss_survey' => wp_create_nonce('ucp_dismiss_survey'),
|
| 329 |
'nonce_submit_survey' => wp_create_nonce('ucp_submit_survey'),
|
| 330 |
'nonce_submit_earlybird' => wp_create_nonce('ucp_submit_earlybird'),
|
|
@@ -633,6 +635,26 @@ class UCP {
|
|
| 633 |
|
| 634 |
$out .= '<link rel="shortcut icon" type="image/png" href="' . trailingslashit(UCP_PLUGIN_URL . 'themes/images') . 'favicon.png" />';
|
| 635 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 636 |
if (!empty($options['ga_tracking_id'])) {
|
| 637 |
$out .= "
|
| 638 |
<script>
|
|
@@ -715,6 +737,10 @@ class UCP {
|
|
| 715 |
require UCP_PLUGIN_DIR . 'themes/' . $template_id . '/index.php';
|
| 716 |
$template = ob_get_clean();
|
| 717 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 718 |
foreach ($vars as $var_name => $var_value) {
|
| 719 |
$var_name = '[' . $var_name . ']';
|
| 720 |
$template = str_ireplace($var_name, $var_value, $template);
|
|
@@ -852,7 +878,7 @@ class UCP {
|
|
| 852 |
echo '</p></div>';
|
| 853 |
$shown = true;
|
| 854 |
}
|
| 855 |
-
|
| 856 |
// promo for new users
|
| 857 |
// todo: translate
|
| 858 |
if (self::is_plugin_page() &&
|
|
@@ -1122,6 +1148,7 @@ class UCP {
|
|
| 1122 |
'description' => '[site-tagline]',
|
| 1123 |
'heading1' => __('Sorry, we\'re doing some work on the site', 'under-construction-page'),
|
| 1124 |
'content' => __('Thank you for being patient. We are doing some work on the site and will be back shortly.', 'under-construction-page'),
|
|
|
|
| 1125 |
'social_facebook' => '',
|
| 1126 |
'social_twitter' => '',
|
| 1127 |
'social_google' => '',
|
|
@@ -1144,7 +1171,7 @@ class UCP {
|
|
| 1144 |
'whitelisted_roles' => array('administrator'),
|
| 1145 |
'whitelisted_users' => array()
|
| 1146 |
);
|
| 1147 |
-
|
| 1148 |
$defaults_000 = array('status' => '1',
|
| 1149 |
'license_key' => '',
|
| 1150 |
'license_active' => false,
|
|
@@ -1375,7 +1402,11 @@ class UCP {
|
|
| 1375 |
$page = '/';
|
| 1376 |
}
|
| 1377 |
|
| 1378 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1379 |
|
| 1380 |
if (!empty($anchor)) {
|
| 1381 |
$anchor = '#' . trim($anchor, '#');
|
|
@@ -1457,6 +1488,7 @@ class UCP {
|
|
| 1457 |
|
| 1458 |
|
| 1459 |
static function tab_content() {
|
|
|
|
| 1460 |
$options = self::get_options();
|
| 1461 |
$default_options = self::default_options();
|
| 1462 |
|
|
@@ -1497,6 +1529,50 @@ class UCP {
|
|
| 1497 |
echo '<p class="description">All HTML elements are allowed. Shortcodes are not parsed except <a href="#title">UC theme ones</a>. Default: ' . $default_options['content'] . '</p>';
|
| 1498 |
echo '</td></tr>';
|
| 1499 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1500 |
echo '<tr>';
|
| 1501 |
echo '<th><label for="content_font">Content Font</label></th>';
|
| 1502 |
echo '<td><select class="skip-save open-ucp-upsell" id="content_font">';
|
|
@@ -1517,16 +1593,6 @@ class UCP {
|
|
| 1517 |
echo '<p class="description">Enable if you have a 3rd party shortcode you\'d like to use on the under construction page. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="external_shortcodes">PRO feature</a>.</p>';
|
| 1518 |
echo '</td></tr>';
|
| 1519 |
|
| 1520 |
-
echo '<tr valign="top">
|
| 1521 |
-
<th scope="row"><label for="mailchimp">' . __('Collect Emails via MailChimp', 'under-construction-page') . '</label></th>
|
| 1522 |
-
<td>';
|
| 1523 |
-
echo '<div class="toggle-wrapper">
|
| 1524 |
-
<input type="checkbox" id="mailchimp" type="checkbox" value="1" class="skip-save open-ucp-upsell">
|
| 1525 |
-
<label for="mailchimp" class="toggle"><span class="toggle_handler"></span></label>
|
| 1526 |
-
</div>';
|
| 1527 |
-
echo '<p class="description">Enable if you want to collect user emails on the under construction page by using MailChimp. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="mailchimp">PRO feature</a>.</p>';
|
| 1528 |
-
echo '</td></tr>';
|
| 1529 |
-
|
| 1530 |
echo '<tr valign="top" id="login_button_wrap">
|
| 1531 |
<th scope="row"><label for="login_button">' . __('Login Button', 'under-construction-page') . '</label></th>
|
| 1532 |
<td>';
|
|
@@ -1730,6 +1796,14 @@ class UCP {
|
|
| 1730 |
$img_path = UCP_PLUGIN_URL . 'images/thumbnails/';
|
| 1731 |
$themes = self::get_themes();
|
| 1732 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1733 |
echo '<table class="form-table">';
|
| 1734 |
echo '<tr valign="top">
|
| 1735 |
<td colspan="2"><b style="margin-bottom: 10px; display: inline-block;">' . __('Theme', 'under-construction-page') . '</b> (<a target="_blank" href="' . self::generate_web_link('themes-browse-premium', 'templates') . '">browse 100+ premium themes</a>)<br>';
|
|
@@ -2063,6 +2137,21 @@ class UCP {
|
|
| 2063 |
echo '</form>'; // ucp_tabs
|
| 2064 |
echo '</div>'; // wrap
|
| 2065 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2066 |
$promo = self::is_promo_active();
|
| 2067 |
if ($promo == 'welcome') {
|
| 2068 |
$header = 'A <b>welcoming discount</b> has been applied to all packages! It\'s <b>time limited</b> and available for only another <b class="ucp-countdown">59min 30sec</b>.';
|
|
@@ -2284,6 +2373,93 @@ class UCP {
|
|
| 2284 |
} // reset_pointers
|
| 2285 |
|
| 2286 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2287 |
// reset pointers on activation
|
| 2288 |
static function activate() {
|
| 2289 |
self::reset_pointers();
|
| 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.20
|
| 8 |
Author URI: https://www.webfactoryltd.com/
|
| 9 |
Text Domain: under-construction-page
|
| 10 |
Domain Path: lang
|
| 25 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
| 26 |
*/
|
| 27 |
|
|
|
|
| 28 |
// this is an include only WP file
|
| 29 |
if (!defined('ABSPATH')) {
|
| 30 |
die;
|
| 86 |
add_action('admin_action_ucp_dismiss_notice', array(__CLASS__, 'dismiss_notice'));
|
| 87 |
add_action('admin_action_ucp_change_status', array(__CLASS__, 'change_status'));
|
| 88 |
add_action('admin_action_ucp_reset_settings', array(__CLASS__, 'reset_settings'));
|
| 89 |
+
add_action('admin_action_install_mailoptin', array(__CLASS__, 'install_mailoptin'));
|
| 90 |
|
| 91 |
// enqueue admin scripts
|
| 92 |
add_action('admin_enqueue_scripts', array(__CLASS__, 'admin_enqueue_scripts'));
|
| 325 |
'promo_countdown' => $countdown,
|
| 326 |
'is_activated' => UCP_license::is_activated(),
|
| 327 |
'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' . '">',
|
| 328 |
+
'mailoptin_dialog_upsell_title' => '<img alt="' . __('MailOptin', 'under-construction-page') . '" title="' . __('MailOptin', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/mailoptin-logo-white.png' . '">',
|
| 329 |
+
'mailoptin_install_url' => add_query_arg(array('action' => 'install_mailoptin'), 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_earlybird' => wp_create_nonce('ucp_submit_earlybird'),
|
| 635 |
|
| 636 |
$out .= '<link rel="shortcut icon" type="image/png" href="' . trailingslashit(UCP_PLUGIN_URL . 'themes/images') . 'favicon.png" />';
|
| 637 |
|
| 638 |
+
if (self::is_mailoptin_active()) {
|
| 639 |
+
$out .= '<script src="' . includes_url('/js/jquery/jquery.js') . '"></script>';
|
| 640 |
+
$out .= '<script type="text/javascript">
|
| 641 |
+
var mailoptin_globals = {
|
| 642 |
+
"admin_url":"' . admin_url() . '",
|
| 643 |
+
"public_js":"' . MAILOPTIN_ASSETS_URL . 'js/src",
|
| 644 |
+
"nonce":"' . wp_create_nonce('mailoptin-admin-nonce') . '",
|
| 645 |
+
"mailoptin_ajaxurl":"' . MailOptin\Core\AjaxHandler::get_endpoint() . '",
|
| 646 |
+
"ajaxurl":"' . admin_url('admin-ajax.php') . '",
|
| 647 |
+
"split_test_start_label":"Start Test",
|
| 648 |
+
"split_test_pause_label":"Pause Test",
|
| 649 |
+
"is_customize_preview":"false",
|
| 650 |
+
"disable_impression_tracking":"false",
|
| 651 |
+
"chosen_search_placeholder":"Type to search",
|
| 652 |
+
"js_confirm_text":"Are you sure you want to do this?",
|
| 653 |
+
"js_clear_stat_text":"Are you sure you want to do this? Clicking OK will delete all your optin analytics records."};
|
| 654 |
+
</script>';
|
| 655 |
+
$out .= '<script src="' . MAILOPTIN_ASSETS_URL . '/js/mailoptin.min.js"></script>';
|
| 656 |
+
}
|
| 657 |
+
|
| 658 |
if (!empty($options['ga_tracking_id'])) {
|
| 659 |
$out .= "
|
| 660 |
<script>
|
| 737 |
require UCP_PLUGIN_DIR . 'themes/' . $template_id . '/index.php';
|
| 738 |
$template = ob_get_clean();
|
| 739 |
|
| 740 |
+
if (self::is_mailoptin_active() && $options['mailoptin_campaign'] > 0){
|
| 741 |
+
$vars['content'] .= MailOptin\Core\Admin\Customizer\OptinForm\OptinFormFactory::build($options['mailoptin_campaign']);
|
| 742 |
+
}
|
| 743 |
+
|
| 744 |
foreach ($vars as $var_name => $var_value) {
|
| 745 |
$var_name = '[' . $var_name . ']';
|
| 746 |
$template = str_ireplace($var_name, $var_value, $template);
|
| 878 |
echo '</p></div>';
|
| 879 |
$shown = true;
|
| 880 |
}
|
| 881 |
+
|
| 882 |
// promo for new users
|
| 883 |
// todo: translate
|
| 884 |
if (self::is_plugin_page() &&
|
| 1148 |
'description' => '[site-tagline]',
|
| 1149 |
'heading1' => __('Sorry, we\'re doing some work on the site', 'under-construction-page'),
|
| 1150 |
'content' => __('Thank you for being patient. We are doing some work on the site and will be back shortly.', 'under-construction-page'),
|
| 1151 |
+
'mailoptin_campaign' => '-1',
|
| 1152 |
'social_facebook' => '',
|
| 1153 |
'social_twitter' => '',
|
| 1154 |
'social_google' => '',
|
| 1171 |
'whitelisted_roles' => array('administrator'),
|
| 1172 |
'whitelisted_users' => array()
|
| 1173 |
);
|
| 1174 |
+
|
| 1175 |
$defaults_000 = array('status' => '1',
|
| 1176 |
'license_key' => '',
|
| 1177 |
'license_active' => false,
|
| 1402 |
$page = '/';
|
| 1403 |
}
|
| 1404 |
|
| 1405 |
+
if (stripos($_SERVER['HTTP_HOST'], '000webhost') !== false) {
|
| 1406 |
+
$parts = array_merge(array('utm_source' => 'ucp-free-000webhost', 'utm_medium' => 'plugin', 'utm_content' => $placement, 'utm_campaign' => 'ucp-free-v' . self::$version), $params);
|
| 1407 |
+
} else {
|
| 1408 |
+
$parts = array_merge(array('utm_source' => 'ucp-free', 'utm_medium' => 'plugin', 'utm_content' => $placement, 'utm_campaign' => 'ucp-free-v' . self::$version), $params);
|
| 1409 |
+
}
|
| 1410 |
|
| 1411 |
if (!empty($anchor)) {
|
| 1412 |
$anchor = '#' . trim($anchor, '#');
|
| 1488 |
|
| 1489 |
|
| 1490 |
static function tab_content() {
|
| 1491 |
+
global $wpdb;
|
| 1492 |
$options = self::get_options();
|
| 1493 |
$default_options = self::default_options();
|
| 1494 |
|
| 1529 |
echo '<p class="description">All HTML elements are allowed. Shortcodes are not parsed except <a href="#title">UC theme ones</a>. Default: ' . $default_options['content'] . '</p>';
|
| 1530 |
echo '</td></tr>';
|
| 1531 |
|
| 1532 |
+
|
| 1533 |
+
if (self::is_mailoptin_active()) {
|
| 1534 |
+
$mailoptin_campaigns = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'mo_optin_campaigns');
|
| 1535 |
+
$campaigns = array();
|
| 1536 |
+
|
| 1537 |
+
if (!empty($mailoptin_campaigns)) {
|
| 1538 |
+
$campaigns[] = array('val' => -1, 'label' => 'Disable optins');
|
| 1539 |
+
foreach ($mailoptin_campaigns as $mailoptin_campaign) {
|
| 1540 |
+
if ($mailoptin_campaign->optin_type == 'lightbox') {
|
| 1541 |
+
$type = 'lightbox optin';
|
| 1542 |
+
} else {
|
| 1543 |
+
$type = 'content box optin';
|
| 1544 |
+
}
|
| 1545 |
+
$campaigns[] = array('val' => $mailoptin_campaign->id, 'label' => $mailoptin_campaign->name . ' - ' . $type);
|
| 1546 |
+
} // foreach
|
| 1547 |
+
} // if campaigns
|
| 1548 |
+
|
| 1549 |
+
echo '<tr id="mailoptin-settings">';
|
| 1550 |
+
echo '<th><label for="mailoptin_campaign">Optin Boxes & Popups</label></th>';
|
| 1551 |
+
echo '<td>';
|
| 1552 |
+
if ($campaigns) {
|
| 1553 |
+
echo '<select name="' . UCP_OPTIONS_KEY . '[mailoptin_campaign]" id="mailoptin_campaign">';
|
| 1554 |
+
echo self::create_select_options($campaigns, $options['mailoptin_campaign']);
|
| 1555 |
+
echo '</select>';
|
| 1556 |
+
} else {
|
| 1557 |
+
echo '<p><a href="' . admin_url('admin.php?page=mailoptin-optin-campaigns') . '">Create your first optin</a> to start collecting leads and subscribers</p>';
|
| 1558 |
+
}
|
| 1559 |
+
echo '<p class="description">Create, edit and manage optins on the <a href="' . admin_url('admin.php?page=mailoptin-optin-campaigns') . '">MailOptin campaigns page</a>. Lightbox optins are more prominent but some users find them annoying. Content box optins tend to generate leads of higher quality.</p>';
|
| 1560 |
+
echo '</td>';
|
| 1561 |
+
echo '</tr>';
|
| 1562 |
+
} else {
|
| 1563 |
+
echo '<tr>';
|
| 1564 |
+
echo '<th><label for="">Optin Boxes & Popups</label></th>';
|
| 1565 |
+
echo '<td>';
|
| 1566 |
+
echo '<div class="toggle-wrapper">
|
| 1567 |
+
<input type="checkbox" id="mailoptin_support" type="checkbox" value="1" class="skip-save open-mailoptin-upsell">
|
| 1568 |
+
<label for="mailoptin_support" class="toggle"><span class="toggle_handler"></span></label>
|
| 1569 |
+
</div>';
|
| 1570 |
+
echo '<p class="description">Collecting leads and subscribers is one of the most important aspect of any under construction page. ';
|
| 1571 |
+
echo 'To add optin boxes & optin popups compatible with Mailchimp and many other autoresponders <a href="#" class="open-mailoptin-upsell">install the free MailOptin plugin</a>. It seamlessly integrates with UCP, offers numerous options and will enable you to collect leads without any additional costs.</p>';
|
| 1572 |
+
echo '</td>';
|
| 1573 |
+
echo '</tr>';
|
| 1574 |
+
} // mailoptin not active
|
| 1575 |
+
|
| 1576 |
echo '<tr>';
|
| 1577 |
echo '<th><label for="content_font">Content Font</label></th>';
|
| 1578 |
echo '<td><select class="skip-save open-ucp-upsell" id="content_font">';
|
| 1593 |
echo '<p class="description">Enable if you have a 3rd party shortcode you\'d like to use on the under construction page. This is a <a href="#" class="open-ucp-upsell" data-pro-ad="external_shortcodes">PRO feature</a>.</p>';
|
| 1594 |
echo '</td></tr>';
|
| 1595 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1596 |
echo '<tr valign="top" id="login_button_wrap">
|
| 1597 |
<th scope="row"><label for="login_button">' . __('Login Button', 'under-construction-page') . '</label></th>
|
| 1598 |
<td>';
|
| 1796 |
$img_path = UCP_PLUGIN_URL . 'images/thumbnails/';
|
| 1797 |
$themes = self::get_themes();
|
| 1798 |
|
| 1799 |
+
echo '<div class="ucp-notice-small"><p>All themes come with <b>optin boxes</b> & <b>optin popups</b> that you can connect to Mailchimp and other autoresponders to collect leads & subscribers.';
|
| 1800 |
+
if (self::is_mailoptin_active()) {
|
| 1801 |
+
echo '<br>Configure them in <a href="#mailoptin-settings" class="change_tab" data-tab="2">Content - MailOptin</a> settings.';
|
| 1802 |
+
} else {
|
| 1803 |
+
echo '<br>To enable this feature <a class="open-mailoptin-upsell" href="#">install the free MailOptin plugin</a>.';
|
| 1804 |
+
}
|
| 1805 |
+
echo '</p></div>';
|
| 1806 |
+
|
| 1807 |
echo '<table class="form-table">';
|
| 1808 |
echo '<tr valign="top">
|
| 1809 |
<td colspan="2"><b style="margin-bottom: 10px; display: inline-block;">' . __('Theme', 'under-construction-page') . '</b> (<a target="_blank" href="' . self::generate_web_link('themes-browse-premium', 'templates') . '">browse 100+ premium themes</a>)<br>';
|
| 2137 |
echo '</form>'; // ucp_tabs
|
| 2138 |
echo '</div>'; // wrap
|
| 2139 |
|
| 2140 |
+
// mailoptin install dialog
|
| 2141 |
+
echo '<div id="mailoptin-upsell-dialog" style="display: none;" title="MailOptin"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
|
| 2142 |
+
echo '<div style="padding: 20px; font-size: 14px;">';
|
| 2143 |
+
echo '<ul class="ucp-list">';
|
| 2144 |
+
echo '<li>completely free plugin that integrates with UCP</li>';
|
| 2145 |
+
echo '<li>instantly start collecting leads & subscribers</li>';
|
| 2146 |
+
echo '<li>use an optin form on the bottom of UCP content</li>';
|
| 2147 |
+
echo '<li>or try a popup/lightbox optin</li>';
|
| 2148 |
+
echo '<li>easily connect with Mailchimp and other leading autoresponder services</li>';
|
| 2149 |
+
echo '<li>completely customize the look & feel of the optin form</li>';
|
| 2150 |
+
echo '</ul>';
|
| 2151 |
+
echo '<p class="upsell-footer"><a class="button button-primary" id="install-mailoptin">Install & activate MailOptin to start collecting leads</a></p>';
|
| 2152 |
+
echo '</div>';
|
| 2153 |
+
echo '</div>'; // mailoptin install dialog
|
| 2154 |
+
|
| 2155 |
$promo = self::is_promo_active();
|
| 2156 |
if ($promo == 'welcome') {
|
| 2157 |
$header = 'A <b>welcoming discount</b> has been applied to all packages! It\'s <b>time limited</b> and available for only another <b class="ucp-countdown">59min 30sec</b>.';
|
| 2373 |
} // reset_pointers
|
| 2374 |
|
| 2375 |
|
| 2376 |
+
// auto download / install / activate MailOptin plugin
|
| 2377 |
+
static function install_mailoptin() {
|
| 2378 |
+
$plugin_slug = 'mailoptin/mailoptin.php';
|
| 2379 |
+
$plugin_zip = 'https://downloads.wordpress.org/plugin/mailoptin.latest-stable.zip';
|
| 2380 |
+
|
| 2381 |
+
@include_once ABSPATH . 'wp-admin/includes/plugin.php';
|
| 2382 |
+
@include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
|
| 2383 |
+
@include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
|
| 2384 |
+
@include_once ABSPATH . 'wp-admin/includes/file.php';
|
| 2385 |
+
@include_once ABSPATH . 'wp-admin/includes/misc.php';
|
| 2386 |
+
echo '<style>
|
| 2387 |
+
body{
|
| 2388 |
+
font-family: sans-serif;
|
| 2389 |
+
font-size: 14px;
|
| 2390 |
+
line-height: 1.5;
|
| 2391 |
+
color: #444;
|
| 2392 |
+
}
|
| 2393 |
+
</style>';
|
| 2394 |
+
|
| 2395 |
+
echo '<div style="margin: 20px; color:#444;">';
|
| 2396 |
+
echo 'If things are not done in a minute <a target="_parent" href="' . admin_url('plugin-install.php?s=mailoptin&tab=search&type=term') .'">install the plugin manually via Plugins page</a><br><br>';
|
| 2397 |
+
echo 'Starting ...<br><br>';
|
| 2398 |
+
|
| 2399 |
+
wp_cache_flush();
|
| 2400 |
+
$upgrader = new Plugin_Upgrader();
|
| 2401 |
+
echo 'Check if MailOptin is already installed ... <br />';
|
| 2402 |
+
if (self::is_plugin_installed($plugin_slug)) {
|
| 2403 |
+
echo 'MailOptin is already installed! <br /><br />Making sure it\'s the latest version.<br />';
|
| 2404 |
+
$upgrader->upgrade($plugin_slug);
|
| 2405 |
+
$installed = true;
|
| 2406 |
+
} else {
|
| 2407 |
+
echo 'Installing MailOptin.<br />';
|
| 2408 |
+
$installed = $upgrader->install($plugin_zip);
|
| 2409 |
+
}
|
| 2410 |
+
wp_cache_flush();
|
| 2411 |
+
|
| 2412 |
+
if (!is_wp_error($installed) && $installed) {
|
| 2413 |
+
echo 'Activating MailOptin.<br />';
|
| 2414 |
+
$activate = activate_plugin($plugin_slug);
|
| 2415 |
+
|
| 2416 |
+
if (is_null($activate)) {
|
| 2417 |
+
echo 'MailOptin Activated.<br />';
|
| 2418 |
+
|
| 2419 |
+
echo '<script>setTimeout(function() { top.location = "options-general.php?page=ucp"; }, 1000);</script>';
|
| 2420 |
+
echo '<br>If you are not redirected in a few seconds - <a href="options-general.php?page=ucp" target="_parent">click here</a>.';
|
| 2421 |
+
}
|
| 2422 |
+
} else {
|
| 2423 |
+
echo 'Could not install MailOptin. You\'ll have to <a target="_parent" href="' . admin_url('plugin-install.php?s=mailoptin&tab=search&type=term') .'">download and install manually</a>.';
|
| 2424 |
+
}
|
| 2425 |
+
|
| 2426 |
+
echo '</div>';
|
| 2427 |
+
} // install_mailoptin
|
| 2428 |
+
|
| 2429 |
+
|
| 2430 |
+
static function is_plugin_installed($slug) {
|
| 2431 |
+
if (!function_exists('get_plugins')) {
|
| 2432 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
| 2433 |
+
}
|
| 2434 |
+
$all_plugins = get_plugins();
|
| 2435 |
+
|
| 2436 |
+
if (!empty($all_plugins[$slug])) {
|
| 2437 |
+
return true;
|
| 2438 |
+
} else {
|
| 2439 |
+
return false;
|
| 2440 |
+
}
|
| 2441 |
+
} // is_plugin_installed
|
| 2442 |
+
|
| 2443 |
+
|
| 2444 |
+
// check if MailOptin plugin is active and min version installed
|
| 2445 |
+
static function is_mailoptin_active() {
|
| 2446 |
+
if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {
|
| 2447 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
| 2448 |
+
}
|
| 2449 |
+
|
| 2450 |
+
if (is_plugin_active('mailoptin/mailoptin.php')) {
|
| 2451 |
+
$mailoptin_info = get_plugin_data(ABSPATH.'wp-content/plugins/mailoptin/mailoptin.php');
|
| 2452 |
+
if( version_compare($mailoptin_info['Version'], '1.2.10.1', '<')) {
|
| 2453 |
+
return false;
|
| 2454 |
+
} else {
|
| 2455 |
+
return true;
|
| 2456 |
+
}
|
| 2457 |
+
} else {
|
| 2458 |
+
return false;
|
| 2459 |
+
}
|
| 2460 |
+
} // is_mailoptin_active
|
| 2461 |
+
|
| 2462 |
+
|
| 2463 |
// reset pointers on activation
|
| 2464 |
static function activate() {
|
| 2465 |
self::reset_pointers();
|
