Under Construction - Version 3.0

Version Description

  • 2018/04/23
  • added VK icon - a Russian social network
  • new theme - Temporarily Closed
  • added discount for old users
Download this release

Release Info

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

Code changes from version 2.95 to 3.0

images/thumbnails/closed.png ADDED
Binary file
images/thumbnails/pro/animated-green.jpg ADDED
Binary file
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: maintenance mode, maintenance page, coming soon page, landing page, under
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
- Stable tag: 2.95
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -51,6 +51,7 @@ A simple, no-nonsense plugin for all those situations when you have to hide the
51
  * Telegram
52
  * WhatsApp
53
  * Tumblr
 
54
  * Whitelisted User Roles - user roles who see the site, instead of maintenance page
55
  * Whitelisted Users - users who see the site, instead of maintenance page
56
 
@@ -59,6 +60,7 @@ UCP has a built-in support system. It requires no registration or any kind of me
59
 
60
  **What are others saying about the Under Construction Page plugin**
61
 
 
62
  * John Fraskos from <a href="https://codestag.com/setting-wordpress-theme-easily-create-construction-page/">Codestag</a> says it's "very friendly and easy to use"
63
  * <a href="http://wppluginsify.com/interface-elements/professional-construction-page/">WP Pluginsify</a> wrote a review
64
  * <a href="https://www.wpmayor.com/set-construction-page-wordpress/">WP Major</a> wrote a review too
@@ -117,15 +119,22 @@ Or if needed, upload manually;
117
  28. Bulldozer theme
118
  29. Christmas theme
119
  30. Hard Worker theme
120
- 31. Main settings
121
- 32. Design settings
122
- 33. Content settings
123
- 34. Access settings
124
- 35. Support
 
125
 
126
 
127
  == Changelog ==
128
 
 
 
 
 
 
 
129
  = 2.95 =
130
  * 2018/03/26
131
  * we reached 200k active installations on March 23rd & 1,115,000 downloads
4
  Requires at least: 4.0
5
  Requires PHP: 5.2
6
  Tested up to: 4.9
7
+ Stable tag: 3.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
51
  * Telegram
52
  * WhatsApp
53
  * Tumblr
54
+ * VK
55
  * Whitelisted User Roles - user roles who see the site, instead of maintenance page
56
  * Whitelisted Users - users who see the site, instead of maintenance page
57
 
60
 
61
  **What are others saying about the Under Construction Page plugin**
62
 
63
+ * <a href="https://www.webhostingsecretrevealed.net/blog/blogging-tips/how-to-grow-your-blog-before-it-is-born/">WHSR</a> wrote an in-depth guide on how to "Grow Your Blog Before It Is Born" featuring UCP
64
  * John Fraskos from <a href="https://codestag.com/setting-wordpress-theme-easily-create-construction-page/">Codestag</a> says it's "very friendly and easy to use"
65
  * <a href="http://wppluginsify.com/interface-elements/professional-construction-page/">WP Pluginsify</a> wrote a review
66
  * <a href="https://www.wpmayor.com/set-construction-page-wordpress/">WP Major</a> wrote a review too
119
  28. Bulldozer theme
120
  29. Christmas theme
121
  30. Hard Worker theme
122
+ 31. Temporarily Closed theme
123
+ 32. Main settings
124
+ 33. Design settings
125
+ 34. Content settings
126
+ 35. Access settings
127
+ 36. Support
128
 
129
 
130
  == Changelog ==
131
 
132
+ = 3.0 =
133
+ * 2018/04/23
134
+ * added VK icon - a Russian social network
135
+ * new theme - Temporarily Closed
136
+ * added discount for old users
137
+
138
  = 2.95 =
139
  * 2018/03/26
140
  * we reached 200k active installations on March 23rd & 1,115,000 downloads
