roles : []; return Comparators_Checker::check_array_contains( $args['comparator'], $current_user_roles, $args['roles'] ); } public function get_options() { $user_roles = $this->get_available_roles(); $comparators = Comparator_Provider::get_comparators( [ Comparator_Provider::COMPARATOR_IS_ONE_OF, Comparator_Provider::COMPARATOR_IS_NONE_OF, ] ); $this->add_control( 'comparator', [ 'type' => Controls_Manager::SELECT, 'options' => $comparators, 'default' => Comparator_Provider::COMPARATOR_IS_ONE_OF, ] ); $this->add_control( self::CONDITION_KEY, [ 'type' => Controls_Manager::SELECT2, 'options' => $user_roles, 'multiple' => true, 'required' => true, 'default' => [], ] ); } private function get_available_roles(): array { $user_roles = []; foreach ( get_editable_roles() as $role_slug => $role_data ) { $role = $role_data['name']; $user_roles[ $role_slug ] = esc_html( $role ); } return $user_roles; } }