Version Description
Download this release
Release Info
Developer | WebFactory |
Plugin | WP Reset – Fastest WordPress Reset Plugin |
Version | 1.30 |
Comparing to | |
See all releases |
Code changes from version 1.25 to 1.30
- css/wp-reset.css +164 -3
- js/wp-reset-pointers.js +32 -0
- js/wp-reset.js +106 -12
- readme.txt +21 -3
- wp-reset-cli.php +30 -5
- wp-reset.php +234 -11
css/wp-reset.css
CHANGED
@@ -8,6 +8,10 @@
|
|
8 |
vertical-align: middle;
|
9 |
}
|
10 |
|
|
|
|
|
|
|
|
|
11 |
.tools_page_wp-reset .plain-list {
|
12 |
margin-top: 5px;
|
13 |
list-style-type: circle;
|
@@ -91,6 +95,163 @@
|
|
91 |
display: none;
|
92 |
}
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
vertical-align: middle;
|
9 |
}
|
10 |
|
11 |
+
.tools_page_wp-reset.wp-core-ui .button, .tools_page_wp-reset.wp-core-ui .button-primary, .tools_page_wp-reset.wp-core-ui .button-secondary {
|
12 |
+
border-radius: 0;
|
13 |
+
}
|
14 |
+
|
15 |
.tools_page_wp-reset .plain-list {
|
16 |
margin-top: 5px;
|
17 |
list-style-type: circle;
|
95 |
display: none;
|
96 |
}
|
97 |
|
98 |
+
.tools_page_wp-reset .swal2-popup {
|
99 |
+
border-radius: 0;
|
100 |
+
}
|
101 |
+
|
102 |
+
@-moz-keyframes spin {
|
103 |
+
100% {
|
104 |
+
-moz-transform: rotate(-360deg);
|
105 |
+
}
|
106 |
+
}
|
107 |
+
@-webkit-keyframes spin {
|
108 |
+
100% {
|
109 |
+
-webkit-transform: rotate(-360deg);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
@keyframes spin {
|
113 |
+
100% {
|
114 |
+
-webkit-transform: rotate(-360deg); transform:rotate(-360deg);
|
115 |
+
}
|
116 |
+
}
|
117 |
+
|
118 |
+
|
119 |
+
/* tabs */
|
120 |
+
.tools_page_wp-reset .ui-tabs {
|
121 |
+
max-width: 100%;
|
122 |
+
position: relative;
|
123 |
+
padding: 0px;
|
124 |
+
zoom: 1;
|
125 |
+
margin-top: 20px;
|
126 |
+
}
|
127 |
+
|
128 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav {
|
129 |
+
margin: 0;
|
130 |
+
padding: 0;
|
131 |
+
}
|
132 |
+
|
133 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li {
|
134 |
+
list-style: none;
|
135 |
+
position: relative;
|
136 |
+
top: 1px;
|
137 |
+
margin: 0 .2em 1px 0;
|
138 |
+
padding: 0;
|
139 |
+
white-space: nowrap;
|
140 |
+
}
|
141 |
+
|
142 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li a {
|
143 |
+
text-decoration: none;
|
144 |
+
}
|
145 |
+
|
146 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li.ui-tabs-selected {
|
147 |
+
margin-bottom: 0;
|
148 |
+
border-bottom: 1px solid #F1F1F1 !important;
|
149 |
+
}
|
150 |
+
|
151 |
+
.tools_page_wp-reset ul.ui-tabs-nav.wpr-main-tab li.ui-state-active {
|
152 |
+
border-top: 3px solid #666666;
|
153 |
+
background: #ffffff;
|
154 |
+
transition: all 0.4s ease-out;
|
155 |
+
border-bottom: 1px solid #fff;
|
156 |
+
}
|
157 |
+
|
158 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li.ui-tabs-selected a,
|
159 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li.ui-state-disabled a,
|
160 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li.ui-state-processing a {
|
161 |
+
cursor: text;
|
162 |
+
}
|
163 |
+
|
164 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li a,
|
165 |
+
.tools_page_wp-reset .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a {
|
166 |
+
cursor: pointer;
|
167 |
+
}
|
168 |
+
|
169 |
+
|
170 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-panel {
|
171 |
+
display: inline-block;
|
172 |
+
border: none;
|
173 |
+
padding: 20px;
|
174 |
+
background: #ffffff;
|
175 |
+
overflow: visible;
|
176 |
+
min-width: 520px;
|
177 |
+
border-top: 1px solid #e5e5e5;
|
178 |
+
}
|
179 |
+
|
180 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-hide {
|
181 |
+
display: none !important;
|
182 |
+
}
|
183 |
+
|
184 |
+
.tools_page_wp-reset .ui-tabs .ui-tabs-nav li a {
|
185 |
+
font-size: 14px;
|
186 |
+
font-weight: 600;
|
187 |
+
line-height: 32px;
|
188 |
+
color: #AAAAAA;
|
189 |
+
padding: 10px 25px;
|
190 |
+
display: block;
|
191 |
+
letter-spacing: 1px;
|
192 |
+
}
|
193 |
+
|
194 |
+
.tools_page_wp-reset .ui-tabs ul.ui-tabs-nav li.ui-state-active .icon {
|
195 |
+
color: #666666;
|
196 |
+
}
|
197 |
+
|
198 |
+
.tools_page_wp-reset .ui-tabs-nav:after {
|
199 |
+
content: '';
|
200 |
+
clear: both;
|
201 |
+
display: block;
|
202 |
+
}
|
203 |
+
|
204 |
+
.tools_page_wp-reset .ui-tabs-anchor,
|
205 |
+
.nav-tab {
|
206 |
+
outline: none !important;
|
207 |
+
}
|
208 |
+
|
209 |
+
.tools_page_wp-reset .ui-tabs ul.ui-tabs-nav li {
|
210 |
+
color: #AAAAAA;
|
211 |
+
display: inline-block;
|
212 |
+
font-size: 12px;
|
213 |
+
line-height: 16px;
|
214 |
+
margin: 0px 15px 0px 6px;
|
215 |
+
text-decoration: none;
|
216 |
+
text-shadow: none;
|
217 |
+
background: rgba(255, 255, 255, 0.7);
|
218 |
+
padding: 0;
|
219 |
+
text-align: center;
|
220 |
+
letter-spacing: .5px;
|
221 |
+
min-width: 100px;
|
222 |
+
border-top: 3px solid transparent;
|
223 |
+
border-bottom: 1px solid #e5e5e5;
|
224 |
+
}
|
225 |
+
|
226 |
+
.tools_page_wp-reset .ui-tabs ul.ui-tabs-nav li .label {
|
227 |
+
display: block;
|
228 |
+
margin-top: -10px;
|
229 |
+
}
|
230 |
+
|
231 |
+
.tools_page_wp-reset .ui-tabs ul.ui-tabs-nav li:first-child {
|
232 |
+
margin-left: 0;
|
233 |
+
}
|
234 |
+
|
235 |
+
.tools_page_wp-reset ul.ui-tabs-nav.wpr-main-tab {
|
236 |
+
padding-bottom: 0;
|
237 |
+
width: 100%;
|
238 |
+
box-sizing: border-box;
|
239 |
+
}
|
240 |
+
|
241 |
+
.tools_page_wp-reset .ui-state-hover a,
|
242 |
+
.tools_page_wp-reset .ui-state-active a,
|
243 |
+
.tools_page_wp-reset li.ui-state-hover,
|
244 |
+
.tools_page_wp-reset li.ui-state-hover a {
|
245 |
+
color: #000000 !important;
|
246 |
+
}
|
247 |
+
|
248 |
+
.tools_page_wp-reset .ui-tabs ul.ui-tabs-nav li.ui-state-hover {
|
249 |
+
background-color: #ffffff !important;
|
250 |
+
border-bottom: 1px solid #fff;
|
251 |
+
}
|
252 |
+
|
253 |
+
.tools_page_wp-reset .ui-tabs-nav a:focus {
|
254 |
+
box-shadow: none;
|
255 |
+
-webkit-box-shadow: none;
|
256 |
+
}
|
257 |
+
/* tabs */
|
js/wp-reset-pointers.js
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* WP Reset
|
3 |
+
* Backend GUI pointers
|
4 |
+
* (c) Web factory Ltd, 2017 - 2018
|
5 |
+
*/
|
6 |
+
|
7 |
+
jQuery(document).ready(function($){
|
8 |
+
if (typeof wp_reset_pointers == 'undefined') {
|
9 |
+
return;
|
10 |
+
}
|
11 |
+
|
12 |
+
$.each(wp_reset_pointers, function(index, pointer) {
|
13 |
+
if (index.charAt(0) == '_') {
|
14 |
+
return true;
|
15 |
+
}
|
16 |
+
$(pointer.target).pointer({
|
17 |
+
content: '<h3>WP Reset</h3><p>' + pointer.content + '</p>',
|
18 |
+
pointerWidth: 380,
|
19 |
+
position: {
|
20 |
+
edge: pointer.edge,
|
21 |
+
align: pointer.align
|
22 |
+
},
|
23 |
+
close: function() {
|
24 |
+
$.get(ajaxurl, {
|
25 |
+
notice_name: index,
|
26 |
+
_ajax_nonce: wp_reset_pointers._nonce_dismiss_pointer,
|
27 |
+
action: 'wp_reset_dismiss_notice'
|
28 |
+
});
|
29 |
+
}
|
30 |
+
}).pointer('open');
|
31 |
+
});
|
32 |
+
});
|
js/wp-reset.js
CHANGED
@@ -6,6 +6,111 @@
|
|
6 |
|
7 |
|
8 |
jQuery(document).ready(function($) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |
$('#wp_reset_form').on('submit', function(e, confirmed) {
|
10 |
if (!confirmed) {
|
11 |
$('#wp_reset_submit').trigger('click');
|
@@ -42,18 +147,7 @@ jQuery(document).ready(function($) {
|
|
42 |
width: 600
|
43 |
}).then((result) => {
|
44 |
if (result.value === true) {
|
45 |
-
|
46 |
-
type: false,
|
47 |
-
imageUrl: wp_reset.icon_url,
|
48 |
-
onOpen: () => { $(swal.getImage()).addClass('rotating'); },
|
49 |
-
imageWidth: 100,
|
50 |
-
imageHeight: 100,
|
51 |
-
imageAlt: wp_reset.doing_reset,
|
52 |
-
allowOutsideClick: false,
|
53 |
-
allowEscapeKey: false,
|
54 |
-
allowEnterKey: false,
|
55 |
-
showConfirmButton: false,
|
56 |
-
});
|
57 |
$('#wp_reset_form').trigger('submit', true);
|
58 |
}
|
59 |
});
|
6 |
|
7 |
|
8 |
jQuery(document).ready(function($) {
|
9 |
+
// init tabs
|
10 |
+
$('#wp-reset-tabs').tabs({
|
11 |
+
activate: function(event, ui) {
|
12 |
+
localStorage.setItem('wp-reset-tabs', $('#wp-reset-tabs').tabs('option', 'active'));
|
13 |
+
},
|
14 |
+
active: localStorage.getItem('wp-reset-tabs') || 0
|
15 |
+
}).show();
|
16 |
+
|
17 |
+
|
18 |
+
// delete transients
|
19 |
+
$('.tools_page_wp-reset').on('click', '#delete-transients', 'click', function(e) {
|
20 |
+
e.preventDefault();
|
21 |
+
|
22 |
+
run_tool(this, 'delete_transients');
|
23 |
+
|
24 |
+
return false;
|
25 |
+
}); // delete transients
|
26 |
+
|
27 |
+
|
28 |
+
// delete themes
|
29 |
+
$('.tools_page_wp-reset').on('click', '#delete-themes', 'click', function(e) {
|
30 |
+
e.preventDefault();
|
31 |
+
|
32 |
+
run_tool(this, 'delete_themes');
|
33 |
+
|
34 |
+
return false;
|
35 |
+
}); // delete themes
|
36 |
+
|
37 |
+
|
38 |
+
// delete plugins
|
39 |
+
$('.tools_page_wp-reset').on('click', '#delete-plugins', 'click', function(e) {
|
40 |
+
e.preventDefault();
|
41 |
+
|
42 |
+
run_tool(this, 'delete_plugins');
|
43 |
+
|
44 |
+
return false;
|
45 |
+
}); // delete plugins
|
46 |
+
|
47 |
+
|
48 |
+
function run_tool(button, tool_name) {
|
49 |
+
confirm_action(wp_reset.confirm_title, $(button).data('text-confirm'), $(button).data('btn-confirm'), wp_reset.cancel_button)
|
50 |
+
.then((result) => {
|
51 |
+
if (result.value) {
|
52 |
+
block = block_ui($(button).data('text-wait'));
|
53 |
+
$.get({
|
54 |
+
url: ajaxurl,
|
55 |
+
data: {
|
56 |
+
action: 'wp_reset_run_tool',
|
57 |
+
_ajax_nonce: wp_reset.nonce_run_tool,
|
58 |
+
tool: tool_name
|
59 |
+
}
|
60 |
+
}).always(function(data) {
|
61 |
+
swal.close();
|
62 |
+
}).done(function(data) {
|
63 |
+
if (data.success) {
|
64 |
+
msg = $(button).data('text-done').replace('%n', data.data);
|
65 |
+
swal({ type: 'success', title: msg });
|
66 |
+
} else {
|
67 |
+
swal({ type: 'error', title: wp_reset.undocumented_error });
|
68 |
+
}
|
69 |
+
}).fail(function(data) {
|
70 |
+
swal({ type: 'error', title: wp_reset.undocumented_error });
|
71 |
+
});
|
72 |
+
} // if confirmed
|
73 |
+
}
|
74 |
+
);
|
75 |
+
} // run_tool
|
76 |
+
|
77 |
+
|
78 |
+
// display a message while an action is performed
|
79 |
+
function block_ui(message) {
|
80 |
+
tmp = swal({ text: message,
|
81 |
+
type: false,
|
82 |
+
imageUrl: wp_reset.icon_url,
|
83 |
+
onOpen: () => { $(swal.getImage()).addClass('rotating'); },
|
84 |
+
imageWidth: 100,
|
85 |
+
imageHeight: 100,
|
86 |
+
imageAlt: message,
|
87 |
+
allowOutsideClick: false,
|
88 |
+
allowEscapeKey: false,
|
89 |
+
allowEnterKey: false,
|
90 |
+
showConfirmButton: false,
|
91 |
+
});
|
92 |
+
|
93 |
+
return tmp;
|
94 |
+
} // block_ui
|
95 |
+
|
96 |
+
|
97 |
+
// display dialog to confirm action
|
98 |
+
function confirm_action(title, question, btn_confirm, btn_cancel) {
|
99 |
+
tmp = swal({ title: title,
|
100 |
+
type: 'question',
|
101 |
+
html: question,
|
102 |
+
showCancelButton: true,
|
103 |
+
focusConfirm: false,
|
104 |
+
confirmButtonText: btn_confirm,
|
105 |
+
cancelButtonText: btn_cancel,
|
106 |
+
confirmButtonColor: '#dd3036',
|
107 |
+
width: 600
|
108 |
+
});
|
109 |
+
|
110 |
+
return tmp;
|
111 |
+
} // confirm_action
|
112 |
+
|
113 |
+
|
114 |
$('#wp_reset_form').on('submit', function(e, confirmed) {
|
115 |
if (!confirmed) {
|
116 |
$('#wp_reset_submit').trigger('click');
|
147 |
width: 600
|
148 |
}).then((result) => {
|
149 |
if (result.value === true) {
|
150 |
+
block_ui(wp_reset.doing_reset);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
$('#wp_reset_form').trigger('submit', true);
|
152 |
}
|
153 |
});
|
readme.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
=== WP Reset - Fastest WordPress Reset Plugin ===
|
2 |
Tags: wordpress reset, reset wordpress, reset database, reset wordpress database, reset, restart wordpress, clean wordpress, default wp, default wordpress, reset wp, wp reset, developer, wp-cli
|
3 |
-
Contributors: WebFactory, wpreset
|
4 |
Requires at least: 4.0
|
5 |
Requires PHP: 5.2
|
6 |
Tested up to: 4.9
|
7 |
-
Stable tag: 1.
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -17,6 +17,7 @@ For support please use the <a href="https://wordpress.org/support/plugin/wp-rese
|
|
17 |
|
18 |
Access WP Reset admin page via the "Tools" menu.
|
19 |
|
|
|
20 |
|
21 |
**Please read carefully before proceeding to understand what WP Reset does**
|
22 |
|
@@ -49,6 +50,15 @@ WP Reset comes with full WP-CLI support. Help on our WP-CLI commands is availabl
|
|
49 |
|
50 |
WP Reset has yet to be completely tested with multisite! Please be careful when using it with multisite enabled. We don't recommend to resetting the main site. Sub-sites should be OK. We're working on making WP Reset fully compatible with WP-MU. Till then please be careful. Thank you for understanding.
|
51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
|
53 |
== Installation ==
|
54 |
|
@@ -75,8 +85,16 @@ Or if needed, upload manually;
|
|
75 |
|
76 |
== Changelog ==
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
= v1.25 =
|
79 |
-
* 2018/07/
|
80 |
* code clean-up
|
81 |
* post-reset options - reactivate plugin, themes & WP Reset
|
82 |
* added WP-MU warning till we make WP Reset fully compatible with it
|
1 |
=== WP Reset - Fastest WordPress Reset Plugin ===
|
2 |
Tags: wordpress reset, reset wordpress, reset database, reset wordpress database, reset, restart wordpress, clean wordpress, default wp, default wordpress, reset wp, wp reset, developer, wp-cli
|
3 |
+
Contributors: WebFactory, wpreset, googlemapswidget
|
4 |
Requires at least: 4.0
|
5 |
Requires PHP: 5.2
|
6 |
Tested up to: 4.9
|
7 |
+
Stable tag: 1.30
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
17 |
|
18 |
Access WP Reset admin page via the "Tools" menu.
|
19 |
|
20 |
+
> WP Reset is proudly sponsored by <a target="_blank" href="https://ipgeolocation.io/">IP Geolocation</a>, a **premium GeoIP service for developers**. See how you can use their <a href="https://wpreset.com/geoip-transform-boring-data-better-user-experience/">GeoIP service</a> to make boring IP addresses more interesting for users. They offer <a href="https://ipgeolocation.io/signup">50,000 API requests a month FREE for developers</a>, and keep WP Reset updated, maintained & ad free.
|
21 |
|
22 |
**Please read carefully before proceeding to understand what WP Reset does**
|
23 |
|
50 |
|
51 |
WP Reset has yet to be completely tested with multisite! Please be careful when using it with multisite enabled. We don't recommend to resetting the main site. Sub-sites should be OK. We're working on making WP Reset fully compatible with WP-MU. Till then please be careful. Thank you for understanding.
|
52 |
|
53 |
+
#### Partial Reset Tools
|
54 |
+
|
55 |
+
Delete transients - deletes all transient related database entries. Including expired and non-expired transients, and orphaned timeout entries.
|
56 |
+
|
57 |
+
Delete plugins - deletes all plugins except WP Reset which remains active.
|
58 |
+
|
59 |
+
Delete themes - deletes all themes.
|
60 |
+
|
61 |
+
|
62 |
|
63 |
== Installation ==
|
64 |
|
85 |
|
86 |
== Changelog ==
|
87 |
|
88 |
+
= v1.30 =
|
89 |
+
* 2018/08/27
|
90 |
+
* more code clean-up
|
91 |
+
* added new reset params to WP-CLI
|
92 |
+
* big GUI changes
|
93 |
+
* started adding various tools; delete transients, delete all plugins, delete all themes
|
94 |
+
* we hit 50,000 installations on 2018/08/11 with 274,000 downloads
|
95 |
+
|
96 |
= v1.25 =
|
97 |
+
* 2018/07/30
|
98 |
* code clean-up
|
99 |
* post-reset options - reactivate plugin, themes & WP Reset
|
100 |
* added WP-MU warning till we make WP Reset fully compatible with it
|
wp-reset-cli.php
CHANGED
@@ -16,18 +16,28 @@ if (!defined('ABSPATH')) {
|
|
16 |
* Resets the site to the default values without modifying any files.
|
17 |
*/
|
18 |
class WP_Reset_CLI extends WP_CLI_Command {
|
|
|
19 |
/**
|
20 |
* Reset the site database to default values. No files are modified.
|
21 |
*
|
22 |
* ## OPTIONS
|
23 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
* [--yes]
|
25 |
* : Answer yes to the confirmation message.
|
26 |
*
|
27 |
* ## EXAMPLES
|
28 |
*
|
29 |
-
*
|
30 |
-
|
31 |
*
|
32 |
* @when after_wp_load
|
33 |
*/
|
@@ -35,7 +45,21 @@ class WP_Reset_CLI extends WP_CLI_Command {
|
|
35 |
WP_CLI::confirm( 'Are you sure you want to do this?', $assoc_args );
|
36 |
|
37 |
global $wp_reset;
|
38 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
if (is_wp_error($result)) {
|
40 |
WP_CLI::error( $result->get_error_message );
|
41 |
} else {
|
@@ -46,12 +70,13 @@ class WP_Reset_CLI extends WP_CLI_Command {
|
|
46 |
|
47 |
/**
|
48 |
* Display WP Reset version.
|
|
|
49 |
* @when after_wp_load
|
50 |
*/
|
51 |
function version( $_, $assoc_args ) {
|
52 |
global $wp_reset;
|
53 |
|
54 |
-
WP_CLI::line( 'WP Reset ' . $wp_reset->version );
|
55 |
} // version
|
56 |
} // WP_Reset_CLI
|
57 |
|
16 |
* Resets the site to the default values without modifying any files.
|
17 |
*/
|
18 |
class WP_Reset_CLI extends WP_CLI_Command {
|
19 |
+
|
20 |
/**
|
21 |
* Reset the site database to default values. No files are modified.
|
22 |
*
|
23 |
* ## OPTIONS
|
24 |
+
*
|
25 |
+
* [--reactivate-theme]
|
26 |
+
* : Reactivate currently active theme after reset.
|
27 |
+
*
|
28 |
+
* [--reactivate-plugins]
|
29 |
+
* : Reactivate all currently active plugins after reset.
|
30 |
+
*
|
31 |
+
* [--deactivate-wp-reset]
|
32 |
+
* : Deactivate WP Reset plugin after reset. By default it will stay active after reset.
|
33 |
+
*
|
34 |
* [--yes]
|
35 |
* : Answer yes to the confirmation message.
|
36 |
*
|
37 |
* ## EXAMPLES
|
38 |
*
|
39 |
+
* $ wp reset reset --yes
|
40 |
+
* Success: Database has been reset.
|
41 |
*
|
42 |
* @when after_wp_load
|
43 |
*/
|
45 |
WP_CLI::confirm( 'Are you sure you want to do this?', $assoc_args );
|
46 |
|
47 |
global $wp_reset;
|
48 |
+
$params = array();
|
49 |
+
|
50 |
+
if ( !empty( $assoc_args['reactivate-theme'] ) ) {
|
51 |
+
$params['reactivate_theme'] = true;
|
52 |
+
}
|
53 |
+
if ( !empty( $assoc_args['disable-wp-reset'] ) ) {
|
54 |
+
$params['reactivate_wpreset'] = false;
|
55 |
+
} else {
|
56 |
+
$params['reactivate_wpreset'] = true;
|
57 |
+
}
|
58 |
+
if ( !empty( $assoc_args['reactivate-plugins'] ) ) {
|
59 |
+
$params['reactivate_plugins'] = true;
|
60 |
+
}
|
61 |
+
|
62 |
+
$result = $wp_reset->do_reinstall( $params );
|
63 |
if (is_wp_error($result)) {
|
64 |
WP_CLI::error( $result->get_error_message );
|
65 |
} else {
|
70 |
|
71 |
/**
|
72 |
* Display WP Reset version.
|
73 |
+
*
|
74 |
* @when after_wp_load
|
75 |
*/
|
76 |
function version( $_, $assoc_args ) {
|
77 |
global $wp_reset;
|
78 |
|
79 |
+
WP_CLI::line( 'WP Reset v' . $wp_reset->version );
|
80 |
} // version
|
81 |
} // WP_Reset_CLI
|
82 |
|
wp-reset.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: WP Reset
|
4 |
Plugin URI: https://wpreset.com/
|
5 |
Description: Reset the site to default installation values without modifying any files. Deletes all customizations and content.
|
6 |
-
Version: 1.
|
7 |
Author: WebFactory Ltd
|
8 |
Author URI: https://www.webfactoryltd.com/
|
9 |
Text Domain: wp-reset
|
@@ -73,6 +73,7 @@ class WP_Reset {
|
|
73 |
add_action('admin_init', array($this, 'do_all_actions'));
|
74 |
add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
|
75 |
add_action('wp_ajax_wp_reset_dismiss_notice', array($this, 'ajax_dismiss_notice'));
|
|
|
76 |
|
77 |
add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'plugin_action_links'));
|
78 |
add_filter('plugin_row_meta', array($this, 'plugin_meta_links'), 10, 2);
|
@@ -144,7 +145,7 @@ class WP_Reset {
|
|
144 |
*/
|
145 |
function get_dismissed_notices($notice_name = '') {
|
146 |
$notices = $this->options['dismissed_notices'];
|
147 |
-
|
148 |
if (empty($notice_name)) {
|
149 |
return $notices;
|
150 |
} else {
|
@@ -228,12 +229,46 @@ class WP_Reset {
|
|
228 |
} // dismiss_notice
|
229 |
|
230 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
/**
|
232 |
* Enqueue CSS and JS files
|
233 |
*
|
234 |
* @return null
|
235 |
*/
|
236 |
function admin_enqueue_scripts($hook) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
// exit early if not on WP Reset page
|
238 |
if ('tools_page_wp-reset' != $hook) {
|
239 |
return;
|
@@ -255,11 +290,13 @@ class WP_Reset {
|
|
255 |
'confirm2' => __('Click "Cancel" to abort.', 'wp-reset'),
|
256 |
'doing_reset' => __('Resetting in progress. Please wait.', 'wp-reset'),
|
257 |
'nonce_dismiss_notice' => wp_create_nonce('wp-reset_dismiss_notice'),
|
|
|
258 |
'nonce_do_reset' => wp_create_nonce('wp-reset_do_reset'));
|
259 |
|
260 |
wp_enqueue_style('wp-reset', $this->plugin_url . 'css/wp-reset.css', array(), $this->version);
|
261 |
wp_enqueue_style('wp-reset-sweetalert2', $this->plugin_url . 'css/sweetalert2.min.css', array(), $this->version);
|
262 |
|
|
|
263 |
wp_enqueue_script('wp-reset-sweetalert2', $this->plugin_url . 'js/sweetalert2.min.js', array('jquery'), $this->version, true);
|
264 |
wp_enqueue_script('wp-reset', $this->plugin_url . 'js/wp-reset.js', array('jquery'), $this->version, true);
|
265 |
wp_localize_script('wp-reset', 'wp_reset', $js_localize);
|
@@ -280,6 +317,11 @@ class WP_Reset {
|
|
280 |
} // admin_enqueue_scripts
|
281 |
|
282 |
|
|
|
|
|
|
|
|
|
|
|
283 |
function is_cli_running() {
|
284 |
if (defined('WP_CLI') && WP_CLI) {
|
285 |
return true;
|
@@ -289,6 +331,107 @@ class WP_Reset {
|
|
289 |
} // is_cli_running
|
290 |
|
291 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
/**
|
293 |
* Reinstall / reset the WP site
|
294 |
* There are no failsafes in the function - it reinstalls when called
|
@@ -392,8 +535,10 @@ class WP_Reset {
|
|
392 |
|
393 |
|
394 |
/**
|
395 |
-
*
|
396 |
* todo: handle messages for various actions
|
|
|
|
|
397 |
*/
|
398 |
function do_all_actions() {
|
399 |
// only admins can perform actions
|
@@ -523,7 +668,6 @@ class WP_Reset {
|
|
523 |
* @return null
|
524 |
*/
|
525 |
function plugin_page() {
|
526 |
-
global $current_user, $wpdb;
|
527 |
$notice_shown = false;
|
528 |
$meta = $this->get_meta();
|
529 |
|
@@ -563,6 +707,42 @@ class WP_Reset {
|
|
563 |
$notice_shown = true;
|
564 |
}
|
565 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
566 |
echo '<div class="card" id="card-description">';
|
567 |
echo '<a class="toggle-card" href="#" title="' . __('Collapse / expand box', 'wp-reset') . '"><span class="dashicons dashicons-arrow-up-alt2"></span></a>';
|
568 |
echo '<h2>' . __('Please read carefully before proceeding. There is NO UNDO!', 'wp-reset') . '</h2>';
|
@@ -591,7 +771,7 @@ class WP_Reset {
|
|
591 |
echo '</ul>';
|
592 |
|
593 |
echo '<b>' . __('WP-CLI Support', 'wp-reset') . '</b>';
|
594 |
-
echo '<p>' . sprintf(__('All features available via GUI are available in WP-CLI as well. To get the list of commands run %s. Instead of the active user, the first user with admin privileges found in the database will be restored.', 'wp-reset'), '<code>wp help reset</code>');
|
595 |
echo sprintf(__('All actions have to be confirmed. If you want to skip confirmation use the standard %s option. Please be carefull - there is NO UNDO.', 'wp-reset'), '<code>--yes</code>') . '</p>';
|
596 |
echo '</div>';
|
597 |
|
@@ -607,19 +787,62 @@ class WP_Reset {
|
|
607 |
|
608 |
echo '<div class="card">';
|
609 |
echo '<h2>' . __('Reset', 'wp-reset') . '</h2>';
|
610 |
-
echo '<p>' . __('Type <b>reset</b> in the confirmation field to confirm the reset and then click the "Reset WordPress" button. <b>There is NO UNDO. No backups are made by
|
611 |
|
612 |
wp_nonce_field('wp-reset');
|
613 |
echo '<p><input id="wp_reset_confirm" type="text" name="wp_reset_confirm" placeholder="' . esc_attr__('Type in "reset"', 'wp-reset'). '" value="" autocomplete="off"> ';
|
614 |
echo '<input id="wp_reset_submit" type="button" class="button-primary" value="' . __('Reset WordPress', 'wp-reset') . '"></p>';
|
615 |
echo '</div>';
|
|
|
616 |
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
|
|
|
623 |
/**
|
624 |
* Helper function for generating UTM tagged links
|
625 |
*
|
3 |
Plugin Name: WP Reset
|
4 |
Plugin URI: https://wpreset.com/
|
5 |
Description: Reset the site to default installation values without modifying any files. Deletes all customizations and content.
|
6 |
+
Version: 1.30
|
7 |
Author: WebFactory Ltd
|
8 |
Author URI: https://www.webfactoryltd.com/
|
9 |
Text Domain: wp-reset
|
73 |
add_action('admin_init', array($this, 'do_all_actions'));
|
74 |
add_action('admin_enqueue_scripts', array($this, 'admin_enqueue_scripts'));
|
75 |
add_action('wp_ajax_wp_reset_dismiss_notice', array($this, 'ajax_dismiss_notice'));
|
76 |
+
add_action('wp_ajax_wp_reset_run_tool', array($this, 'ajax_run_tool'));
|
77 |
|
78 |
add_filter('plugin_action_links_' . plugin_basename(__FILE__), array($this, 'plugin_action_links'));
|
79 |
add_filter('plugin_row_meta', array($this, 'plugin_meta_links'), 10, 2);
|
145 |
*/
|
146 |
function get_dismissed_notices($notice_name = '') {
|
147 |
$notices = $this->options['dismissed_notices'];
|
148 |
+
|
149 |
if (empty($notice_name)) {
|
150 |
return $notices;
|
151 |
} else {
|
229 |
} // dismiss_notice
|
230 |
|
231 |
|
232 |
+
/**
|
233 |
+
* Returns all WP pointers
|
234 |
+
*
|
235 |
+
* @return array
|
236 |
+
*/
|
237 |
+
function get_pointers() {
|
238 |
+
$pointers = array();
|
239 |
+
|
240 |
+
$pointers['welcome'] = array('target' => '#menu-tools', 'edge' => 'left', 'align' => 'right', 'content' => 'Thank you for installing the <b style="font-weight: 800;">WP Reset</b> plugin!<br>Open <a href="' . admin_url('tools.php?page=wp-reset'). '">Tools - WP Reset</a> to access resetting tools and start developing & debugging faster.');
|
241 |
+
|
242 |
+
return $pointers;
|
243 |
+
} // get_pointers
|
244 |
+
|
245 |
+
|
246 |
/**
|
247 |
* Enqueue CSS and JS files
|
248 |
*
|
249 |
* @return null
|
250 |
*/
|
251 |
function admin_enqueue_scripts($hook) {
|
252 |
+
// welcome pointer is shown on all pages except WPR, untill dismissed
|
253 |
+
$pointers = $this->get_pointers();
|
254 |
+
$dismissed_notices = $this->get_dismissed_notices();
|
255 |
+
|
256 |
+
foreach ($dismissed_notices as $notice_name => $tmp) {
|
257 |
+
if ($tmp) {
|
258 |
+
unset($pointers[$notice_name]);
|
259 |
+
}
|
260 |
+
} // foreach
|
261 |
+
|
262 |
+
if (!empty($pointers) && 'tools_page_wp-reset' != $hook) {
|
263 |
+
$pointers['_nonce_dismiss_pointer'] = wp_create_nonce('wp-reset_dismiss_notice');
|
264 |
+
|
265 |
+
wp_enqueue_style('wp-pointer');
|
266 |
+
|
267 |
+
wp_enqueue_script('wp-reset-pointers', $this->plugin_url . 'js/wp-reset-pointers.js', array('jquery'), $this->version, true);
|
268 |
+
wp_enqueue_script('wp-pointer');
|
269 |
+
wp_localize_script('wp-pointer', 'wp_reset_pointers', $pointers);
|
270 |
+
}
|
271 |
+
|
272 |
// exit early if not on WP Reset page
|
273 |
if ('tools_page_wp-reset' != $hook) {
|
274 |
return;
|
290 |
'confirm2' => __('Click "Cancel" to abort.', 'wp-reset'),
|
291 |
'doing_reset' => __('Resetting in progress. Please wait.', 'wp-reset'),
|
292 |
'nonce_dismiss_notice' => wp_create_nonce('wp-reset_dismiss_notice'),
|
293 |
+
'nonce_run_tool' => wp_create_nonce('wp-reset_run_tool'),
|
294 |
'nonce_do_reset' => wp_create_nonce('wp-reset_do_reset'));
|
295 |
|
296 |
wp_enqueue_style('wp-reset', $this->plugin_url . 'css/wp-reset.css', array(), $this->version);
|
297 |
wp_enqueue_style('wp-reset-sweetalert2', $this->plugin_url . 'css/sweetalert2.min.css', array(), $this->version);
|
298 |
|
299 |
+
wp_enqueue_script('jquery-ui-tabs');
|
300 |
wp_enqueue_script('wp-reset-sweetalert2', $this->plugin_url . 'js/sweetalert2.min.js', array('jquery'), $this->version, true);
|
301 |
wp_enqueue_script('wp-reset', $this->plugin_url . 'js/wp-reset.js', array('jquery'), $this->version, true);
|
302 |
wp_localize_script('wp-reset', 'wp_reset', $js_localize);
|
317 |
} // admin_enqueue_scripts
|
318 |
|
319 |
|
320 |
+
/**
|
321 |
+
* Check if WP-CLI is available and running
|
322 |
+
*
|
323 |
+
* @return bool
|
324 |
+
*/
|
325 |
function is_cli_running() {
|
326 |
if (defined('WP_CLI') && WP_CLI) {
|
327 |
return true;
|
331 |
} // is_cli_running
|
332 |
|
333 |
|
334 |
+
/**
|
335 |
+
* Deletes all transients.
|
336 |
+
*
|
337 |
+
* @return int
|
338 |
+
*/
|
339 |
+
function do_delete_transients() {
|
340 |
+
global $wpdb;
|
341 |
+
|
342 |
+
$count = $wpdb->query("DELETE FROM $wpdb->options WHERE option_name LIKE '\_transient\_%' OR option_name LIKE '\_site\_transient\_%'");
|
343 |
+
|
344 |
+
return $count;
|
345 |
+
} // do_delete_transients
|
346 |
+
|
347 |
+
|
348 |
+
/**
|
349 |
+
* Deactivate and delete all plugins
|
350 |
+
*
|
351 |
+
* @param bool Keep WP Reset active and installed
|
352 |
+
* @param bool Skip individual plugin deactivation functions when deactivating
|
353 |
+
* @return int
|
354 |
+
*/
|
355 |
+
function do_delete_plugins($keep_wp_reset = true, $silent_deactivate = false) {
|
356 |
+
if (!function_exists('get_plugins')) {
|
357 |
+
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
358 |
+
}
|
359 |
+
|
360 |
+
$wp_reset_basename = plugin_basename(__FILE__);
|
361 |
+
|
362 |
+
$all_plugins = get_plugins();
|
363 |
+
$active_plugins = (array) get_option('active_plugins', array());
|
364 |
+
if (true == $keep_wp_reset) {
|
365 |
+
if (($key = array_search($wp_reset_basename, $active_plugins)) !== false) {
|
366 |
+
unset($active_plugins[$key]);
|
367 |
+
}
|
368 |
+
unset($all_plugins[$wp_reset_basename]);
|
369 |
+
}
|
370 |
+
|
371 |
+
if (!empty($active_plugins)) {
|
372 |
+
deactivate_plugins($active_plugins, $silent_deactivate, false);
|
373 |
+
}
|
374 |
+
|
375 |
+
if (!empty($all_plugins)) {
|
376 |
+
delete_plugins(array_keys($all_plugins));
|
377 |
+
}
|
378 |
+
|
379 |
+
return sizeof($all_plugins);
|
380 |
+
} // do_delete_plugins
|
381 |
+
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Delete all themes
|
385 |
+
*
|
386 |
+
* @param bool Keep default theme
|
387 |
+
* @return int
|
388 |
+
*/
|
389 |
+
function do_delete_themes($keep_default_theme = true) {
|
390 |
+
$default_theme = 'twentyseventeen';
|
391 |
+
$all_themes = wp_get_themes(array('errors' => null));
|
392 |
+
|
393 |
+
if (true == $keep_default_theme) {
|
394 |
+
unset($all_themes[$default_theme]);
|
395 |
+
}
|
396 |
+
|
397 |
+
foreach ($all_themes as $theme_slug => $theme_details) {
|
398 |
+
$res = delete_theme($theme_slug);
|
399 |
+
}
|
400 |
+
|
401 |
+
if (false == $keep_default_theme) {
|
402 |
+
update_option('template', '');
|
403 |
+
update_option('stylesheet', '');
|
404 |
+
}
|
405 |
+
|
406 |
+
return sizeof($all_themes);
|
407 |
+
} // do_delete_themes
|
408 |
+
|
409 |
+
|
410 |
+
/**
|
411 |
+
* Run tool via AJAX call
|
412 |
+
*
|
413 |
+
* @return null
|
414 |
+
*/
|
415 |
+
function ajax_run_tool() {
|
416 |
+
check_ajax_referer('wp-reset_run_tool');
|
417 |
+
|
418 |
+
$tool = trim(@$_GET['tool']);
|
419 |
+
|
420 |
+
if ($tool == 'delete_transients') {
|
421 |
+
$cnt = $this->do_delete_transients();
|
422 |
+
wp_send_json_success($cnt);
|
423 |
+
} elseif ($tool == 'delete_themes') {
|
424 |
+
$cnt = $this->do_delete_themes(false);
|
425 |
+
wp_send_json_success($cnt);
|
426 |
+
} elseif ($tool == 'delete_plugins') {
|
427 |
+
$cnt = $this->do_delete_plugins(true);
|
428 |
+
wp_send_json_success($cnt);
|
429 |
+
} else {
|
430 |
+
wp_send_json_error(__('Unknown tool.', 'wp-reset'));
|
431 |
+
}
|
432 |
+
} // ajax_run_tool
|
433 |
+
|
434 |
+
|
435 |
/**
|
436 |
* Reinstall / reset the WP site
|
437 |
* There are no failsafes in the function - it reinstalls when called
|
535 |
|
536 |
|
537 |
/**
|
538 |
+
* Checks wp_reset post value and performs all actions
|
539 |
* todo: handle messages for various actions
|
540 |
+
*
|
541 |
+
* @return null
|
542 |
*/
|
543 |
function do_all_actions() {
|
544 |
// only admins can perform actions
|
668 |
* @return null
|
669 |
*/
|
670 |
function plugin_page() {
|
|
|
671 |
$notice_shown = false;
|
672 |
$meta = $this->get_meta();
|
673 |
|
707 |
$notice_shown = true;
|
708 |
}
|
709 |
|
710 |
+
// tabs
|
711 |
+
echo '<div id="wp-reset-tabs" class' . __('="', 'wp-reset') . 'ui-tabs">';
|
712 |
+
|
713 |
+
echo '<ul class="wpr-main-tab">';
|
714 |
+
echo '<li><a href="#tab-reset">' . __('Reset', 'wp-reset') . '</a></li>';
|
715 |
+
echo '<li><a href="#tab-tools">' . __('Tools', 'wp-reset') . '</a></li>';
|
716 |
+
echo '<li><a href="#tab-support">' . __('Support', 'wp-reset') . '</a></li>';
|
717 |
+
echo '</ul>';
|
718 |
+
|
719 |
+
echo '<div style="display: none;" id="tab-reset">';
|
720 |
+
$this->tab_reset();
|
721 |
+
echo '</div>';
|
722 |
+
|
723 |
+
echo '<div style="display: none;" id="tab-tools">';
|
724 |
+
$this->tab_tools();
|
725 |
+
echo '</div>';
|
726 |
+
|
727 |
+
echo '<div style="display: none;" id="tab-support">';
|
728 |
+
$this->tab_support();
|
729 |
+
echo '</div>';
|
730 |
+
|
731 |
+
echo '</div>'; // tabs
|
732 |
+
|
733 |
+
echo '</form>';
|
734 |
+
echo '</div>'; // wrap
|
735 |
+
} // plugin_page
|
736 |
+
|
737 |
+
|
738 |
+
/**
|
739 |
+
* Echoes content for reset tab
|
740 |
+
*
|
741 |
+
* @return null
|
742 |
+
*/
|
743 |
+
private function tab_reset() {
|
744 |
+
global $current_user, $wpdb;
|
745 |
+
|
746 |
echo '<div class="card" id="card-description">';
|
747 |
echo '<a class="toggle-card" href="#" title="' . __('Collapse / expand box', 'wp-reset') . '"><span class="dashicons dashicons-arrow-up-alt2"></span></a>';
|
748 |
echo '<h2>' . __('Please read carefully before proceeding. There is NO UNDO!', 'wp-reset') . '</h2>';
|
771 |
echo '</ul>';
|
772 |
|
773 |
echo '<b>' . __('WP-CLI Support', 'wp-reset') . '</b>';
|
774 |
+
echo '<p>' . sprintf(__('All features available via GUI are available in WP-CLI as well. To get the list of commands run %s. Instead of the active user, the first user with admin privileges found in the database will be restored. ', 'wp-reset'), '<code>wp help reset</code>');
|
775 |
echo sprintf(__('All actions have to be confirmed. If you want to skip confirmation use the standard %s option. Please be carefull - there is NO UNDO.', 'wp-reset'), '<code>--yes</code>') . '</p>';
|
776 |
echo '</div>';
|
777 |
|
787 |
|
788 |
echo '<div class="card">';
|
789 |
echo '<h2>' . __('Reset', 'wp-reset') . '</h2>';
|
790 |
+
echo '<p>' . __('Type <b>reset</b> in the confirmation field to confirm the reset and then click the "Reset WordPress" button. <b>There is NO UNDO. No backups are made by WP Reset.</b>', 'wp-reset') . '</p>';
|
791 |
|
792 |
wp_nonce_field('wp-reset');
|
793 |
echo '<p><input id="wp_reset_confirm" type="text" name="wp_reset_confirm" placeholder="' . esc_attr__('Type in "reset"', 'wp-reset'). '" value="" autocomplete="off"> ';
|
794 |
echo '<input id="wp_reset_submit" type="button" class="button-primary" value="' . __('Reset WordPress', 'wp-reset') . '"></p>';
|
795 |
echo '</div>';
|
796 |
+
} // tab_reset
|
797 |
|
798 |
+
|
799 |
+
/**
|
800 |
+
* Echoes content for tools tab
|
801 |
+
*
|
802 |
+
* @return null
|
803 |
+
*/
|
804 |
+
private function tab_tools() {
|
805 |
+
$theme = wp_get_theme();
|
806 |
+
|
807 |
+
echo '<div class="card">';
|
808 |
+
echo '<h2>' . __('Transients', 'wp-reset') . '</h2>';
|
809 |
+
echo '<p>' . __('All transient related database entries will be deleted. Including expired and non-expired transients, and orphaned timeout entries. <b>There is NO UNDO. WP Reset will not make any backups.</b>', 'wp-reset') . '</p>';
|
810 |
+
echo '<p><a data-btn-confirm="Delete all transients" data-text-wait="Deleting transients. Please wait." data-text-confirm="All database entries related to transients will be deleted. There is NO UNDO. WP Reset will not make any backups." data-text-done="%n transient database entries have been deleted." class="button" href="#" id="delete-transients">Delete all transients</a></p>';
|
811 |
+
echo '</div>';
|
812 |
+
|
813 |
+
echo '<div class="card">';
|
814 |
+
echo '<h2>' . __('Themes', 'wp-reset') . '</h2>';
|
815 |
+
echo '<p>' . __('All themes will be deleted. Including the currently active theme - ' . $theme->get('Name') . '. <b>There is NO UNDO. WP Reset will not make any backups.</b>', 'wp-reset') . '</p>';
|
816 |
+
echo '<p><a data-btn-confirm="Delete all themes" data-text-wait="Deleting all themes. Please wait." data-text-confirm="All themes will be deleted. There is NO UNDO. WP Reset will not make any backups." data-text-done="%n themes have been deleted." class="button" href="#" id="delete-themes">Delete all themes</a></p>';
|
817 |
+
echo '</div>';
|
818 |
+
|
819 |
+
echo '<div class="card">';
|
820 |
+
echo '<h2>' . __('Plugins', 'wp-reset') . '</h2>';
|
821 |
+
echo '<p>' . __('Type <b>reset</b> in the confirmation field to confirm the reset and then click the "Reset WordPress" button. <b>There is NO UNDO. WP Reset will not make any backups.</b>', 'wp-reset') . '</p>';
|
822 |
+
echo '<p>WP Reset plugin will no be deleted or disabled.</p>';
|
823 |
+
echo '<p><a data-btn-confirm="Delete plugins" data-text-wait="Deleting plugins. Please wait." data-text-confirm="All plugins except WP Reset will be deleted. There is NO UNDO. WP Reset will not make any backups." data-text-done="%n plugins have been deleted." class="button" href="#" id="delete-plugins">Delete plugins</a></p>';
|
824 |
+
echo '</div>';
|
825 |
+
} // tab_tools
|
826 |
+
|
827 |
+
|
828 |
+
/**
|
829 |
+
* Echoes content for support tab
|
830 |
+
*
|
831 |
+
* @return null
|
832 |
+
*/
|
833 |
+
private function tab_support() {
|
834 |
+
echo '<div class="card">';
|
835 |
+
echo '<h2>' . __('Public support forum', 'wp-reset') . '</h2>';
|
836 |
+
echo '<p>' . __('We are very active on the <a href="https://wordpress.org/support/plugin/wp-reset" target="_blank">official WP Reset support forum</a>. If you found a bug, have a feature idea or just want to say hi - please drop by. We love to hear back from our users.', 'wp-reset') . '</p>';
|
837 |
+
echo '</div>';
|
838 |
+
|
839 |
+
echo '<div class="card">';
|
840 |
+
echo '<h2>' . __('Private contact', 'wp-reset') . '</h2>';
|
841 |
+
echo '<p>' . __('If there\'s a need to contact us privately send emails to <a href="mailto:wpreset@webfactoryltd.com">wpreset@webfactoryltd.com</a>. Please know that although we\'ll gladly have a look at issues you are having with any site, we can\'t promise we\'ll fix them. Thank you for understanding.', 'wp-reset') . '</p>';
|
842 |
+
echo '</div>';
|
843 |
+
} // tab_support
|
844 |
|
845 |
+
|
846 |
/**
|
847 |
* Helper function for generating UTM tagged links
|
848 |
*
|