themes/closed/closed.png ADDED
Binary file
themes/closed/index.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * UnderConstructionPage
4
+ * Temporarily Closed theme
5
+ * (c) WebFactory Ltd, 2015 - 2018
6
+ */
7
+
8
+
9
+ // this is an include only WP file
10
+ if (!defined('ABSPATH')) {
11
+ die;
12
+ }
13
+ ?>
14
+ <!DOCTYPE html>
15
+ <html lang="en">
16
+ <head>
17
+ <meta charset="utf-8">
18
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
19
+ <meta name="viewport" content="width=device-width, initial-scale=1">
20
+ <title>[title]</title>
21
+ <meta name="description" content="[description]" />
22
+ <meta name="generator" content="[generator]">
23
+ <link href="https://fonts.googleapis.com/css?family=Fredoka+One" rel="stylesheet">
24
+ [head]
25
+ </head>
26
+
27
+ <body>
28
+ <div id="hero-image">
29
+ <img src="[theme-url]closed.png" alt="Site is Temporarily Closed for Construction" title="Site is Temporarily Closed for Construction">
30
+ </div>
31
+ <div class="container">
32
+
33
+ <div class="row">
34
+ <div class="col-xs-12 col-md-12 col-lg-12">
35
+ <h1>[heading1]</h1>
36
+ </div>
37
+ </div>
38
+
39
+ <div class="row">
40
+ <div class="col-xs-12 col-md-8 col-md-offset-2 col-lg-offset-2 col-lg-8">
41
+ <p class="content">[content]</p>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="row" id="social">
46
+ <div class="col-xs-12 col-md-12 col-lg-12">
47
+ [social-icons]
48
+ </div>
49
+ </div>
50
+
51
+ </div>
52
+ [footer]
53
+ </body>
54
+ </html>
themes/closed/style.css ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * UnderConstructionPage
3
+ * Temporarily Closed theme CSS
4
+ * (c) WebFactory Ltd, 2015 - 2018
5
+ */
6
+
7
+
8
+ html {
9
+ height: 100%;
10
+ padding: 0;
11
+ margin: 0;
12
+ }
13
+
14
+ body {
15
+ font-weight: 400;
16
+ font-size: 16px;
17
+ line-height: 150%;
18
+ color: #3d2850;
19
+ background: #f2f2f2;
20
+ background: -webkit-linear-gradient(to left, #f2f2f2, #f6f6f6);
21
+ background: linear-gradient(to left, #f2f2f2, #f6f6f6);
22
+ padding: 0;
23
+ margin: 0;
24
+ background-repeat: no-repeat;
25
+ background-attachment: fixed;
26
+ }
27
+
28
+ #hero-image {
29
+ text-align: center;
30
+ margin: 20px auto 10px auto;
31
+ }
32
+
33
+ #hero-image img {
34
+ max-width: 80%;
35
+ }
36
+
37
+ h1 {
38
+ font-size: 34px;
39
+ color: #3d2850;
40
+ font-family: "Fredoka One", sans-serif;
41
+ font-weight: 600;
42
+ margin: 20px 0 30px 0;
43
+ text-align: center;
44
+ letter-spacing: 1px;
45
+ }
46
+
47
+ .content {
48
+ text-align: center;
49
+ font-family: "Helvetica", "Arial", sans-serif;
50
+ }
51
+
52
+ #social {
53
+ text-align: center;
54
+ margin-top: 30px;
55
+ }
56
+
57
+ #social a i {
58
+ color: #23272a;
59
+ margin: 10px;
60
+ box-sizing: content-box;
61
+ }
62
+
63
+ #social a:hover i {
64
+ color: #ee9825;
65
+ }
66
+
67
+ @media(max-width:767px){
68
+ h1 {
69
+ font-size: 30px;
70
+ margin: 10px 0 30px 0;
71
+ font-weight: 500;
72
+ }
73
+ #hero-image img {
74
+ max-width: 95%;
75
+ }
76
+ }
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: Web factory Ltd
7
- Version: 2.95
8
  Author URI: http://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
  Domain Path: lang
