Version Description
- 2018/11/27
- new theme - Work Desk
- started promoting SN & MailOptin in featured plugins tab
- wp_redirect() vulnerability fix
Download this release
Release Info
Developer | WebFactory |
Plugin | Under Construction |
Version | 3.25 |
Comparing to | |
See all releases |
Code changes from version 3.20 to 3.25
- images/thumbnails/pro/grayscale-city.jpg +0 -0
- images/thumbnails/work_desk.png +0 -0
- js/ucp-admin.js +4 -2
- readme.txt +13 -6
- themes/work_desk/index.php +63 -0
- themes/work_desk/style.css +71 -0
- themes/work_desk/work_desk.png +0 -0
- under-construction.php +74 -73
images/thumbnails/pro/grayscale-city.jpg
ADDED
Binary file
|
images/thumbnails/work_desk.png
ADDED
Binary file
|
js/ucp-admin.js
CHANGED
@@ -30,6 +30,7 @@ jQuery(document).ready(function($) {
|
|
30 |
// init select2
|
31 |
$('#whitelisted_users').select2({ 'placeholder': ucp.whitelisted_users_placeholder});
|
32 |
|
|
|
33 |
// autosize textareas
|
34 |
$.each($('textarea[data-autoresize]'), function() {
|
35 |
var offset = this.offsetHeight - this.clientHeight;
|
@@ -40,6 +41,7 @@ jQuery(document).ready(function($) {
|
|
40 |
$(this).on('keyup input click', function() { resizeTextarea(this); }).removeAttr('data-autoresize');
|
41 |
});
|
42 |
|
|
|
43 |
// maybe init survey dialog
|
44 |
$('#features-survey-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog ucp-survey-dialog',
|
45 |
'modal': 1,
|
@@ -323,7 +325,7 @@ jQuery(document).ready(function($) {
|
|
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 |
});
|
@@ -388,7 +390,7 @@ jQuery(document).ready(function($) {
|
|
388 |
$(this).blur();
|
389 |
|
390 |
$('#mailoptin-upsell-dialog').dialog('open');
|
391 |
-
|
392 |
return false;
|
393 |
});
|
394 |
|
30 |
// init select2
|
31 |
$('#whitelisted_users').select2({ 'placeholder': ucp.whitelisted_users_placeholder});
|
32 |
|
33 |
+
|
34 |
// autosize textareas
|
35 |
$.each($('textarea[data-autoresize]'), function() {
|
36 |
var offset = this.offsetHeight - this.clientHeight;
|
41 |
$(this).on('keyup input click', function() { resizeTextarea(this); }).removeAttr('data-autoresize');
|
42 |
});
|
43 |
|
44 |
+
|
45 |
// maybe init survey dialog
|
46 |
$('#features-survey-dialog').dialog({'dialogClass': 'wp-dialog ucp-dialog ucp-survey-dialog',
|
47 |
'modal': 1,
|
325 |
jQuery('#install-mailoptin').on('click',function(e){
|
326 |
$('#mailoptin-upsell-dialog').dialog('close');
|
327 |
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>');
|
328 |
+
jQuery('#wpwrap').css('pointer-events', 'none');
|
329 |
e.preventDefault();
|
330 |
return false;
|
331 |
});
|
390 |
$(this).blur();
|
391 |
|
392 |
$('#mailoptin-upsell-dialog').dialog('open');
|
393 |
+
|
394 |
return false;
|
395 |
});
|
396 |
|
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: 5.0
|
7 |
-
Stable tag: 3.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -125,15 +125,22 @@ Or if needed, upload manually;
|
|
125 |
31. Temporarily Closed theme
|
126 |
32. Dumper Truck theme
|
127 |
33. 000webhost theme
|
128 |
-
34.
|
129 |
-
35.
|
130 |
-
36.
|
131 |
-
37.
|
132 |
-
38.
|
|
|
133 |
|
134 |
|
135 |
== Changelog ==
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
= 3.20 =
|
138 |
* 2018/11/12
|
139 |
* few bug fixes
|
4 |
Requires at least: 4.0
|
5 |
Requires PHP: 5.2
|
6 |
Tested up to: 5.0
|
7 |
+
Stable tag: 3.25
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
125 |
31. Temporarily Closed theme
|
126 |
32. Dumper Truck theme
|
127 |
33. 000webhost theme
|
128 |
+
34. Work Desk theme
|
129 |
+
35. Main settings
|
130 |
+
36. Design settings
|
131 |
+
37. Content settings
|
132 |
+
38. Access settings
|
133 |
+
39. Support
|
134 |
|
135 |
|
136 |
== Changelog ==
|
137 |
|
138 |
+
= 3.25 =
|
139 |
+
* 2018/11/27
|
140 |
+
* new theme - Work Desk
|
141 |
+
* started promoting SN & MailOptin in featured plugins tab
|
142 |
+
* wp_redirect() vulnerability fix
|
143 |
+
|
144 |
= 3.20 =
|
145 |
* 2018/11/12
|
146 |
* few bug fixes
|
themes/work_desk/index.php
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/*
|
3 |
+
* UnderConstructionPage
|
4 |
+
* Work Desk 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 rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito:200,600,900">
|
24 |
+
[head]
|
25 |
+
</head>
|
26 |
+
|
27 |
+
<body>
|
28 |
+
<div class="container">
|
29 |
+
|
30 |
+
<div class="row">
|
31 |
+
<div class="col-xs-12 col-md-12 col-lg-12">
|
32 |
+
<h1>[heading1]</h1>
|
33 |
+
</div>
|
34 |
+
</div>
|
35 |
+
|
36 |
+
<div class="row">
|
37 |
+
<div class="col-xs-12 col-md-8 col-md-offset-2 col-lg-offset-2 col-lg-8">
|
38 |
+
<p class="content">[content]</p>
|
39 |
+
</div>
|
40 |
+
</div>
|
41 |
+
|
42 |
+
<div class="row" id="social">
|
43 |
+
<div class="col-xs-12 col-md-12 col-lg-12">
|
44 |
+
[social-icons]
|
45 |
+
</div>
|
46 |
+
</div>
|
47 |
+
|
48 |
+
</div>
|
49 |
+
<div id="desk" style="background-image: url([theme-url]work_desk.png);" alt="Work Desk" title="Work Desk"> </div>
|
50 |
+
[footer]
|
51 |
+
<script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
|
52 |
+
<script type="text/javascript">
|
53 |
+
jQuery(function($) {
|
54 |
+
$(window).on('resize', function() {
|
55 |
+
if ($(window).width() > 767) {
|
56 |
+
tmp = $(window).height() - $('.container').height();
|
57 |
+
$('#desk').height(tmp);
|
58 |
+
}
|
59 |
+
}).trigger('resize');
|
60 |
+
});
|
61 |
+
</script>
|
62 |
+
</body>
|
63 |
+
</html>
|
themes/work_desk/style.css
ADDED
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* UnderConstructionPage
|
3 |
+
* Work Desk theme CSS
|
4 |
+
* (c) WebFactory Ltd, 2015 - 2018
|
5 |
+
*/
|
6 |
+
|
7 |
+
|
8 |
+
html, body {
|
9 |
+
height: 100%;
|
10 |
+
padding: 0;
|
11 |
+
margin: 0;
|
12 |
+
}
|
13 |
+
|
14 |
+
body {
|
15 |
+
font-weight: 400;
|
16 |
+
font-size: 14px;
|
17 |
+
line-height: 120%;
|
18 |
+
color: #58595b;
|
19 |
+
background: #ffd72f;
|
20 |
+
}
|
21 |
+
|
22 |
+
#desk {
|
23 |
+
background-size: contain;
|
24 |
+
max-width: 80%;
|
25 |
+
margin: -50px auto 0 auto;
|
26 |
+
background-repeat: no-repeat;
|
27 |
+
background-position-x: center;
|
28 |
+
}
|
29 |
+
|
30 |
+
h1 {
|
31 |
+
font-size: 34px;
|
32 |
+
color: #58595b;
|
33 |
+
font-family: "Nunito", sans-serif;
|
34 |
+
font-weight: 900;
|
35 |
+
margin: 35px 0 30px 0;
|
36 |
+
text-align: center;
|
37 |
+
}
|
38 |
+
|
39 |
+
.content {
|
40 |
+
text-align: center;
|
41 |
+
font-family: "Helvetica", "Arial", sans-serif;
|
42 |
+
}
|
43 |
+
|
44 |
+
#social {
|
45 |
+
text-align: center;
|
46 |
+
margin-top: 30px;
|
47 |
+
}
|
48 |
+
|
49 |
+
#social a i {
|
50 |
+
color: #58595b;
|
51 |
+
margin: 10px;
|
52 |
+
box-sizing: content-box;
|
53 |
+
}
|
54 |
+
|
55 |
+
#social a:hover i {
|
56 |
+
color: #e0632f;
|
57 |
+
}
|
58 |
+
|
59 |
+
@media(max-width:767px){
|
60 |
+
h1 {
|
61 |
+
font-size: 30px;
|
62 |
+
margin: 10px 0 30px 0;
|
63 |
+
}
|
64 |
+
#desk {
|
65 |
+
width: 100%;
|
66 |
+
height: 100%;
|
67 |
+
margin: 0 auto 0 auto;
|
68 |
+
background-size: contain;
|
69 |
+
background-repeat: no-repeat;
|
70 |
+
}
|
71 |
+
}
|
themes/work_desk/work_desk.png
ADDED
Binary file
|
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
|
@@ -98,8 +98,7 @@ class UCP {
|
|
98 |
add_action('wp_ajax_ucp_submit_earlybird', array(__CLASS__, 'submit_earlybird_ajax'));
|
99 |
add_action('wp_ajax_ucp_submit_support_message', array(__CLASS__, 'submit_support_message_ajax'));
|
100 |
|
101 |
-
|
102 |
-
add_action('admin_footer-plugins.php', array(__CLASS__, 'footer_plugins'));
|
103 |
} else {
|
104 |
// main plugin logic
|
105 |
add_action('wp', array(__CLASS__, 'display_construction_page'), 0, 1);
|
@@ -915,7 +914,7 @@ class UCP {
|
|
915 |
// handle dismiss button for notices
|
916 |
static function dismiss_notice() {
|
917 |
if (empty($_GET['notice'])) {
|
918 |
-
|
919 |
exit;
|
920 |
}
|
921 |
|
@@ -923,30 +922,25 @@ class UCP {
|
|
923 |
|
924 |
if ($_GET['notice'] == 'rate') {
|
925 |
$notices['dismiss_rate'] = true;
|
926 |
-
}
|
927 |
-
|
928 |
-
if ($_GET['notice'] == 'translate') {
|
929 |
$notices['dismiss_translate'] = true;
|
930 |
-
}
|
931 |
-
|
932 |
-
if ($_GET['notice'] == 'whitelisted') {
|
933 |
$notices['dismiss_whitelisted'] = true;
|
934 |
-
}
|
935 |
-
|
936 |
-
if ($_GET['notice'] == 'olduser') {
|
937 |
$notices['dismiss_olduser'] = true;
|
938 |
-
}
|
939 |
-
|
940 |
-
if ($_GET['notice'] == 'welcome') {
|
941 |
$notices['dismiss_welcome'] = true;
|
|
|
|
|
|
|
942 |
}
|
943 |
|
944 |
update_option(UCP_NOTICES_KEY, $notices);
|
945 |
|
946 |
if (!empty($_GET['redirect'])) {
|
947 |
-
|
948 |
} else {
|
949 |
-
|
950 |
}
|
951 |
|
952 |
exit;
|
@@ -959,9 +953,9 @@ class UCP {
|
|
959 |
update_option(UCP_OPTIONS_KEY, $options);
|
960 |
|
961 |
if (!empty($_GET['redirect'])) {
|
962 |
-
|
963 |
} else {
|
964 |
-
|
965 |
}
|
966 |
|
967 |
exit;
|
@@ -971,7 +965,7 @@ class UCP {
|
|
971 |
// change status via admin bar
|
972 |
static function change_status() {
|
973 |
if (empty($_GET['new_status'])) {
|
974 |
-
|
975 |
exit;
|
976 |
}
|
977 |
|
@@ -986,9 +980,9 @@ class UCP {
|
|
986 |
update_option(UCP_OPTIONS_KEY, $options);
|
987 |
|
988 |
if (!empty($_GET['redirect'])) {
|
989 |
-
|
990 |
} else {
|
991 |
-
|
992 |
}
|
993 |
|
994 |
exit;
|
@@ -1781,7 +1775,9 @@ class UCP {
|
|
1781 |
'closed' => __('Temporarily Closed', 'under-construction-page'),
|
1782 |
'_pro_animated-green' => __('Simple Green Animated', 'under-construction-page'),
|
1783 |
'dumper_truck' => __('Dumper Truck', 'under-construction-page'),
|
1784 |
-
'000webhost' => __('000webhost', 'under-construction-page')
|
|
|
|
|
1785 |
|
1786 |
$themes = apply_filters('ucp_themes', $themes);
|
1787 |
|
@@ -2313,55 +2309,6 @@ class UCP {
|
|
2313 |
} // footer_buttons
|
2314 |
|
2315 |
|
2316 |
-
// markup for deactivate dialog
|
2317 |
-
static function footer_plugins() {
|
2318 |
-
$support_link = admin_url('options-general.php?page=ucp&urgent-support=true#support');
|
2319 |
-
|
2320 |
-
echo '<div id="ucp-deactivate-survey" style="display: none;" title="Please help us make UCP better"><span class="ui-helper-hidden-accessible"><input type="text"/></span>';
|
2321 |
-
|
2322 |
-
echo '<div class="question-wrapper-assistance" data-value="urgent">' .
|
2323 |
-
'<div class="question"><b>Something\'s not working? We offer URGENT assistance!</b><br><a href="' . $support_link . '" class="button">Send a priority ticket to our friendly support agents</a><br><small><i>average response time is under 20 minutes</i></small></div>' . '</div>';
|
2324 |
-
|
2325 |
-
echo '<p class="textcenter"><br>We want to improve! Please tell us:<br><b>Why are you deactivating <span class="ucp-logo">UnderConstructionPage</span>?</b></p>';
|
2326 |
-
|
2327 |
-
$questions = array();
|
2328 |
-
$questions[] = '<div class="question-wrapper" data-value="temporary">' .
|
2329 |
-
'<div class="question">It\'s a temporary deactivation, I\'m debugging something</div>' .
|
2330 |
-
'</div>';
|
2331 |
-
|
2332 |
-
$questions[] = '<div class="question-wrapper" data-value="not-working">' .
|
2333 |
-
'<div class="question">Plugin is not working<div class="details">Please tell us what exactly is not working: <input type="text" class="normal-text ucp-deactivation-details"></div></div>' .
|
2334 |
-
'</div>';
|
2335 |
-
|
2336 |
-
$questions[] = '<div class="question-wrapper" data-value="wrong-plugin">' .
|
2337 |
-
'<div class="question">Plugin is not what I thought it is, I need a different plugin</div>' .
|
2338 |
-
'</div>';
|
2339 |
-
|
2340 |
-
$questions[] = '<div class="question-wrapper" data-value="site-live">' .
|
2341 |
-
'<div class="question">It served its purpose - site is now live</div>' .
|
2342 |
-
'</div>';
|
2343 |
-
|
2344 |
-
$questions[] = '<div class="question-wrapper" data-value="missing-feature">' .
|
2345 |
-
'<div class="question">It doesn\'t have all the features I need<div class="details">Please tell us what features are missing: <input type="text" class="normal-text ucp-deactivation-details"></div></div>' .
|
2346 |
-
'</div>';
|
2347 |
-
|
2348 |
-
shuffle($questions);
|
2349 |
-
$questions[] = '<div class="question-wrapper" data-value="other">' .
|
2350 |
-
'<div class="question">Something else<div class="details">Please tell us the reason: <input type="text" class="normal-text ucp-deactivation-details"></div></div>' .
|
2351 |
-
'</div>';
|
2352 |
-
echo implode(' ', $questions);
|
2353 |
-
|
2354 |
-
|
2355 |
-
$current_user = wp_get_current_user();
|
2356 |
-
echo '<div class="footer">';
|
2357 |
-
echo '<a class="ucp-cancel-deactivate js-action button-secondary button button-large" href="#">Cancel Deactivation</a> <a data-survey="deactivate" class="button-primary button button-large ucp-deactivate" href="#">Continue with Deactivation</a>';
|
2358 |
-
echo '<br><br><a href="#" class="js-action ucp-deactivate-direct"><small><i>Deactivate without providing feedback</i></small></a>';
|
2359 |
-
echo '</div>';
|
2360 |
-
|
2361 |
-
echo '</div>';
|
2362 |
-
} // footer_plugins
|
2363 |
-
|
2364 |
-
|
2365 |
// reset all pointers to default state - visible
|
2366 |
static function reset_pointers() {
|
2367 |
$pointers = array();
|
@@ -2460,6 +2407,60 @@ class UCP {
|
|
2460 |
} // is_mailoptin_active
|
2461 |
|
2462 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2463 |
// reset pointers on activation
|
2464 |
static function activate() {
|
2465 |
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.25
|
8 |
Author URI: https://www.webfactoryltd.com/
|
9 |
Text Domain: under-construction-page
|
10 |
Domain Path: lang
|
98 |
add_action('wp_ajax_ucp_submit_earlybird', array(__CLASS__, 'submit_earlybird_ajax'));
|
99 |
add_action('wp_ajax_ucp_submit_support_message', array(__CLASS__, 'submit_support_message_ajax'));
|
100 |
|
101 |
+
add_filter('install_plugins_table_api_args_featured', array(__CLASS__, 'featured_plugins_tab'));
|
|
|
102 |
} else {
|
103 |
// main plugin logic
|
104 |
add_action('wp', array(__CLASS__, 'display_construction_page'), 0, 1);
|
914 |
// handle dismiss button for notices
|
915 |
static function dismiss_notice() {
|
916 |
if (empty($_GET['notice'])) {
|
917 |
+
wp_safe_redirect(admin_url());
|
918 |
exit;
|
919 |
}
|
920 |
|
922 |
|
923 |
if ($_GET['notice'] == 'rate') {
|
924 |
$notices['dismiss_rate'] = true;
|
925 |
+
} elseif ($_GET['notice'] == 'translate') {
|
|
|
|
|
926 |
$notices['dismiss_translate'] = true;
|
927 |
+
} elseif ($_GET['notice'] == 'whitelisted') {
|
|
|
|
|
928 |
$notices['dismiss_whitelisted'] = true;
|
929 |
+
} elseif ($_GET['notice'] == 'olduser') {
|
|
|
|
|
930 |
$notices['dismiss_olduser'] = true;
|
931 |
+
} elseif ($_GET['notice'] == 'welcome') {
|
|
|
|
|
932 |
$notices['dismiss_welcome'] = true;
|
933 |
+
} else {
|
934 |
+
wp_safe_redirect(admin_url());
|
935 |
+
exit;
|
936 |
}
|
937 |
|
938 |
update_option(UCP_NOTICES_KEY, $notices);
|
939 |
|
940 |
if (!empty($_GET['redirect'])) {
|
941 |
+
wp_safe_redirect($_GET['redirect']);
|
942 |
} else {
|
943 |
+
wp_safe_redirect(admin_url());
|
944 |
}
|
945 |
|
946 |
exit;
|
953 |
update_option(UCP_OPTIONS_KEY, $options);
|
954 |
|
955 |
if (!empty($_GET['redirect'])) {
|
956 |
+
wp_safe_redirect($_GET['redirect']);
|
957 |
} else {
|
958 |
+
wp_safe_redirect(admin_url());
|
959 |
}
|
960 |
|
961 |
exit;
|
965 |
// change status via admin bar
|
966 |
static function change_status() {
|
967 |
if (empty($_GET['new_status'])) {
|
968 |
+
wp_safe_redirect(admin_url());
|
969 |
exit;
|
970 |
}
|
971 |
|
980 |
update_option(UCP_OPTIONS_KEY, $options);
|
981 |
|
982 |
if (!empty($_GET['redirect'])) {
|
983 |
+
wp_safe_redirect($_GET['redirect']);
|
984 |
} else {
|
985 |
+
wp_safe_redirect(admin_url());
|
986 |
}
|
987 |
|
988 |
exit;
|
1775 |
'closed' => __('Temporarily Closed', 'under-construction-page'),
|
1776 |
'_pro_animated-green' => __('Simple Green Animated', 'under-construction-page'),
|
1777 |
'dumper_truck' => __('Dumper Truck', 'under-construction-page'),
|
1778 |
+
'000webhost' => __('000webhost', 'under-construction-page'),
|
1779 |
+
'_pro_grayscale-city' => __('Grayscale City', 'under-construction-page'),
|
1780 |
+
'work_desk' => __('Work Desk', 'under-construction-page'));
|
1781 |
|
1782 |
$themes = apply_filters('ucp_themes', $themes);
|
1783 |
|
2309 |
} // footer_buttons
|
2310 |
|
2311 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2312 |
// reset all pointers to default state - visible
|
2313 |
static function reset_pointers() {
|
2314 |
$pointers = array();
|
2407 |
} // is_mailoptin_active
|
2408 |
|
2409 |
|
2410 |
+
// helper function for adding plugins to fav list
|
2411 |
+
static function featured_plugins_tab($args) {
|
2412 |
+
add_filter('plugins_api_result', array(__CLASS__, 'plugins_api_result'), 10, 3);
|
2413 |
+
|
2414 |
+
return $args;
|
2415 |
+
} // featured_plugins_tab
|
2416 |
+
|
2417 |
+
|
2418 |
+
// add single plugin to list of favs
|
2419 |
+
static function add_plugin_favs($plugin_slug, $res) {
|
2420 |
+
if (is_array($res->plugins)) {
|
2421 |
+
foreach ($res->plugins as $plugin) {
|
2422 |
+
if ($plugin->slug == $plugin_slug) {
|
2423 |
+
return $res;
|
2424 |
+
}
|
2425 |
+
} // foreach
|
2426 |
+
}
|
2427 |
+
|
2428 |
+
if ($plugin_info = get_transient('wf-plugin-info-' . $plugin_slug)) {
|
2429 |
+
$res->plugins[] = $plugin_info;
|
2430 |
+
} else {
|
2431 |
+
$plugin_info = plugins_api('plugin_information', array(
|
2432 |
+
'slug' => $plugin_slug,
|
2433 |
+
'is_ssl' => is_ssl(),
|
2434 |
+
'fields' => array(
|
2435 |
+
'banners' => true,
|
2436 |
+
'reviews' => true,
|
2437 |
+
'downloaded' => true,
|
2438 |
+
'active_installs' => true,
|
2439 |
+
'icons' => true,
|
2440 |
+
'short_description' => true,
|
2441 |
+
)
|
2442 |
+
));
|
2443 |
+
if (!is_wp_error($plugin_info)) {
|
2444 |
+
$res->plugins[] = $plugin_info;
|
2445 |
+
set_transient('wf-plugin-info-' . $plugin_slug, $plugin_info, DAY_IN_SECONDS * 7);
|
2446 |
+
}
|
2447 |
+
}
|
2448 |
+
|
2449 |
+
return $res;
|
2450 |
+
} // add_plugin_favs
|
2451 |
+
|
2452 |
+
|
2453 |
+
// add our plugins to recommended list
|
2454 |
+
static function plugins_api_result($res, $action, $args) {
|
2455 |
+
remove_filter('plugins_api_result', array(__CLASS__, 'plugins_api_result'), 10, 3);
|
2456 |
+
|
2457 |
+
$res = self::add_plugin_favs('mailoptin', $res);
|
2458 |
+
$res = self::add_plugin_favs('security-ninja', $res);
|
2459 |
+
|
2460 |
+
return $res;
|
2461 |
+
} // plugins_api_result
|
2462 |
+
|
2463 |
+
|
2464 |
// reset pointers on activation
|
2465 |
static function activate() {
|
2466 |
self::reset_pointers();
|