get_route( WP_REST_Server::READABLE, 'route_status' ), $this->get_route( WP_REST_Server::EDITABLE, 'route_fixit' ), ) ); register_rest_route( $namespace, '/plugin/delete', array( $this->get_route( WP_REST_Server::EDITABLE, 'route_delete' ), ) ); register_rest_route( $namespace, '/plugin/test', array( $this->get_route( WP_REST_Server::EDITABLE, 'route_test' ), ) ); } public function route_status( WP_REST_Request $request ) { include_once dirname( REDIRECTION_FILE ) . '/models/fixer.php'; $fixer = new Red_Fixer(); return $fixer->get_status(); } public function route_fixit( WP_REST_Request $request ) { include_once dirname( REDIRECTION_FILE ) . '/models/fixer.php'; $fixer = new Red_Fixer(); return $fixer->fix( $fixer->get_status() ); } public function route_delete() { if ( is_multisite() ) { return $this->getError( 'Multisite installations must delete the plugin from the network admin', __LINE__ ); } $plugin = Redirection_Admin::init(); $plugin->plugin_uninstall(); $current = get_option( 'active_plugins' ); array_splice( $current, array_search( basename( dirname( REDIRECTION_FILE ) ) . '/' . basename( REDIRECTION_FILE ), $current ), 1 ); update_option( 'active_plugins', $current ); return array( 'location' => admin_url() . 'plugins.php' ); } public function route_test() { return array( 'success' => true, ); } }