@@ -599,6 +599,9 @@ class UCP {
599
  if (!empty($options['social_tumblr'])) {
600
  $out .= '<a title="Tumblr" href="' . $options['social_tumblr'] . '" target="_blank"><i class="fa fa-tumblr-square fa-3x"></i></a>';
601
  }
 
 
 
602
  if (!empty($options['social_skype'])) {
603
  $out .= '<a title="Skype" href="skype:' . $options['social_skype'] . '?chat"><i class="fa fa-skype fa-3x"></i></a>';
604
  }
@@ -791,6 +794,8 @@ class UCP {
791
  $options = self::get_options();
792
  $meta = self::get_meta();
793
  $current_user = wp_get_current_user();
 
 
794
 
795
  $name = '';
796
  if (!empty($current_user->user_firstname)) {
@@ -805,6 +810,7 @@ class UCP {
805
  echo '<p class="center">Thank you for purchasing UnderConstructionPage PRO! <b>Your license has been verified and activated.</b></p><p>Please <b>click the button below</b> to update plugin files to PRO version.</p>';
806
  echo '<p><a href="' . esc_url($update_url) . '" class="button button-primary">Update UnderConstructionPage files to PRO</a></p>';
807
  echo '</div>';
 
808
 
809
  return;
810
  }
@@ -823,11 +829,13 @@ class UCP {
823
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '">' . __('I\'ve already rated the plugin', 'under-construction-page') . '</a>';
824
  echo '<br><br><b>' . __('Thank you very much! The UCP team', 'under-construction-page') . '</b>';
825
  echo '</p></div>';
 
826
  }
827
 
828
  // end date in past
829
  if (self::is_plugin_page() && self::is_construction_mode_enabled(true) && !empty($options['end_date']) && $options['end_date'] != '0000-00-00 00:00' && $options['end_date'] < current_time('mysql')) {
830
  echo '<div id="ucp_end_date_notice" class="notice-error notice"><p>Under construction mode is enabled but the <a href="#end_date" class="change_tab" data-tab="0">end date</a> is set to a past date so the <b>under construction page will not be shown</b>. Either move the <a href="#end_date" class="change_tab" data-tab="0">end date</a> to a future date or disable it.</p></div>';
 
831
  }
832
 
833
  // ask for translation
@@ -843,6 +851,22 @@ class UCP {
843
  echo '<br><a target="_blank" href="' . esc_url($translate_url) . '" style="vertical-align: baseline; margin-top: 15px;" class="button-primary">' . __('Translate UCP into your language &amp; get a PRO license for free', 'under-construction-page') . '</a>';
844
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '">' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</a>';
845
  echo '</p></div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
846
  }
847
  } // notices
848
 
@@ -868,6 +892,10 @@ class UCP {
868
  $notices['dismiss_whitelisted'] = true;
869
  }
870
 
 
 
 
 
871
  update_option(UCP_NOTICES_KEY, $notices);
872
 
873
  if (!empty($_GET['redirect'])) {
@@ -1090,6 +1118,7 @@ class UCP {
1090
  'social_behance' => '',
1091
  'social_instagram' => '',
1092
  'social_tumblr' => '',
 
1093
  'social_email' => '',
1094
  'social_phone' => '',
1095
  'social_skype' => '',
@@ -1127,6 +1156,7 @@ class UCP {
1127
  case 'social_behance':
1128
  case 'social_instagram':
1129
  case 'social_tumblr':
 
1130
  case 'social_email':
1131
  case 'social_phone':
1132
  case 'social_telegram':
@@ -1460,67 +1490,67 @@ class UCP {
1460
  echo '<tr valign="top">
1461
  <th scope="row"><label for="social_facebook">' . __('Facebook Page', 'under-construction-page') . '</label></th>
1462
  <td><input id="social_facebook" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_facebook]" value="' . esc_attr($options['social_facebook']) . '" placeholder="' . __('Facebook business or personal page URL', 'under-construction-page') . '">';
1463
- echo '<p class="description">' . __('Complete URL, with http prefix, to Facebook page.', 'under-construction-page') . '</p>';
1464
  echo '</td></tr>';
1465
 
1466
  echo '<tr valign="top">
1467
  <th scope="row"><label for="social_twitter">' . __('Twitter Profile', 'under-construction-page') . '</label></th>
1468
  <td><input id="social_twitter" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_twitter]" value="' . esc_attr($options['social_twitter']) . '" placeholder="' . __('Twitter profile URL', 'under-construction-page') . '">';
1469
- echo '<p class="description">' . __('Complete URL, with http prefix, to Twitter profile page.', 'under-construction-page') . '</p>';
1470
  echo '</td></tr>';
1471
 
1472
  echo '<tr valign="top">
1473
  <th scope="row"><label for="social_google">' . __('Google Page', 'under-construction-page') . '</label></th>
1474
  <td><input id="social_google" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_google]" value="' . esc_attr($options['social_google']) . '" placeholder="' . __('Google+ page URL', 'under-construction-page') . '">';
1475
- echo '<p class="description">' . __('Complete URL, with http prefix, to Google+ page.', 'under-construction-page') . '</p>';
1476
  echo '</td></tr>';
1477
 
1478
  echo '<tr valign="top">
1479
  <th scope="row"><label for="social_linkedin">' . __('LinkedIn Profile', 'under-construction-page') . '</label></th>
1480
  <td><input id="social_linkedin" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_linkedin]" value="' . esc_attr($options['social_linkedin']) . '" placeholder="' . __('LinkedIn profile page URL', 'under-construction-page') . '">';
1481
- echo '<p class="description">' . __('Complete URL, with http prefix, to LinkedIn profile page.', 'under-construction-page') . '</p>';
1482
  echo '</td></tr>';
1483
 
1484
  echo '<tr valign="top">
1485
  <th scope="row"><label for="social_youtube">' . __('YouTube Profile Page or Video', 'under-construction-page') . '</label></th>
1486
  <td><input id="social_youtube" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_youtube]" value="' . esc_attr($options['social_youtube']) . '" placeholder="' . __('YouTube page or video URL', 'under-construction-page') . '">';
1487
- echo '<p class="description">' . __('Complete URL, with http prefix, to YouTube page or video.', 'under-construction-page') . '</p>';
1488
  echo '</td></tr>';
1489
 
1490
  echo '<tr valign="top" class="hidden">
1491
  <th scope="row"><label for="social_vimeo">' . __('Vimeo Profile Page or Video', 'under-construction-page') . '</label></th>
1492
  <td><input id="social_vimeo" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_vimeo]" value="' . esc_attr($options['social_vimeo']) . '" placeholder="' . __('Vimeo page or video URL', 'under-construction-page') . '">';
