WP_REST_Posts_Controller::check_assign_terms_permission PHP Method

check_assign_terms_permission() protected method

Checks whether current user can assign all terms sent with the current request.
Since: 4.7.0
protected check_assign_terms_permission ( WP_REST_Request $request ) : boolean
$request WP_REST_Request The request object with post and terms data.
return boolean Whether the current user can assign the provided terms.
    protected function check_assign_terms_permission($request)
    {
        $taxonomies = wp_list_filter(get_object_taxonomies($this->post_type, 'objects'), array('show_in_rest' => true));
        foreach ($taxonomies as $taxonomy) {
            $base = !empty($taxonomy->rest_base) ? $taxonomy->rest_base : $taxonomy->name;
            if (!isset($request[$base])) {
                continue;
            }
            foreach ($request[$base] as $term_id) {
                // Invalid terms will be rejected later.
                if (!get_term($term_id, $taxonomy->name)) {
                    continue;
                }
                if (!current_user_can('assign_term', (int) $term_id)) {
                    return false;
                }
            }
        }
        return true;
    }