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 | Under Construction |
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();
|