1493
- echo '<p class="description">' . __('Complete URL, with http prefix, to Vimeo page or video.', 'under-construction-page') . '</p>';
1494
  echo '</td></tr>';
1495
 
1496
  echo '<tr valign="top" class="hidden">
1497
  <th scope="row"><label for="social_pinterest">' . __('Pinterest Profile', 'under-construction-page') . '</label></th>
1498
  <td><input id="social_pinterest" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_pinterest]" value="' . esc_attr($options['social_pinterest']) . '" placeholder="' . __('Pinterest profile URL', 'under-construction-page') . '">';
1499
- echo '<p class="description">' . __('Complete URL, with http prefix, to Pinterest profile.', 'under-construction-page') . '</p>';
1500
  echo '</td></tr>';
1501
 
1502
  echo '<tr valign="top" class="hidden">
1503
  <th scope="row"><label for="social_dribbble">' . __('Dribbble Profile', 'under-construction-page') . '</label></th>
1504
  <td><input id="social_dribbble" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_dribbble]" value="' . esc_attr($options['social_dribbble']) . '" placeholder="' . __('Dribbble profile URL', 'under-construction-page') . '">';
1505
- echo '<p class="description">' . __('Complete URL, with http prefix, to Dribbble profile.', 'under-construction-page') . '</p>';
1506
  echo '</td></tr>';
1507
 
1508
  echo '<tr valign="top" class="hidden">
1509
  <th scope="row"><label for="social_behance">' . __('Behance Profile', 'under-construction-page') . '</label></th>
1510
  <td><input id="social_behance" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_behance]" value="' . esc_attr($options['social_behance']) . '" placeholder="' . __('Behance profile URL', 'under-construction-page') . '">';
1511
- echo '<p class="description">' . __('Complete URL, with http prefix, to Behance profile.', 'under-construction-page') . '</p>';
1512
  echo '</td></tr>';
1513
 
1514
  echo '<tr valign="top" class="hidden">
1515
  <th scope="row"><label for="social_instagram">' . __('Instagram Profile', 'under-construction-page') . '</label></th>
1516
  <td><input id="social_instagram" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_instagram]" value="' . esc_attr($options['social_instagram']) . '" placeholder="' . __('Instagram profile URL', 'under-construction-page') . '">';
1517
- echo '<p class="description">' . __('Complete URL, with http prefix, to Instagram profile.', 'under-construction-page') . '</p>';
1518
  echo '</td></tr>';
1519
 
1520
  echo '<tr valign="top" class="hidden">
1521
- <th scope="row"><label for="social_tumblr">' . __('Tumblr Blog', 'under-construction-page') . '</label></th>
1522
- <td><input id="social_tumblr" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_tumblr]" value="' . esc_attr($options['social_tumblr']) . '" placeholder="' . __('Tumblr blog URL', 'under-construction-page') . '">';
1523
- echo '<p class="description">' . __('Complete URL, with http prefix, to Tumblr blog.', 'under-construction-page') . '</p>';
1524
  echo '</td></tr>';
1525
 
1526
  echo '<tr valign="top" class="hidden">
@@ -1606,7 +1636,9 @@ class UCP {
1606
  'bulldozer' => __('Bulldozer at Work', 'under-construction-page'),
1607
  'christmas' => __('Christmas Greetings', 'under-construction-page'),
1608
  '_pro_pink-lips' => __('Pink Lips', 'under-construction-page'),
1609
- 'hard_worker' => __('Hard Worker', 'under-construction-page'));
 
 
1610
 
1611
  $themes = apply_filters('ucp_themes', $themes);
1612
 
