PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backups, Restore, Migration & Clone / trunk
WP STAGING – WordPress Backups, Restore, Migration & Clone vtrunk
4.11.1 4.11.0 4.10.0 4.9.5 4.9.4 4.9.3 4.9.2 4.9.1 4.9.0 4.8.1 trunk 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.10.0 3.2.0 3.3.1 3.3.2 3.3.3 3.4.1 3.4.3 3.5.0 3.6.0 3.7.1 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.8.6 3.8.7 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.0 4.7.0 4.7.1 4.7.2 4.7.3 4.8.0
wp-staging / commonBootstrap.php
wp-staging Last commit date
Backend 2 days ago Backup 2 days ago Basic 6 days ago Component 6 days ago Core 2 days ago Framework 2 days ago Frontend 6 days ago Notifications 6 days ago Staging 2 days ago assets 2 days ago languages 6 days ago resources 6 days ago vendor_wpstg 6 days ago views 2 days ago CONTRIBUTING.md 2 years ago Deactivate.php 6 days ago README.md 5 months ago SECURITY.md 4 weeks ago autoloader.php 6 days ago bootstrap.php 6 days ago commonBootstrap.php 6 days ago constantsFree.php 2 days ago freeBootstrap.php 6 days ago install.php 6 days ago opcacheBootstrap.php 2 days ago readme.txt 2 days ago runtimeRequirements.php 6 days ago uninstall.php 2 days ago wp-staging-error-handler.php 6 days ago wp-staging.php 2 days ago
commonBootstrap.php
203 lines
1 <?php
2
3 if (!function_exists('wpstgIsAdminActionRequest')) {
4
5
6
7
8 function wpstgIsAdminActionRequest(string $requestUri): bool
9 {
10 $requestPath = (string)parse_url($requestUri, PHP_URL_PATH);
11
12 return strpos($requestPath, '/wp-admin/admin-ajax.php') !== false
13 || strpos($requestPath, '/wp-admin/admin-post.php') !== false;
14 }
15 }
16
17 if (!function_exists('wpstgIsPluginAction')) {
18
19
20
21
22 function wpstgIsPluginAction(string $action): bool
23 {
24 return strpos($action, 'wpstg') === 0 || strpos($action, 'raw_wpstg') === 0;
25 }
26 }
27
28 if (!function_exists('wpstgGetRequestAction')) {
29
30
31
32 function wpstgGetRequestAction(): string
33 {
34 if (isset($_GET['action'])) {
35 $action = sanitize_key($_GET['action']);
36 } elseif (isset($_POST['action'])) {
37 $action = sanitize_key($_POST['action']);
38 } elseif (isset($_REQUEST['action'])) {
39 $action = sanitize_key($_REQUEST['action']);
40 } else {
41 $action = '';
42 }
43
44 if (!is_scalar($action)) {
45 return '';
46 }
47
48 return sanitize_key(wp_unslash((string) $action));
49 }
50 }
51
52 if (!function_exists('wpstgIsPluginRestRoute')) {
53
54
55
56
57 function wpstgIsPluginRestRoute(string $route): bool
58 {
59 $route = ltrim($route, '/');
60
61 return $route === 'wpstg/v1' || strpos($route, 'wpstg/v1/') === 0;
62 }
63 }
64
65 if (!function_exists('wpstgGetPrettyRestRoute')) {
66
67
68
69
70 function wpstgGetPrettyRestRoute(string $requestUri): string
71 {
72 $requestPath = (string)parse_url($requestUri, PHP_URL_PATH);
73 if ($requestPath === '') {
74 return '';
75 }
76
77
78
79 $restPrefix = '/' . trim(apply_filters('rest_url_prefix', 'wp-json'), '/') . '/';
80 $prefixPosition = strpos($requestPath, $restPrefix);
81 if ($prefixPosition === false) {
82 return '';
83 }
84
85 return ltrim(substr($requestPath, $prefixPosition + strlen($restPrefix)), '/');
86 }
87 }
88
89 if (!function_exists('wpstgIsRestRequest')) {
90
91
92
93
94 function wpstgIsRestRequest(string $requestUri): bool
95 {
96 if (wpstgGetPrettyRestRoute($requestUri) !== '') {
97 return true;
98 }
99
100 return !empty($_GET['rest_route']);
101 }
102 }
103
104 if (!function_exists('wpstgIsPluginRestRequest')) {
105
106
107
108
109 function wpstgIsPluginRestRequest(string $requestUri): bool
110 {
111 $prettyRoute = wpstgGetPrettyRestRoute($requestUri);
112 if ($prettyRoute !== '') {
113 return wpstgIsPluginRestRoute($prettyRoute);
114 }
115
116 if (empty($_GET['rest_route'])) {
117 return false;
118 }
119
120 $restRoute = sanitize_text_field(wp_unslash($_GET['rest_route']));
121
122 return wpstgIsPluginRestRoute($restRoute);
123 }
124 }
125
126 if (!function_exists('wpstgIsStagingSite')) {
127
128
129
130
131
132 function wpstgIsStagingSite(string $stagingMarkerFileName = '.wp-staging', string $stagingSiteOptionName = 'wpstg_is_staging_site'): bool
133 {
134 if (defined('WPSTAGING_DEV_SITE') && WPSTAGING_DEV_SITE === true) {
135 return true;
136 }
137
138 if (get_option($stagingSiteOptionName) === 'true') {
139 return true;
140 }
141
142 return file_exists(ABSPATH . $stagingMarkerFileName);
143 }
144 }
145
146 if (!function_exists('wpstgShouldSkipBootstrap')) {
147 function wpstgShouldSkipBootstrap(): bool
148 {
149 if (defined('WP_INSTALLING') && WP_INSTALLING) {
150 return false;
151 }
152
153 if (defined('DOING_CRON') && DOING_CRON) {
154 return false;
155 }
156
157 if (defined('WP_CLI') && WP_CLI) {
158 return false;
159 }
160
161 $requestUri = isset($_SERVER['REQUEST_URI']) ? sanitize_text_field(wp_unslash($_SERVER['REQUEST_URI'])) : '';
162
163
164 if (strpos($requestUri, '/wp-login.php') !== false) {
165 return false;
166 }
167
168
169 $action = wpstgGetRequestAction();
170 if (
171 !empty($_GET['wpstg_login']) ||
172 !empty($_GET['wpstg_staging_login']) ||
173 wpstgIsPluginAction($action)
174 ) {
175 return false;
176 }
177
178
179 if (wpstgIsStagingSite()) {
180 return false;
181 }
182
183
184 if (php_sapi_name() === 'cli') {
185 return false;
186 }
187
188 if (wpstgIsAdminActionRequest($requestUri)) {
189 return !wpstgIsPluginAction($action);
190 }
191
192 if (is_admin()) {
193 return false;
194 }
195
196 if (wpstgIsRestRequest($requestUri)) {
197 return !wpstgIsPluginRestRequest($requestUri);
198 }
199
200 return true;
201 }
202 }
203