Under Construction - Version 3.80

Version Description

  • 2020/06/17
  • more cache handling improvements
  • stripped HTML from page title and description
Download this release

Release Info

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

Code changes from version 3.75 to 3.80

css/ucp-admin.css CHANGED
@@ -1193,56 +1193,6 @@ option.ucp-promo {
1193
  }
1194
  /* upsell dialog */
1195
 
1196
- /* mailoptin upsell dialog */
1197
- .mailoptin-upsell-dialog .ui-dialog-titlebar {
1198
- background: #2980b9;
1199
- text-align: center;
1200
- height: 55px;
1201
- }
1202
- .mailoptin-upsell-dialog .ui-dialog-titlebar img {
1203
- height: 32px;
1204
- display: inline-block;
1205
- margin: 11px 0 0 0;
1206
- }
1207
- .mailoptin-upsell-dialog .ui-dialog-titlebar-close {
1208
- color: #fff;
1209
- height: 55px;
1210
- }
1211
- .mailoptin-upsell-dialog .ui-dialog-titlebar-close:hover {
1212
- color: #333;
1213
- }
1214
- .mailoptin-upsell-dialog .ui-dialog-content {
1215
- padding: 0;
1216
- }
1217
- .mailoptin-upsell-dialog .ui-tabs-nav {
1218
- text-align: center;
1219
- }
1220
- .mailoptin-upsell-dialog .ui-tabs .upsell-tab {
1221
- padding: 20px 15px;
1222
- text-align: center;
1223
- }
1224
- .mailoptin-upsell-dialog a {
1225
- color: #333;
1226
- }
1227
- .mailoptin-upsell-dialog a:hover {
1228
- color: #000;
1229
- }
1230
- option.mailoptin-promo {
1231
- color: #2980b9;
1232
- }
1233
- .mailoptin-pro-feature {
1234
- display: inline-block;
1235
- width: 32%;
1236
- background: rgba(128, 128, 128, 0.03);
1237
- margin: 0 5px 20px 5px;
1238
- padding: 10px;
1239
- box-sizing: border-box;
1240
- vertical-align: top;
1241
- position: relative;
1242
- border-top: 1px solid #2980b9;
1243
- }
1244
- /* upsell dialog */
1245
-
1246
  /* weglot upsell dialog */
