WP_REST_Plugins_Controller
- Since
- 5.5.0
- Source
wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php:17
Core class to access plugins via the REST API.
Compatibility
- WordPress
- since 5.5.0
- 6.7.7
- 6.8.8
- 6.9.7
- 7.0.4
- 7.1.0
Present in every tracked release (6.7.7 to 7.1.0).
Hooks and filters fired · 2
Every hook that fires from inside WP_REST_Plugins_Controller, in the order it appears in the class, grouped by the method that fires it.
Methods · 26
- __construct()Plugins controller constructor.
- register_routes()Registers the routes for the plugins controller.
- get_items_permissions_check()Checks if a given request has access to get plugins.
- get_items()Retrieves a collection of plugins.
- get_item_permissions_check()Checks if a given request has access to get a specific plugin.
- get_item()Retrieves one plugin from the site.
- check_read_permission()Checks if the given plugin can be viewed by the current user.
- create_item_permissions_check()Checks if a given request has access to upload plugins.
- create_item()Uploads a plugin and optionally activates it.
- update_item_permissions_check()Checks if a given request has access to update a specific plugin.
- update_item()Updates one plugin.
- delete_item_permissions_check()Checks if a given request has access to delete a specific plugin.
- delete_item()Deletes one plugin from the site.
- prepare_item_for_response()Prepares the plugin for the REST response.
- prepare_links()Prepares links for the request.
- get_plugin_data()Gets the plugin header data for a plugin.
- get_plugin_status()Get's the activation status for a plugin.
- plugin_status_permission_check()Handle updating a plugin's status.
- handle_plugin_status()Handle updating a plugin's status.
- validate_plugin_param()Checks that the "plugin" parameter is a valid path.
- sanitize_plugin_param()Sanitizes the "plugin" parameter to be a proper plugin file with ".php" appended.
- does_plugin_match_request()Checks if the plugin matches the requested parameters.
- is_plugin_installed()Checks if the plugin is installed.
- is_filesystem_available()Determine if the endpoints are available.
- get_item_schema()Retrieves the plugin's schema, conforming to JSON Schema.
- get_collection_params()Retrieves the query params for the collections.
Source code
class WP_REST_Plugins_Controller extends WP_REST_Controller { const PATTERN = '[^.\/]+(?:\/[^.\/]+)?'; /** * Plugins controller constructor. * * @since 5.5.0 */ public function __construct() { $this->namespace = 'wp/v2'; $this->rest_base = 'plugins'; } /** * Registers the routes for the plugins controller. * * @since 5.5.0 */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_items' ), 'permission_callback' => array( $this, 'get_items_permissions_check' ), 'args' => $this->get_collection_params(), ), array( 'methods' => WP_REST_Server::CREATABLE, 'callback' => array( $this, 'create_item' ), 'permission_callback' => array( $this, 'create_item_permissions_check' ), 'args' => array( 'slug' => array( 'type' => 'string', 'required' => true, 'description' => __( 'WordPress.org plugin directory slug.' ), 'pattern' => '[\w\-]+', ), 'status' => array( 'description' => __( 'The plugin activation status.' ), 'type' => 'string', 'enum' => is_multisite() ? array( 'inactive', 'active', 'network-active' ) : array( 'inactive', 'active' ), 'default' => 'inactive', ), ), ), 'schema' => array( $this, 'get_public_item_schema' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base . '/(?P<plugin>' . self::PATTERN . ')', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_item' ), 'permission_callback' => array( $this, 'get_item_permissions_check' ), ), array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => array( $this, 'update_item' ), 'permission_callback' => array( $this, 'update_item_permissions_check' ), 'args' => $this->get_endpoint_args_for_item_schema( WP_REST_Server::EDITABLE ), ), array( 'methods' => WP_REST_Server::DELETABLE, 'callback' => array( $this, 'delete_item' ), 'permission_callback' => array( $this, 'delete_item_permissions_check' ), ), 'args' => array( 'context' => $this->get_context_param( array( 'default' => 'view' ) ), 'plugin' => array( 'type' => 'string', 'pattern' => self::PATTERN, 'validate_callback' => array( $this, 'validate_plugin_param' ), 'sanitize_callback' => array( $this, 'sanitize_plugin_param' ),Changelog
Introduced in 5.5.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 6.8.8 tag, from
src/wp-includes/rest-api/endpoints/class-wp-rest-plugins-controller.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.