api = $dep; $this->fileManager = $fileManager; } /** * Run bulk or single action * * @return void */ public function runAction() { $option = isset($_REQUEST['option'])? $_REQUEST['option'] : null; $plugin = isset($_REQUEST['value'])? $_REQUEST['value'] : null; if ($option && $plugin) { $plugin = urldecode($plugin); switch ($option) { case 'activate': $callback = array($this->api, 'activatePlugin'); break; case 'install': $callback = array($this->api, 'installPlugin'); break; case 'deactivate': $callback = array($this->api, 'deactivatePlugin'); break; case 'activate_theme': $callback = array($this->api, 'activateTheme'); break; default: $callback = array(); } if (is_callable($callback)) { $result = call_user_func($callback, $plugin); if (!$result) { $response['success'] = false; $response['errorMessage'] = __('Plugin installation failed.'); } elseif ($result instanceof \WP_Error) { $response['success'] = false; $response['errorMessage'] = $result->get_error_message(); } else { $response['success'] = true; } echo json_encode($response); wp_die(); } } } }