@@ -1777,6 +1809,8 @@ class UCP {
1777
  echo '<p><b>I have disabled UCP but the under construction page is still visible. How do I remove it?</b><br>Open your site and force refresh browser cache (Ctrl or Shift + F5). If that doesn\'t help it means you have a caching plugin installed. Purge/delete cache in that plugin or disable it. If that fails too contact your hosting provider and ask to empty the site cache for you.</p>';
1778
 
1779
  echo '<p><b>I have disabled UCP but the site\'s favicon is still the UCP logo. How do I change/remove it?</b><br>Make sure your theme has a favicon defined and empty all caches - browser and server ones. Open the site and force refresh browser cache (Ctrl or Shift + F5). If that doesn\'t help it means you have a caching plugin installed. Purge/delete cache in that plugin or disable it. If that fails too contact your hosting provider and ask to empty the site cache for you.</p>';
 
 
1780
  echo '</div>'; // faq
1781
 
1782
  echo '<div style="display: none;" id="tab_support_contact" class="ucp-tab-content">';
@@ -1846,6 +1880,8 @@ class UCP {
1846
  echo '<div id="ucp-earlybird"><span>Build <b>landing pages, coming soon pages, maintenance &amp; under construction pages</b> faster &amp; easier!</span>';
1847
  if (self::is_promo_active() == 'welcome') {
1848
  echo '<p class="textcenter"><a data-pro-ad="get_pro" href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now with a LIMITED <b>welcoming discount</b>! Offer is valid for only <b class="ucp-countdown">59min 33sec</b>.</a></p>';
 
 
1849
  } else {
1850
  echo '<p class="textcenter"><a data-pro-ad="get_pro" href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now!</a></p>';
1851
  }
@@ -1956,6 +1992,11 @@ class UCP {
1956
  $products['agency'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime-welcome', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>$51 OFF</u><br><del>$250</del> $199<br><small>Discount ends in <b class="ucp-countdown">59min 30sec</b></small>');
1957
  $products['pro-lifetime'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-lifetime-welcome', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>20% OFF</u><br><del>$69</del> $55<br><small>Discount ends in <b class="ucp-countdown">59min 30sec</b></small>');
1958
  $products['pro-yearly'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-yearly-welcome', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>20% OFF</u><br><del>$39</del> $31<small>/year</small><br><small>Discount ends in <b class="ucp-countdown">59min 30sec</b></small>');
 
 
 
 
 
1959
  } else {
1960
  $header = '';
1961
  $products['agency'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW<br>$250');
@@ -2089,6 +2130,10 @@ class UCP {
2089
  return 'welcome';
2090
  }
2091
 
 
 
 
 
2092
  return false;
2093
  } // is_promo_active
2094
 
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: Web factory Ltd
7
+ Version: 3.0
8
  Author URI: http://www.webfactoryltd.com/
9
  Text Domain: under-construction-page
10
  Domain Path: lang
599
  if (!empty($options['social_tumblr'])) {
600
  $out .= '<a title="Tumblr" href="' . $options['social_tumblr'] . '" target="_blank"><i class="fa fa-tumblr-square fa-3x"></i></a>';
601
  }
602
+ if (!empty($options['social_vk'])) {
603
+ $out .= '<a title="VK" href="' . $options['social_vk'] . '" target="_blank"><i class="fa fa-vk fa-3x"></i></a>';
604
+ }
605
  if (!empty($options['social_skype'])) {
606
  $out .= '<a title="Skype" href="skype:' . $options['social_skype'] . '?chat"><i class="fa fa-skype fa-3x"></i></a>';
607
  }
794
  $options = self::get_options();
795
  $meta = self::get_meta();
796
  $current_user = wp_get_current_user();
797
+ $shown = false;
798
+ $promo = self::is_promo_active();
799
 
800
  $name = '';
801
  if (!empty($current_user->user_firstname)) {
810
  echo '<p class="center">Thank you for purchasing UnderConstructionPage PRO! <b>Your license has been verified and activated.</b></p><p>Please <b>click the button below</b> to update plugin files to PRO version.</p>';
811
  echo '<p><a href="' . esc_url($update_url) . '" class="button button-primary">Update UnderConstructionPage files to PRO</a></p>';
812
  echo '</div>';
813
+ $shown = true;
814
 
815
  return;
816
  }
829
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '">' . __('I\'ve already rated the plugin', 'under-construction-page') . '</a>';
830
  echo '<br><br><b>' . __('Thank you very much! The UCP team', 'under-construction-page') . '</b>';
831
  echo '</p></div>';
832
+ $shown = true;
833
  }
834
 
835
  // end date in past
836
  if (self::is_plugin_page() && self::is_construction_mode_enabled(true) && !empty($options['end_date']) && $options['end_date'] != '0000-00-00 00:00' && $options['end_date'] < current_time('mysql')) {
837
  echo '<div id="ucp_end_date_notice" class="notice-error notice"><p>Under construction mode is enabled but the <a href="#end_date" class="change_tab" data-tab="0">end date</a> is set to a past date so the <b>under construction page will not be shown</b>. Either move the <a href="#end_date" class="change_tab" data-tab="0">end date</a> to a future date or disable it.</p></div>';
838
+ $shown = true;
839
  }
840
 
841
  // ask for translation
851
  echo '<br><a target="_blank" href="' . esc_url($translate_url) . '" style="vertical-align: baseline; margin-top: 15px;" class="button-primary">' . __('Translate UCP into your language &amp; get a PRO license for free', 'under-construction-page') . '</a>';
852
  echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '">' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</a>';
853
  echo '</p></div>';
854
+ $shown = true;
855
+ }
856
+
857
+ // promo for old users
858
+ if (self::is_plugin_page() &&
859
+ empty($notices['dismiss_olduser']) &&
860
+ !$shown && $promo == 'olduser') {
861
+ $dismiss_url = add_query_arg(array('action' => 'ucp_dismiss_notice', 'notice' => 'olduser', 'redirect' => urlencode($_SERVER['REQUEST_URI'])), admin_url('admin.php'));
862
+
863
+ echo '<div id="ucp_rate_notice" class="notice-info notice"><p>Hi' . $name . ',<br>';
864
+ echo 'We have a <a class="open-ucp-upsell" data-pro-ad="notification-olduser-text" href="#">special offer</a> only for <b>users like you</b> who\'ve been using the UnderConstructionPage for a long period of time: a <b>special DISCOUNT</b> on our most popular lifetime licenses!<br>No nonsense! Pay once and use the plugin forever.<br><a class="open-ucp-upsell" data-pro-ad="notification-olduser-text" href="#">Upgrade now</a> to <b>PRO</b> &amp; get more than 50 extra features, premium themes and 400,000+ images.</p>';
865
+
866
+ echo '<a href="#" style="vertical-align: baseline; margin-top: 15px;" class="button-primary open-ucp-upsell" data-pro-ad="notification-olduser-button">Upgrade to <b>PRO</b> now with a <b>SPECIAL DISCOUNT</b></a>';
867
+ echo '&nbsp;&nbsp;&nbsp;&nbsp;<a href="' . esc_url($dismiss_url) . '"><small>' . __('I\'m not interested (remove this notice)', 'under-construction-page') . '</small></a>';
868
+ echo '</p></div>';
869
+ $shown = true;
870
  }
871
  } // notices
