conditions_manager = $conditions_manager; $this->set_and_conditions( $sets ); } public function check() { if ( empty( $this->and_conditions ) ) { return true; } foreach ( $this->and_conditions as $condition ) { if ( $condition->check() ) { return true; } } return false; } private function set_and_conditions( $groups ) { $this->and_conditions = array_map( function ( $condition ) { return new And_Condition( $this->conditions_manager, $condition ); }, $groups ); } }