- if ( $saved > $last_time ) {
- update_user_option( $user->ID, 'user-settings', $cookie, false );
- update_user_option( $user->ID, 'user-settings-time', time() - 5, false );
- return;
- }
+ $last_saved = (int) get_user_option( 'user-settings-time', $user_id );
+ $current = isset( $_COOKIE['wp-settings-time-' . $user_id]) ? preg_replace( '/[^0-9]/', '', $_COOKIE['wp-settings-time-' . $user_id] ) : 0;
+
+ // The cookie is newer than the saved value. Update the user_option and leave the cookie as-is
+ if ( $current > $last_saved ) {
+ update_user_option( $user_id, 'user-settings', $cookie, false );
+ update_user_option( $user_id, 'user-settings-time', time() - 5, false );
+ return;