$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]; } }