v2.0.0: add includes/Tools/PluginTools.php
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
namespace AskTamMCP\Tools;
|
||||
defined('ABSPATH') || exit;
|
||||
|
||||
class PluginTools {
|
||||
public static function listPlugins(array $args): array {
|
||||
if (!function_exists('get_plugins')) require_once ABSPATH.'wp-admin/includes/plugin.php';
|
||||
$all = get_plugins();
|
||||
$active = get_option('active_plugins',[]);
|
||||
$status = $args['status'] ?? 'all';
|
||||
$result = [];
|
||||
foreach ($all as $file => $data) {
|
||||
$isActive = in_array($file, $active, true);
|
||||
if ($status === 'active' && !$isActive) continue;
|
||||
if ($status === 'inactive' && $isActive) continue;
|
||||
$result[] = ['file'=>$file,'name'=>$data['Name'],'version'=>$data['Version'],'active'=>$isActive,'description'=>$data['Description']];
|
||||
}
|
||||
return ['plugins'=>$result,'total'=>count($result)];
|
||||
}
|
||||
public static function activatePlugin(array $args): array {
|
||||
if (!function_exists('activate_plugin')) require_once ABSPATH.'wp-admin/includes/plugin.php';
|
||||
$r = activate_plugin($args['plugin']);
|
||||
if (is_wp_error($r)) throw new \RuntimeException($r->get_error_message());
|
||||
return ['plugin'=>$args['plugin'],'activated'=>true];
|
||||
}
|
||||
public static function deactivatePlugin(array $args): array {
|
||||
if (!function_exists('deactivate_plugins')) require_once ABSPATH.'wp-admin/includes/plugin.php';
|
||||
deactivate_plugins($args['plugin']);
|
||||
return ['plugin'=>$args['plugin'],'deactivated'=>true];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user