872
 
892
  $notices['dismiss_whitelisted'] = true;
893
  }
894
 
895
+ if ($_GET['notice'] == 'olduser') {
896
+ $notices['dismiss_olduser'] = true;
897
+ }
898
+
899
  update_option(UCP_NOTICES_KEY, $notices);
900
 
901
  if (!empty($_GET['redirect'])) {
1118
  'social_behance' => '',
1119
  'social_instagram' => '',
1120
  'social_tumblr' => '',
1121
+ 'social_vk' => '',
1122
  'social_email' => '',
1123
  'social_phone' => '',
1124
  'social_skype' => '',
1156
  case 'social_behance':
1157
  case 'social_instagram':
1158
  case 'social_tumblr':
1159
+ case 'social_vk':
1160
  case 'social_email':
1161
  case 'social_phone':
1162
  case 'social_telegram':
1490
  echo '<tr valign="top">
1491
  <th scope="row"><label for="social_facebook">' . __('Facebook Page', 'under-construction-page') . '</label></th>
1492
  <td><input id="social_facebook" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_facebook]" value="' . esc_attr($options['social_facebook']) . '" placeholder="' . __('Facebook business or personal page URL', 'under-construction-page') . '">';
1493
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Facebook page.', 'under-construction-page') . '</p>';
1494
  echo '</td></tr>';
1495
 
1496
  echo '<tr valign="top">
1497
  <th scope="row"><label for="social_twitter">' . __('Twitter Profile', 'under-construction-page') . '</label></th>
1498
  <td><input id="social_twitter" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_twitter]" value="' . esc_attr($options['social_twitter']) . '" placeholder="' . __('Twitter profile URL', 'under-construction-page') . '">';
1499
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Twitter profile page.', 'under-construction-page') . '</p>';
1500
  echo '</td></tr>';
1501
 
1502
  echo '<tr valign="top">
1503
  <th scope="row"><label for="social_google">' . __('Google Page', 'under-construction-page') . '</label></th>
1504
  <td><input id="social_google" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_google]" value="' . esc_attr($options['social_google']) . '" placeholder="' . __('Google+ page URL', 'under-construction-page') . '">';
1505
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Google+ page.', 'under-construction-page') . '</p>';
1506
  echo '</td></tr>';
1507
 
1508
  echo '<tr valign="top">
