0 ? $user_id : get_current_user_id(); if ($user_id <= 0) { return self::ADVANCED; } $stored = (string) get_user_meta($user_id, self::META_KEY, true); return in_array($stored, self::MODES, true) ? $stored : self::ADVANCED; } /** * Store a user's mode and return what was stored. * * @param string $mode One of MODES. * @param int $user_id User id; the current user when 0. * @return string|null The stored mode, or null for an unknown mode or no user. */ public static function set(string $mode, int $user_id = 0): ?string { $user_id = $user_id > 0 ? $user_id : get_current_user_id(); if ($user_id <= 0 || !in_array($mode, self::MODES, true)) { return null; } update_user_meta($user_id, self::META_KEY, $mode); return self::get($user_id); } }