WP_REST_Themes_Controller::get_item_permissions_check()publicWP 5.7.0

Checks if a given request has access to read the theme.

Method of the class: WP_REST_Themes_Controller{}

No Hooks.

Return

true|WP_Error. True if the request has read access for the item, otherwise WP_Error object.

Usage

$WP_REST_Themes_Controller = new WP_REST_Themes_Controller();
$WP_REST_Themes_Controller->get_item_permissions_check( $request );
$request(WP_REST_Request) (required)
Full details about the request.

Changelog

Since 5.7.0 Introduced.

WP_REST_Themes_Controller::get_item_permissions_check() code WP 6.5.2

public function get_item_permissions_check( $request ) {
	if ( current_user_can( 'switch_themes' ) || current_user_can( 'manage_network_themes' ) ) {
		return true;
	}

	$wp_theme      = wp_get_theme( $request['stylesheet'] );
	$current_theme = wp_get_theme();

	if ( $this->is_same_theme( $wp_theme, $current_theme ) ) {
		return $this->check_read_active_theme_permission();
	}

	return new WP_Error(
		'rest_cannot_view_themes',
		__( 'Sorry, you are not allowed to view themes.' ),
		array( 'status' => rest_authorization_required_code() )
	);
}