1509
  <th scope="row"><label for="social_linkedin">' . __('LinkedIn Profile', 'under-construction-page') . '</label></th>
1510
  <td><input id="social_linkedin" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_linkedin]" value="' . esc_attr($options['social_linkedin']) . '" placeholder="' . __('LinkedIn profile page URL', 'under-construction-page') . '">';
1511
+ echo '<p class="description">' . __('Complete URL, with https prefix, to LinkedIn profile page.', 'under-construction-page') . '</p>';
1512
  echo '</td></tr>';
1513
 
1514
  echo '<tr valign="top">
1515
  <th scope="row"><label for="social_youtube">' . __('YouTube Profile Page or Video', 'under-construction-page') . '</label></th>
1516
  <td><input id="social_youtube" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_youtube]" value="' . esc_attr($options['social_youtube']) . '" placeholder="' . __('YouTube page or video URL', 'under-construction-page') . '">';
1517
+ echo '<p class="description">' . __('Complete URL, with https prefix, to YouTube page or video.', 'under-construction-page') . '</p>';
1518
  echo '</td></tr>';
1519
 
1520
  echo '<tr valign="top" class="hidden">
1521
  <th scope="row"><label for="social_vimeo">' . __('Vimeo Profile Page or Video', 'under-construction-page') . '</label></th>
1522
  <td><input id="social_vimeo" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_vimeo]" value="' . esc_attr($options['social_vimeo']) . '" placeholder="' . __('Vimeo page or video URL', 'under-construction-page') . '">';
1523
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Vimeo page or video.', 'under-construction-page') . '</p>';
1524
  echo '</td></tr>';
1525
 
1526
  echo '<tr valign="top" class="hidden">
1527
  <th scope="row"><label for="social_pinterest">' . __('Pinterest Profile', 'under-construction-page') . '</label></th>
1528
  <td><input id="social_pinterest" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_pinterest]" value="' . esc_attr($options['social_pinterest']) . '" placeholder="' . __('Pinterest profile URL', 'under-construction-page') . '">';
1529
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Pinterest profile.', 'under-construction-page') . '</p>';
1530
  echo '</td></tr>';
1531
 
1532
  echo '<tr valign="top" class="hidden">
1533
  <th scope="row"><label for="social_dribbble">' . __('Dribbble Profile', 'under-construction-page') . '</label></th>
1534
  <td><input id="social_dribbble" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_dribbble]" value="' . esc_attr($options['social_dribbble']) . '" placeholder="' . __('Dribbble profile URL', 'under-construction-page') . '">';
1535
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Dribbble profile.', 'under-construction-page') . '</p>';
1536
  echo '</td></tr>';
1537
 
1538
  echo '<tr valign="top" class="hidden">
1539
  <th scope="row"><label for="social_behance">' . __('Behance Profile', 'under-construction-page') . '</label></th>
1540
  <td><input id="social_behance" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_behance]" value="' . esc_attr($options['social_behance']) . '" placeholder="' . __('Behance profile URL', 'under-construction-page') . '">';
1541
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Behance profile.', 'under-construction-page') . '</p>';
1542
  echo '</td></tr>';
1543
 
1544
  echo '<tr valign="top" class="hidden">
1545
  <th scope="row"><label for="social_instagram">' . __('Instagram Profile', 'under-construction-page') . '</label></th>
1546
  <td><input id="social_instagram" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_instagram]" value="' . esc_attr($options['social_instagram']) . '" placeholder="' . __('Instagram profile URL', 'under-construction-page') . '">';
1547
+ echo '<p class="description">' . __('Complete URL, with https prefix, to Instagram profile.', 'under-construction-page') . '</p>';
1548
  echo '</td></tr>';
1549
 
1550
  echo '<tr valign="top" class="hidden">
1551
+ <th scope="row"><label for="social_vk">' . __('VK Profile', 'under-construction-page') . '</label></th>
1552
+ <td><input id="social_vk" type="url" class="regular-text code" name="' . UCP_OPTIONS_KEY . '[social_vk]" value="' . esc_attr($options['social_vk']) . '" placeholder="' . __('VK profile URL', 'under-construction-page') . '">';
1553
+ echo '<p class="description">' . __('Complete URL, with https prefix, to VK profile.', 'under-construction-page') . '</p>';
1554
  echo '</td></tr>';
1555
 
1556
  echo '<tr valign="top" class="hidden">
1636
  'bulldozer' => __('Bulldozer at Work', 'under-construction-page'),
1637
  'christmas' => __('Christmas Greetings', 'under-construction-page'),
1638
  '_pro_pink-lips' => __('Pink Lips', 'under-construction-page'),
