get_prefs_map( $user->user_login ); ?>

get_user_repository(); // Save default_access $access = isset( $_POST['webcal_default_access'] ) && is_string( $_POST['webcal_default_access'] ) ? sanitize_text_field( wp_unslash( $_POST['webcal_default_access'] ) ) : 'P'; if ( in_array( $access, [ 'P', 'C', 'R' ], true ) ) { $user_repo->savePreference( $user->user_login, new UserPreference( 'default_access', $access ) ); } // Save single_event_pages $sep = isset( $_POST['webcal_single_event_pages'] ) && is_string( $_POST['webcal_single_event_pages'] ) ? sanitize_text_field( wp_unslash( $_POST['webcal_single_event_pages'] ) ) : 'on'; if ( in_array( $sep, [ 'on', 'off' ], true ) ) { $user_repo->savePreference( $user->user_login, new UserPreference( 'single_event_pages', $sep ) ); } } /** * Get the current preferences as a map with defaults. * * @param string $login User login. * @return array{default_access: string, single_event_pages: string} */ private function get_prefs_map( string $login ): array { $defaults = [ 'default_access' => 'P', 'single_event_pages' => 'on', ]; try { $user_repo = Container::get_instance()->get_user_repository(); $prefs = $user_repo->getPreferences( $login ); foreach ( $prefs as $pref ) { if ( isset( $defaults[ $pref->key() ] ) ) { $defaults[ $pref->key() ] = $pref->value(); } } } catch ( \Exception $e ) { // Use defaults on failure } return $defaults; } }