PluginProbe ʕ •ᴥ•ʔ
WP STAGING – WordPress Backup, Restore, Migration & Clone / 4.3.0
WP STAGING – WordPress Backup, Restore, Migration & Clone v4.3.0
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 / freeBootstrap.php
wp-staging Last commit date
Backend 10 months ago Backup 10 months ago Basic 11 months ago Core 10 months ago Framework 10 months ago Frontend 11 months ago Notifications 1 year ago Staging 10 months ago assets 10 months ago languages 1 year ago resources 1 year ago vendor_wpstg 10 months ago views 10 months ago CLAUDE.md 10 months ago CONTRIBUTING.md 1 year ago Deactivate.php 10 months ago README.md 1 year ago SECURITY.md 2 years ago autoloader.php 3 years ago bootstrap.php 1 year ago constantsFree.php 10 months ago freeBootstrap.php 1 year ago install.php 1 year ago opcacheBootstrap.php 10 months ago readme.txt 10 months ago runtimeRequirements.php 1 year ago uninstall.php 11 months ago wp-staging-error-handler.php 1 year ago wp-staging.php 10 months ago
freeBootstrap.php
99 lines
1 <?php
2
3 if (!function_exists('wpstgHandleMissingRequiredFile')) {
4 /**
5 * @param string $filePath
6 */
7 function wpstgHandleMissingRequiredFile(string $filePath)
8 {
9 $errorMessage = sprintf("WP STAGING WARNING: Attempted to require missing file: %s.", esc_html($filePath));
10 if (defined('WPSTG_DEBUG') && (bool)WPSTG_DEBUG) {
11 error_log($errorMessage);
12 }
13
14 if (defined('WPSTGPRO_VERSION')) {
15 return;
16 }
17
18 add_action('admin_notices', function () use ($errorMessage) {
19 $errorMessage = "$errorMessage Please contact support@wp-staging.com for help!";
20 echo '<div class="notice notice-error is-dismissible"><p>' . esc_html($errorMessage) . '</p></div>';
21 });
22
23 return;
24 }
25 }
26
27 /**
28 * The purpose of the pre-bootstrap process is to make sure the environment is able to run
29 * the plugin without any errors, such as making sure there are no other WPSTAGING instances
30 * active at the same time.
31 *
32 * It works at a low level, without the autoloader, using anonymous callbacks and local variables
33 * to make sure we always use and execute the expected code.
34 *
35 * Since it uses closures, you can't dequeue those actions, but this is expected.
36 *
37 * @var string $pluginFilePath The absolute path to the main file of this plugin.
38 */
39 $pluginFilePath = empty($pluginFilePath) ? '' : $pluginFilePath;
40
41 add_action('plugins_loaded', function () use ($pluginFilePath) {
42 // Unused $pluginFilePath: Other code will fail if removed it
43 try {
44 $files = [
45 __DIR__ . '/runtimeRequirements.php',
46 __DIR__ . '/bootstrap.php',
47 ];
48
49 foreach ($files as $file) {
50 if (file_exists($file)) {
51 require_once $file;
52 } else {
53 wpstgHandleMissingRequiredFile($file);
54 }
55 }
56 } catch (Exception $e) {
57 if (defined('WPSTG_DEBUG') && WPSTG_DEBUG) {
58 error_log('WP STAGING: ' . $e->getMessage());
59 }
60 }
61 }, 11, 0); // The priority of this hook must be larger than 10 for the runtime requirement check to detect older versions of WPSTAGING.
62
63 register_activation_hook($pluginFilePath, function () use ($pluginFilePath) {
64 // Unused $pluginFilePath: Other code will fail if removed it
65
66 try {
67 $files = [
68 __DIR__ . '/runtimeRequirements.php',
69 __DIR__ . '/bootstrap.php',
70 __DIR__ . '/install.php',
71 ];
72
73 foreach ($files as $file) {
74 if (file_exists($file)) {
75 require_once $file;
76 } else {
77 wpstgHandleMissingRequiredFile($file);
78 }
79 }
80 } catch (Exception $e) {
81 if (defined('WPSTG_DEBUG') && WPSTG_DEBUG) {
82 error_log('WP STAGING: ' . $e->getMessage());
83 }
84 }
85 });
86
87 register_deactivation_hook($pluginFilePath, function () use ($pluginFilePath) {
88 if (!class_exists('WPStaging\Deactivate')) {
89 $file = __DIR__ . '/Deactivate.php';
90 if (file_exists($file)) {
91 require_once $file;
92 } else {
93 wpstgHandleMissingRequiredFile($file);
94 }
95 }
96
97 new WPStaging\Deactivate($pluginFilePath);
98 });
99