← All changes
|
backend/src/Services/Integrations/PluginInstaller.php
+20
-6
0.6.1.1
→
1.5
View file →
| @@ -18,9 +18,10 @@ | ||
| 18 | 18 | * |
| 19 | 19 | * @var array<string, string> |
| 20 | 20 | */ |
| 21 | 21 | private array $allowedPlugins = [ |
| 22 | - 'wpdatatables' => 'wpdatatables/wpdatatables.php', | |
| 22 | + 'wpdatatables' => 'wpdatatables/wpdatatables.php', | |
| 23 | + 'ameliabooking' => 'ameliabooking/ameliabooking.php', | |
| 23 | 24 | ]; |
| 24 | 25 | |
| 25 | 26 | /** |
| 26 | 27 | * Check if plugin is allowed to be installed |
| @@ -58,8 +59,26 @@ | ||
| 58 | 59 | return file_exists(WP_PLUGIN_DIR . '/' . $pluginFile); |
| 59 | 60 | } |
| 60 | 61 | |
| 61 | 62 | /** |
| 63 | + * Check if plugin is active | |
| 64 | + * | |
| 65 | + * @param string $pluginSlug | |
| 66 | + * | |
| 67 | + * @return bool | |
| 68 | + */ | |
| 69 | + public function isPluginActive(string $pluginSlug): bool | |
| 70 | + { | |
| 71 | + if (!function_exists('is_plugin_active')) { | |
| 72 | + require_once ABSPATH . 'wp-admin/includes/plugin.php'; | |
| 73 | + } | |
| 74 | + | |
| 75 | + $pluginFile = self::getPluginFile($pluginSlug); | |
| 76 | + | |
| 77 | + return $pluginFile !== null && is_plugin_active($pluginFile); | |
| 78 | + } | |
| 79 | + | |
| 80 | + /** | |
| 62 | 81 | * Activate a plugin |
| 63 | 82 | * |
| 64 | 83 | * @param string $pluginFile |
| 65 | 84 | * |
| @@ -79,9 +98,8 @@ | ||
| 79 | 98 | */ |
| 80 | 99 | public function getPluginInfo(string $pluginSlug) |
| 81 | 100 | { |
| 82 | 101 | if (!function_exists('plugins_api')) { |
| 83 | - // @phpstan-ignore-next-line | |
| 84 | 102 | require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; |
| 85 | 103 | } |
| 86 | 104 | |
| 87 | 105 | return plugins_api('plugin_information', [ |
| @@ -127,21 +145,17 @@ | ||
| 127 | 145 | private function loadRequiredFiles(): void |
| 128 | 146 | { |
| 129 | 147 | // phpcs:disable |
| 130 | 148 | if (file_exists(ABSPATH . 'wp-admin/includes/file.php')) { |
| 131 | - /** @phpstan-ignore-next-line */ | |
| 132 | 149 | require_once ABSPATH . 'wp-admin/includes/file.php'; |
| 133 | 150 | } |
| 134 | 151 | if (file_exists(ABSPATH . 'wp-admin/includes/misc.php')) { |
| 135 | - /** @phpstan-ignore-next-line */ | |
| 136 | 152 | require_once ABSPATH . 'wp-admin/includes/misc.php'; |
| 137 | 153 | } |
| 138 | 154 | if (file_exists(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php')) { |
| 139 | - /** @phpstan-ignore-next-line */ | |
| 140 | 155 | require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'; |
| 141 | 156 | } |
| 142 | 157 | if (file_exists(ABSPATH . 'wp-admin/includes/plugin-install.php')) { |
| 143 | - /** @phpstan-ignore-next-line */ | |
| 144 | 158 | require_once ABSPATH . 'wp-admin/includes/plugin-install.php'; |
| 145 | 159 | } |
| 146 | 160 | // phpcs:enable |
| 147 | 161 | } |