wpseek.com
A WordPress-centric search engine for devs and theme authors
wp_user_settings › WordPress Function
Since2.7.0
Deprecatedn/a
› wp_user_settings ( No parameters )
Defined at: |
|
Codex: |
Saves and restores user interface settings stored in a cookie.
Checks if the current user-settings cookie is updated and stores it. When no cookie exists (different browser used), adds the last saved cookie restoring the settings.Related Functions: set_user_setting, get_user_setting, wp_set_all_user_settings, wp_heartbeat_settings, get_all_user_settings
Source
function wp_user_settings() {
if ( ! is_admin() || wp_doing_ajax() ) {
return;
}
$user_id = get_current_user_id();
if ( ! $user_id ) {
return;
}
if ( ! is_user_member_of_blog() ) {
return;
}
$settings = (string) get_user_option( 'user-settings', $user_id );
if ( isset( $_COOKIE[ 'wp-settings-' . $user_id ] ) ) {
$cookie = preg_replace( '/[^A-Za-z0-9=&_]/', '', $_COOKIE[ 'wp-settings-' . $user_id ] );
// No change or both empty.
if ( $cookie === $settings ) {
return;
}
$last_saved = (int) get_user_option( 'user-settings-time', $user_id );
$current = 0;
if ( isset( $_COOKIE[ 'wp-settings-time-' . $user_id ] ) ) {
$current = (int) preg_replace( '/[^0-9]/', '', $_COOKIE[ 'wp-settings-time-' . $user_id ] );
}
// 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;
}
}
// The cookie is not set in the current browser or the saved value is newer.
$secure = ( 'https' === parse_url( admin_url(), PHP_URL_SCHEME ) );
setcookie( 'wp-settings-' . $user_id, $settings, time() + YEAR_IN_SECONDS, SITECOOKIEPATH, '', $secure );
setcookie( 'wp-settings-time-' . $user_id, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH, '', $secure );
$_COOKIE[ 'wp-settings-' . $user_id ] = $settings;
}