WP_REST_Posts_Controller::update_item_permissions_check PHP Method

update_item_permissions_check() public method

Checks if a given request has access to update a post.
Since: 4.7.0
public update_item_permissions_check ( WP_REST_Request $request ) : true | WP_Error
$request WP_REST_Request Full details about the request.
return true | WP_Error True if the request has access to update the item, WP_Error object otherwise.
    public function update_item_permissions_check($request)
    {
        $post = get_post($request['id']);
        $post_type = get_post_type_object($this->post_type);
        if ($post && !$this->check_update_permission($post)) {
            return new WP_Error('rest_cannot_edit', __('Sorry, you are not allowed to edit this post.'), array('status' => rest_authorization_required_code()));
        }
        if (!empty($request['author']) && get_current_user_id() !== $request['author'] && !current_user_can($post_type->cap->edit_others_posts)) {
            return new WP_Error('rest_cannot_edit_others', __('Sorry, you are not allowed to update posts as this user.'), array('status' => rest_authorization_required_code()));
        }
        if (!empty($request['sticky']) && !current_user_can($post_type->cap->edit_others_posts)) {
            return new WP_Error('rest_cannot_assign_sticky', __('Sorry, you are not allowed to make posts sticky.'), array('status' => rest_authorization_required_code()));
        }
        if (!$this->check_assign_terms_permission($request)) {
            return new WP_Error('rest_cannot_assign_term', __('Sorry, you are not allowed to assign the provided terms.'), array('status' => rest_authorization_required_code()));
        }
        return true;
    }