1247
  .weglot-upsell-dialog .ui-dialog-titlebar {
1248
  background: linear-gradient(140deg, #335ee2 10%, #271f50 90%);
1193
  }
1194
  /* upsell dialog */
1195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1196
  /* weglot upsell dialog */
1197
  .weglot-upsell-dialog .ui-dialog-titlebar {
1198
  background: linear-gradient(140deg, #335ee2 10%, #271f50 90%);
images/thumbnails/pro/business-statistics.jpg ADDED
Binary file
images/thumbnails/pro/model-portfolio.jpg ADDED
Binary file
images/thumbnails/pro/wedding.jpg ADDED
Binary file
js/ucp-admin.js CHANGED
@@ -299,36 +299,6 @@ jQuery(document).ready(function($) {
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,
305
- 'title': 'Start Collecting Leads and Subscribers',
306
- 'zIndex': 9999,
307
- 'width': 550,
308
- 'height': 'auto',
309
- 'show': 'fade',
310
- 'hide': 'fade',
311
- 'open': function(event, ui) {
312
- ucp_fix_dialog_close(event, ui);
313
- $(this).siblings().find('span.ui-dialog-title').html(ucp.mailoptin_dialog_upsell_title);
314
- },
315
- 'close': function(event, ui) { },
316
- 'autoOpen': false,
317
- 'closeOnEscape': true
318
- });
319
- $(window).resize(function(e) {
320
- $('#mailoptin-upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
321
- });
322
-
323
-
324
- jQuery('#install-mailoptin').on('click',function(e){
325
- $('#mailoptin-upsell-dialog').dialog('close');
326
- 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>');
327
- jQuery('#wpwrap').css('pointer-events', 'none');
328
- e.preventDefault();
329
- return false;
330
- });
331
-
332
  $('#weglot-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog weglot-upsell-dialog',
333
  'modal': 1,
334
  'resizable': false,
@@ -412,17 +382,6 @@ jQuery(document).ready(function($) {
412
  return false;
413
  });
414
 
415
-
416
- $('.settings_page_ucp').on('click', '.open-mailoptin-upsell', function(e) {
417
- e.preventDefault();
418
-
419
- $(this).blur();
420
-
421
- $('#mailoptin-upsell-dialog').dialog('open');
422
-
423
- return false;
424
- });
425
-
426
  $('.settings_page_ucp').on('click', '.open-weglot-upsell', function(e) {
427
  e.preventDefault();
428
 
299
  $('#upsell-dialog').dialog("option", "position", {my: "center", at: "center", of: window});
300
  });
301
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  $('#weglot-upsell-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog weglot-upsell-dialog',
303
  'modal': 1,
304
  'resizable': false,
382
  return false;
383
  });
384
 
 
 
 
 
 
 
 
 
 
 
 
385
  $('.settings_page_ucp').on('click', '.open-weglot-upsell', function(e) {
386
  e.preventDefault();
387
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: WebFactory, UnderConstructionPage, googlemapswidget, wpreset, secu
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.4
7
- Stable tag: 3.75
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -21,10 +21,10 @@ Create an Under Construction Page, Maintenance Mode Page, Coming Soon Page or 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
 
@@ -138,6 +138,11 @@ Or if needed, upload manually;
138
 
139
  == Changelog ==
140
 
 
 
 
 
 
141
  = 3.75 =
142
  * 2020/04/15
143
  * better cache handling
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.5
7
+ Stable tag: 3.80
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
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
  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.
25
 
26
+ Let <a href="https://wordpress.org/plugins/security-ninja/">Security Ninja</a> take care of your site's security from day one! Run over 50 security tests with one click. Get a detailed report and automatically fix security issues. Download it from the <a href="https://wordpress.org/plugins/security-ninja/">official wp.org repo</a> for free.
27
+
28
 
29
  **Options**
30
 
138
 
139
  == Changelog ==
140
 
141
+ = 3.80 =
142
+ * 2020/06/17
143
+ * more cache handling improvements
144
+ * stripped HTML from page title and description
145
+
146
  = 3.75 =
147
  * 2020/04/15
148
  * better cache handling
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.75
8
  Author URI: https://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
 
@@ -85,7 +85,6 @@ class UCP {
85
  add_action('admin_action_ucp_dismiss_notice', array(__CLASS__, 'dismiss_notice'));
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
 
91
  // enqueue admin scripts
@@ -323,9 +322,7 @@ class UCP {
323
  'promo_countdown' => $countdown,
324
  'is_activated' => UCP_license::is_activated(),
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'),
@@ -594,26 +591,6 @@ class UCP {
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() . '",
602
- "public_js":"' . MAILOPTIN_ASSETS_URL . 'js/src",
603
- "nonce":"' . wp_create_nonce('mailoptin-admin-nonce') . '",
604
- "mailoptin_ajaxurl":"' . MailOptin\Core\AjaxHandler::get_endpoint() . '",
605
- "ajaxurl":"' . admin_url('admin-ajax.php') . '",
606
- "split_test_start_label":"Start Test",
607
- "split_test_pause_label":"Pause Test",
608
- "is_customize_preview":"false",
609
- "disable_impression_tracking":"false",
610
- "chosen_search_placeholder":"Type to search",
611
- "js_confirm_text":"Are you sure you want to do this?",
612
- "js_clear_stat_text":"Are you sure you want to do this? Clicking OK will delete all your optin analytics records."};
613
- </script>';
614
- $out .= '<script src="' . MAILOPTIN_ASSETS_URL . '/js/mailoptin.min.js"></script>';
615
- }
616
-
617
  if (!empty($options['ga_tracking_id'])) {
618
  $out .= "
619
  <script>
@@ -640,7 +617,6 @@ class UCP {
640
  static function generate_footer($options, $template_id) {
641
  $out = '';
642
 
643
- // todo translate
644
  if ($options['linkback'] == '1') {
645
  $tmp = md5(get_site_url());
646
  if ($tmp[0] < '4') {
@@ -650,7 +626,7 @@ class UCP {
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
  }
655
  }
656
 
@@ -696,10 +672,6 @@ class UCP {
696
  require UCP_PLUGIN_DIR . 'themes/' . $template_id . '/index.php';
697
  $template = ob_get_clean();
698
 
699
- if (self::is_mailoptin_active() && $options['mailoptin_campaign'] > 0){
700
- $vars['content'] .= MailOptin\Core\Admin\Customizer\OptinForm\OptinFormFactory::build($options['mailoptin_campaign']);
701
- }
702
-
703
  foreach ($vars as $var_name => $var_value) {
704
  $var_name = '[' . $var_name . ']';
705
  $template = str_ireplace($var_name, $var_value, $template);
@@ -1111,7 +1083,6 @@ class UCP {
1111
  'description' => '[site-tagline]',
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' => '',
@@ -1189,6 +1160,8 @@ class UCP {
1189
  case 'description':
1190
  case 'heading1':
1191
  case 'content':
 
 
1192
  case 'custom_css':
1193
  case 'social_facebook':
1194
  case 'social_twitter':
@@ -1207,7 +1180,7 @@ class UCP {
1207
  case 'social_telegram':
1208
  case 'social_whatsapp':
1209
  case 'license_key':
1210
- $options[$key] = trim($value);
1211
  break;
1212
  case 'ga_tracking_id':
1213
  $options[$key] = substr(strtoupper(trim($value)), 0, 15);
@@ -1218,6 +1191,11 @@ class UCP {
1218
  } // switch
1219
  } // foreach
1220
 
 
 
 
 
 
1221
  $options['whitelisted_roles'] = empty($options['whitelisted_roles'])? array(): $options['whitelisted_roles'];
1222
  $options['whitelisted_users'] = empty($options['whitelisted_users'])? array(): $options['whitelisted_users'];
1223
  $options = self::check_var_isset($options, array('status' => 0, 'linkback' => 0, 'login_button' => 0));
@@ -1566,49 +1544,6 @@ class UCP {
1566
  echo '<p class="description">Please help others learn about this free plugin by placing a small link in the footer. Thank you very much!</p>';
1567
  echo '</td></tr>';
1568
 
1569
- if (self::is_mailoptin_active()) {
1570
- $mailoptin_campaigns = $wpdb->get_results('SELECT * FROM ' . $wpdb->prefix . 'mo_optin_campaigns');
1571
- $campaigns = array();
1572
-
1573
- if (!empty($mailoptin_campaigns)) {
1574
- $campaigns[] = array('val' => -1, 'label' => 'Disable optins');
1575
- foreach ($mailoptin_campaigns as $mailoptin_campaign) {
1576
- if ($mailoptin_campaign->optin_type == 'lightbox') {
1577
- $type = 'lightbox optin';
1578
- } else {
1579
- $type = 'content box optin';
1580
- }
1581
- $campaigns[] = array('val' => $mailoptin_campaign->id, 'label' => $mailoptin_campaign->name . ' - ' . $type);
1582
- } // foreach
1583
- } // if campaigns
1584
-
1585
- echo '<tr id="mailoptin-settings">';
1586
- echo '<th><label for="mailoptin_campaign">Optin Boxes &amp; Popups</label></th>';
1587
- echo '<td>';
1588
- if ($campaigns) {
1589
- echo '<select name="' . UCP_OPTIONS_KEY . '[mailoptin_campaign]" id="mailoptin_campaign">';
1590
- echo self::create_select_options($campaigns, $options['mailoptin_campaign']);
1591
- echo '</select>';
1592
- } else {
1593
- echo '<p><a href="' . admin_url('admin.php?page=mailoptin-optin-campaigns') . '">Create your first optin</a> to start collecting leads and subscribers</p>';
1594
- }
1595
- 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>';
1596
- echo '</td>';
1597
- echo '</tr>';
1598
- } else {
1599
- echo '<tr>';
1600
- echo '<th><label for="">Optin Boxes &amp; Popups</label></th>';
1601
- echo '<td>';
1602
- echo '<div class="toggle-wrapper">
1603
- <input type="checkbox" id="mailoptin_support" type="checkbox" value="1" class="skip-save open-mailoptin-upsell">
1604
- <label for="mailoptin_support" class="toggle"><span class="toggle_handler"></span></label>
1605
- </div>';
1606
- echo '<p class="description">Collecting leads and subscribers is one of the most important aspect of any under construction page. ';
1607
- echo 'To add optin boxes &amp; 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>';
1608
- echo '</td>';
1609
- echo '</tr>';
1610
- } // mailoptin not active
1611
-
1612
  echo '<tr>';
1613
  echo '<th><label for="content_font">Content Font</label></th>';
1614
  echo '<td><select class="skip-save open-ucp-upsell" id="content_font">';
@@ -1762,10 +1697,11 @@ class UCP {
1762
  static function get_themes() {
1763
  $themes = array('_pro_custom' => __('Build Your Own Custom Theme', 'under-construction-page'),
1764
  'mad_designer' => __('Mad Designer', 'under-construction-page'),
1765
- '_pro_relaxing-screensaver' => __('Fireworks Video Background', 'under-construction-page'),
1766
  'plain_text' => __('Plain Text', 'under-construction-page'),
1767
  '_pro_simple-office-theme' => __('Simple Office', 'under-construction-page'),
1768
  'under_construction' => __('Under Construction', 'under-construction-page'),
 
1769
  'dark' => __('Things Went Dark', 'under-construction-page'),
1770
  '_pro_watch-company' => __('The Watch Store', 'under-construction-page'),
1771
  'forklift' => __('Forklift at Work', 'under-construction-page'),
@@ -1785,7 +1721,7 @@ class UCP {
1785
  '_pro-soothing-nature' => __('Soothing Nature', 'under-construction-page'),
1786
  'lighthouse' => __('Lighthouse', 'under-construction-page'),
1787
  'hot_air_baloon' => __('Hot Air Balloon', 'under-construction-page'),
1788
- '_pro_simple-beige' => __('Simple Beige Text', 'under-construction-page'),
1789
  'people_2' => __('People at Work #2', 'under-construction-page'),
1790
  'rocket_2' => __('Rocket Launch #2', 'under-construction-page'),
1791
  '_pro_travel-blog' => __('Travel Blog', 'under-construction-page'),
@@ -1811,7 +1747,8 @@ class UCP {
1811
  '000webhost' => __('000webhost', 'under-construction-page'),
1812
  '_pro_grayscale-city' => __('Grayscale City', 'under-construction-page'),
1813
  'work_desk' => __('Work Desk', 'under-construction-page'),
1814
- 'research' => __('Research', 'under-construction-page'));
 
1815
 
1816
  $themes = apply_filters('ucp_themes', $themes);
1817
 
@@ -1825,17 +1762,9 @@ class UCP {
1825
  $img_path = UCP_PLUGIN_URL . 'images/thumbnails/';
1826
  $themes = self::get_themes();
1827
 
1828
- echo '<div class="ucp-notice-small"><p>All themes come with <b>optin boxes</b> &amp; <b>optin popups</b> that you can connect to Mailchimp and other autoresponders to collect leads &amp; subscribers.';
1829
- if (self::is_mailoptin_active()) {
1830
- echo '<br>Configure them in <a href="#mailoptin-settings" class="change_tab" data-tab="2">Content - MailOptin</a> settings.';
1831
- } else {
1832
- echo '<br>To enable this feature <a class="open-mailoptin-upsell" href="#">install the free MailOptin plugin</a>.';
1833
- }
1834
- echo '</p></div>';
1835
-
1836
  echo '<table class="form-table">';
1837
  echo '<tr valign="top">
1838
- <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 220+ premium themes</a>)<br>';
1839
  echo '<input type="hidden" id="theme_id" name="' . UCP_OPTIONS_KEY . '[theme]" value="' . $options['theme'] . '">';
1840
 
1841
  foreach ($themes as $theme_id => $theme_name) {
@@ -1852,7 +1781,7 @@ class UCP {
1852
  echo '<a href="https://templates.underconstructionpage.com/?ucp_template_preview&template=' . $theme_id . '&utm_source=ucp-free&utm_medium=plugin&utm_content=design-preview-' . $theme_id . '&utm_campaign=ucp-free-v' . self::$version . '" class="button-secondary" target="_blank">Preview</a>';
1853
  }
1854
  echo '</div>';
1855
- echo '<div class="ribbon"><i><span class="dashicons dashicons-star-filled"></span></i></div></div>';
1856
  } else {
1857
  echo '<div class="ucp-thumb' . $class . '" data-theme-id="' . $theme_id . '"><img src="' . $img_path . $theme_id . '.png" alt="' . $theme_name . '" title="' . $theme_name . '"><span>' . $theme_name . '</span>';
1858
  echo '<div class="buttons">';
@@ -2152,22 +2081,6 @@ class UCP {
2152
  echo '</form>'; // ucp_tabs
2153
  echo '</div>'; // wrap
2154
 
2155
- // mailoptin install dialog
2156
- echo '<div id="mailoptin-upsell-dialog" style="display: none;" title="MailOptin"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
2157
- echo '<div style="padding: 20px; font-size: 14px;">';
2158
- echo '<ul class="ucp-list">';
2159
- echo '<li>completely free plugin that integrates with UCP</li>';
2160
- echo '<li>instantly start collecting leads &amp; subscribers</li>';
2161
- echo '<li>use an optin form on the bottom of UCP content</li>';
2162
- echo '<li>or try a popup/lightbox optin</li>';
2163
- echo '<li>easily connect with Mailchimp and other leading autoresponder services</li>';
2164
- echo '<li>completely customize the look &amp; feel of the optin form</li>';
2165
- echo '</ul>';
2166
- echo '<p class="upsell-footer"><a class="button button-primary" id="install-mailoptin">Install &amp; activate MailOptin to start collecting leads</a></p>';
2167
- echo '</div>';
2168
- echo '</div>';
2169
- // mailoptin install dialog
2170
-
2171
  // weglot install dialog
2172
  echo '<div id="weglot-upsell-dialog" style="display: none;" title="Weglot"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
2173
  echo '<div style="padding: 20px; font-size: 15px;">';
@@ -2268,7 +2181,7 @@ class UCP {
2268
  </tr>
2269
  <tr>
2270
  <td>100 Client or Personal Sites<br>(licenses are transferable between sites)</td>
2271
- <td>1 Personal or Client Site</td>
2272
  <td>3 Personal Sites</td>
2273
  </tr>
2274
  <tr>
@@ -2292,12 +2205,12 @@ class UCP {
2292
  <td>Drag&amp;Drop Builder</td>
2293
  </tr>
2294
  <tr>
2295
- <td>120+ PRO Templates</td>
2296
- <td>120+ PRO Templates</td>
2297
- <td>120+ PRO Templates</td>
2298
  </tr>
2299
  <tr>
2300
- <td>80+ Agency Templates</td>
2301
  <td><span class="dashicons dashicons-no"></td>
2302
  <td><span class="dashicons dashicons-no"></td>
2303
  </tr>
@@ -2366,64 +2279,6 @@ class UCP {
2366
  } // reset_pointers
2367
 
2368
 
2369
- // auto download / install / activate MailOptin plugin
2370
- static function install_mailoptin() {
2371
- if (false === current_user_can('administrator')) {
2372
- wp_die('Sorry, you have to be an admin to run this action.');
2373
- }
2374
-
2375
- $plugin_slug = 'mailoptin/mailoptin.php';
2376
- $plugin_zip = 'https://downloads.wordpress.org/plugin/mailoptin.latest-stable.zip';
2377
-
2378
- @include_once ABSPATH . 'wp-admin/includes/plugin.php';
2379
- @include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
2380
- @include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
2381
- @include_once ABSPATH . 'wp-admin/includes/file.php';
2382
- @include_once ABSPATH . 'wp-admin/includes/misc.php';
2383
- echo '<style>
2384
- body{
2385
- font-family: sans-serif;
2386
- font-size: 14px;
2387
- line-height: 1.5;
2388
- color: #444;
2389
- }
2390
- </style>';
2391
-
2392
- echo '<div style="margin: 20px; color:#444;">';
2393
- 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>';
2394
- echo 'Starting ...<br><br>';
2395
-
2396
- wp_cache_flush();
2397
- $upgrader = new Plugin_Upgrader();
2398
- echo 'Check if MailOptin is already installed ... <br />';
2399
- if (self::is_plugin_installed($plugin_slug)) {
2400
- echo 'MailOptin is already installed! <br /><br />Making sure it\'s the latest version.<br />';
2401
- $upgrader->upgrade($plugin_slug);
2402
- $installed = true;
2403
- } else {
2404
- echo 'Installing MailOptin.<br />';
2405
- $installed = $upgrader->install($plugin_zip);
2406
- }
2407
- wp_cache_flush();
2408
-
2409
- if (!is_wp_error($installed) && $installed) {
2410
- echo 'Activating MailOptin.<br />';
2411
- $activate = activate_plugin($plugin_slug);
2412
-
2413
- if (is_null($activate)) {
2414
- echo 'MailOptin Activated.<br />';
2415
-
2416
- echo '<script>setTimeout(function() { top.location = "options-general.php?page=ucp"; }, 1000);</script>';
2417
- echo '<br>If you are not redirected in a few seconds - <a href="options-general.php?page=ucp" target="_parent">click here</a>.';
2418
- }
2419
- } else {
2420
- 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>.';
2421
- }
2422
-
2423
- echo '</div>';
2424
- } // install_mailoptin
2425
-
2426
-
2427
  // auto download / install / activate Weglot plugin
2428
  static function install_weglot() {
2429
  if (false === current_user_can('administrator')) {
@@ -2496,25 +2351,6 @@ class UCP {
2496
  } // is_plugin_installed
2497
 
2498
 
2499
- // check if MailOptin plugin is active and min version installed
2500
- static function is_mailoptin_active() {
2501
- if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {
2502
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
2503
- }
2504
-
2505
- if (is_plugin_active('mailoptin/mailoptin.php')) {
2506
- $mailoptin_info = get_plugin_data(ABSPATH . 'wp-content/plugins/mailoptin/mailoptin.php');
2507
- if( version_compare($mailoptin_info['Version'], '1.2.10.1', '<')) {
2508
- return false;
2509
- } else {
2510
- return true;
2511
- }
2512
- } else {
2513
- return false;
2514
- }
2515
- } // is_mailoptin_active
2516
-
2517
-
2518
  // check if Weglot plugin is active and min version installed
2519
  static function is_weglot_active() {
2520
  if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {
@@ -2604,14 +2440,9 @@ class UCP {
2604
  remove_filter('plugins_api_result', array(__CLASS__, 'plugins_api_result'), 10, 3);
2605
 
2606
  $res = self::add_plugin_favs('eps-301-redirects', $res);
2607
- $res = self::add_plugin_favs('wp-force-ssl', $res);
2608
- $res = self::add_plugin_favs('wp-external-links', $res);
2609
  $res = self::add_plugin_favs('security-ninja', $res);
2610
 
2611
- if (!empty($_GET['tab']) && $_GET['tab'] == 'featured') {
2612
- $res = self::add_plugin_favs('mailoptin', $res);
2613
- }
2614
-
2615
  return $res;
2616
  } // plugins_api_result
2617
 
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.80
8
  Author URI: https://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
 
85
  add_action('admin_action_ucp_dismiss_notice', array(__CLASS__, 'dismiss_notice'));
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_weglot', array(__CLASS__, 'install_weglot'));
89
 
90
  // enqueue admin scripts
322
  'promo_countdown' => $countdown,
323
  'is_activated' => UCP_license::is_activated(),
324
  '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' . '">',
 
325
  'weglot_dialog_upsell_title' => '<img alt="' . __('Weglot', 'under-construction-page') . '" title="' . __('Weglot', 'under-construction-page') . '" src="' . UCP_PLUGIN_URL . 'images/weglot-logo-white.png' . '">',
 
326
  'weglot_install_url' => add_query_arg(array('action' => 'install_weglot'), admin_url('admin.php')),
327
  'nonce_dismiss_survey' => wp_create_nonce('ucp_dismiss_survey'),
328
  'nonce_submit_survey' => wp_create_nonce('ucp_submit_survey'),
591
  $out .= '<script src="' . WEGLOT_URL_DIST . '/front-js.js?v=' . WEGLOT_VERSION . '"></script>';
592
  }
593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
594
  if (!empty($options['ga_tracking_id'])) {
595
  $out .= "
596
  <script>
617
  static function generate_footer($options, $template_id) {
618
  $out = '';
619
 
 
620
  if ($options['linkback'] == '1') {
621
  $tmp = md5(get_site_url());
622
  if ($tmp[0] < '4') {
626
  } elseif ($tmp[0] < 'c') {
627
  $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>';
628
  } else {
629
+ $out .= '<p id="linkback">Create free <a href="' . self::generate_web_link('show-love-3') . '" target="_blank">under construction pages for WordPress</a>.</p>';
630
  }
631
  }
632
 
672
  require UCP_PLUGIN_DIR . 'themes/' . $template_id . '/index.php';
673
  $template = ob_get_clean();
674
 
 
 
 
 
675
  foreach ($vars as $var_name => $var_value) {
676
  $var_name = '[' . $var_name . ']';
677
  $template = str_ireplace($var_name, $var_value, $template);
1083
  'description' => '[site-tagline]',
1084
  'heading1' => __('Sorry, we\'re doing some work on the site', 'under-construction-page'),
1085
  'content' => __('Thank you for being patient. We are doing some work on the site and will be back shortly.', 'under-construction-page'),
 
1086
  'social_facebook' => '',
1087
  'social_twitter' => '',
1088
  'social_google' => '',
1160
  case 'description':
1161
  case 'heading1':
1162
  case 'content':
1163
+ $options[$key] = trim($value);
1164
+ break;
1165
  case 'custom_css':
1166
  case 'social_facebook':
1167
  case 'social_twitter':
1180
  case 'social_telegram':
1181
  case 'social_whatsapp':
1182
  case 'license_key':
1183
+ $options[$key] = trim(strip_tags($value));
1184
  break;
1185
  case 'ga_tracking_id':
1186
  $options[$key] = substr(strtoupper(trim($value)), 0, 15);
1191
  } // switch
1192
  } // foreach
1193
 
1194
+ $options['title'] = strip_tags($options['title']);
1195
+ $options['description'] = strip_tags($options['description']);
1196
+ $options['heading1'] = strip_tags($options['heading1'], '<br><a><b><strong><i><em><p><del><img>');
1197
+ $options['content'] = strip_tags($options['content'], '<br><a><b><strong><i><em><p><del><img><ul><ol><li><blockquote><ins><code><hr><h2><h3><h4><span><div><iframe>');
1198
+
1199
  $options['whitelisted_roles'] = empty($options['whitelisted_roles'])? array(): $options['whitelisted_roles'];
1200
  $options['whitelisted_users'] = empty($options['whitelisted_users'])? array(): $options['whitelisted_users'];
1201
  $options = self::check_var_isset($options, array('status' => 0, 'linkback' => 0, 'login_button' => 0));
1544
  echo '<p class="description">Please help others learn about this free plugin by placing a small link in the footer. Thank you very much!</p>';
1545
  echo '</td></tr>';
1546
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1547
  echo '<tr>';
1548
  echo '<th><label for="content_font">Content Font</label></th>';
1549
  echo '<td><select class="skip-save open-ucp-upsell" id="content_font">';
1697
  static function get_themes() {
1698
  $themes = array('_pro_custom' => __('Build Your Own Custom Theme', 'under-construction-page'),
1699
  'mad_designer' => __('Mad Designer', 'under-construction-page'),
1700
+ '_pro_simple-beige' => __('Simple Beige Text', 'under-construction-page'),
1701
  'plain_text' => __('Plain Text', 'under-construction-page'),
1702
  '_pro_simple-office-theme' => __('Simple Office', 'under-construction-page'),
1703
  'under_construction' => __('Under Construction', 'under-construction-page'),
1704
+ '_pro_model-portfolio' => __('Model Portfolio', 'under-construction-page'),
1705
  'dark' => __('Things Went Dark', 'under-construction-page'),
1706
  '_pro_watch-company' => __('The Watch Store', 'under-construction-page'),
1707
  'forklift' => __('Forklift at Work', 'under-construction-page'),
1721
  '_pro-soothing-nature' => __('Soothing Nature', 'under-construction-page'),
1722
  'lighthouse' => __('Lighthouse', 'under-construction-page'),
1723
  'hot_air_baloon' => __('Hot Air Balloon', 'under-construction-page'),
1724
+ '_pro_business-statistics' => __('Business Statistics', 'under-construction-page'),
1725
  'people_2' => __('People at Work #2', 'under-construction-page'),
1726
  'rocket_2' => __('Rocket Launch #2', 'under-construction-page'),
1727
  '_pro_travel-blog' => __('Travel Blog', 'under-construction-page'),
1747
  '000webhost' => __('000webhost', 'under-construction-page'),
1748
  '_pro_grayscale-city' => __('Grayscale City', 'under-construction-page'),
1749
  'work_desk' => __('Work Desk', 'under-construction-page'),
1750
+ 'research' => __('Research', 'under-construction-page'),
1751
+ '_pro_wedding' => __('Wedding', 'under-construction-page'));
1752
 
1753
  $themes = apply_filters('ucp_themes', $themes);
1754
 
1762
  $img_path = UCP_PLUGIN_URL . 'images/thumbnails/';
1763
  $themes = self::get_themes();
1764
 
 
 
 
 
 
 
 
 
1765
  echo '<table class="form-table">';
1766
  echo '<tr valign="top">
1767
+ <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 230+ premium themes</a>)<br>';
1768
  echo '<input type="hidden" id="theme_id" name="' . UCP_OPTIONS_KEY . '[theme]" value="' . $options['theme'] . '">';
1769
 
1770
  foreach ($themes as $theme_id => $theme_name) {
1781
  echo '<a href="https://templates.underconstructionpage.com/?ucp_template_preview&template=' . $theme_id . '&utm_source=ucp-free&utm_medium=plugin&utm_content=design-preview-' . $theme_id . '&utm_campaign=ucp-free-v' . self::$version . '" class="button-secondary" target="_blank">Preview</a>';
1782
  }
1783
  echo '</div>';
1784
+ echo '<div title="PRO template" class="ribbon"><i><span class="dashicons dashicons-star-filled"></span></i></div></div>';
1785
  } else {
1786
  echo '<div class="ucp-thumb' . $class . '" data-theme-id="' . $theme_id . '"><img src="' . $img_path . $theme_id . '.png" alt="' . $theme_name . '" title="' . $theme_name . '"><span>' . $theme_name . '</span>';
1787
  echo '<div class="buttons">';
2081
  echo '</form>'; // ucp_tabs
2082
  echo '</div>'; // wrap
2083
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2084
  // weglot install dialog
2085
  echo '<div id="weglot-upsell-dialog" style="display: none;" title="Weglot"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
2086
  echo '<div style="padding: 20px; font-size: 15px;">';
2181
  </tr>
2182
  <tr>
2183
  <td>100 Client or Personal Sites<br>(licenses are transferable between sites)</td>
2184
+ <td>3 Personal or Client Sites</td>
2185
  <td>3 Personal Sites</td>
2186
  </tr>
2187
  <tr>
2205
  <td>Drag&amp;Drop Builder</td>
2206
  </tr>
2207
  <tr>
2208
+ <td>130+ PRO Templates</td>
2209
+ <td>130+ PRO Templates</td>
2210
+ <td>130+ PRO Templates</td>
2211
  </tr>
2212
  <tr>
2213
+ <td>90+ Agency Templates</td>
2214
  <td><span class="dashicons dashicons-no"></td>
2215
  <td><span class="dashicons dashicons-no"></td>
2216
  </tr>
2279
  } // reset_pointers
2280
 
2281
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2282
  // auto download / install / activate Weglot plugin
2283
  static function install_weglot() {
2284
  if (false === current_user_can('administrator')) {
2351
  } // is_plugin_installed
2352
 
2353
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2354
  // check if Weglot plugin is active and min version installed
2355
  static function is_weglot_active() {
2356
  if (!function_exists('is_plugin_active') || !function_exists('get_plugin_data')) {
2440
  remove_filter('plugins_api_result', array(__CLASS__, 'plugins_api_result'), 10, 3);
2441
 
2442
  $res = self::add_plugin_favs('eps-301-redirects', $res);
2443
+ $res = self::add_plugin_favs('simple-author-box', $res);
 
2444
  $res = self::add_plugin_favs('security-ninja', $res);
2445
 
 
 
 
 
2446
  return $res;
2447
  } // plugins_api_result
2448