1639
+ 'hard_worker' => __('Hard Worker', 'under-construction-page'),
1640
+ 'closed' => __('Temporarily Closed', 'under-construction-page'),
1641
+ '_pro_animated-green' => __('Simple Green Animated', 'under-construction-page'));
1642
 
1643
  $themes = apply_filters('ucp_themes', $themes);
1644
 
1809
  echo '<p><b>I have disabled UCP but the under construction page is still visible. How do I remove it?</b><br>Open your site and force refresh browser cache (Ctrl or Shift + F5). If that doesn\'t help it means you have a caching plugin installed. Purge/delete cache in that plugin or disable it. If that fails too contact your hosting provider and ask to empty the site cache for you.</p>';
1810
 
1811
  echo '<p><b>I have disabled UCP but the site\'s favicon is still the UCP logo. How do I change/remove it?</b><br>Make sure your theme has a favicon defined and empty all caches - browser and server ones. Open the site and force refresh browser cache (Ctrl or Shift + F5). If that doesn\'t help it means you have a caching plugin installed. Purge/delete cache in that plugin or disable it. If that fails too contact your hosting provider and ask to empty the site cache for you.</p>';
1812
+
1813
+ echo '<p><b>UCP is disabled but Twitter and Facebook still show it as my site\'s preview/thumbnail when I post the URL</b><br>Twitter and Facebook have their own cache which has to be refreshed. You can either wait and the problem will resolve itself in about a day or you can manually refresh the cache.<br>For Facebook open the <a href="https://developers.facebook.com/tools/debug/" target="_blank">Debugger</a>, input the URL, click "Debug". Once the results who up click "Scrape Again" to fetch the latest version of the page.<br>For Twitter, open the <a href="https://cards-dev.twitter.com/validator" target="_blank">Card validator</a>, enter the URL and click "Preview card". Latest version of the site should appear.</p>';
1814
  echo '</div>'; // faq
1815
 
1816
  echo '<div style="display: none;" id="tab_support_contact" class="ucp-tab-content">';
1880
  echo '<div id="ucp-earlybird"><span>Build <b>landing pages, coming soon pages, maintenance &amp; under construction pages</b> faster &amp; easier!</span>';
1881
  if (self::is_promo_active() == 'welcome') {
1882
  echo '<p class="textcenter"><a data-pro-ad="get_pro" href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now with a LIMITED <b>welcoming discount</b>! Offer is valid for only <b class="ucp-countdown">59min 33sec</b>.</a></p>';
1883
+ } elseif (self::is_promo_active() == 'olduser') {
1884
+ echo '<p class="textcenter"><a data-pro-ad="get_pro" href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now with a special <b>DISCOUNT for long-term users</b>!</a></p>';
1885
  } else {
1886
  echo '<p class="textcenter"><a data-pro-ad="get_pro" href="#" class="button button-primary button-large open-ucp-upsell">Get <b>PRO</b> now!</a></p>';
1887
  }
1992
  $products['agency'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime-welcome', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>$51 OFF</u><br><del>$250</del> $199<br><small>Discount ends in <b class="ucp-countdown">59min 30sec</b></small>');
1993
  $products['pro-lifetime'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-lifetime-welcome', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>20% OFF</u><br><del>$69</del> $55<br><small>Discount ends in <b class="ucp-countdown">59min 30sec</b></small>');
1994
  $products['pro-yearly'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-yearly-welcome', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>20% OFF</u><br><del>$39</del> $31<small>/year</small><br><small>Discount ends in <b class="ucp-countdown">59min 30sec</b></small>');
1995
+ } elseif ($promo == 'olduser') {
1996
+ $header = 'A special <b>discount for long-term users</b> has been applied to all packages!';
1997
+ $products['agency'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime-olduser', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>$51 OFF</u><br><del>$250</del> $199');
1998
+ $products['pro-lifetime'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-lifetime-olduser', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>20% OFF</u><br><del>$69</del> $55');
1999
+ $products['pro-yearly'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'pro-yearly-olduser', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW <u>20% OFF</u><br><del>$39</del> $31<small>/year</small>');
2000
  } else {
2001
  $header = '';
2002
  $products['agency'] = array('link' => self::generate_web_link('pricing-table', 'buy/', array('p' => 'agency-lifetime', 'r' => 'UCP v' . self::$version)), 'price' => 'BUY NOW<br>$250');
2130
  return 'welcome';
2131
  }
2132
 
2133
+ if ((time() - $meta['first_install']) > DAY_IN_SECONDS * 45) {
2134
+ return 'olduser';
2135
+ }
2136
+
2137
  return false;
2138
  } // is_promo_active
2139