wp_user_settings
Saves and restores user interface settings stored in a cookie.
Description
wp_user_settings();
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.
Usage
if ( !function_exists( 'wp_user_settings' ) ) { require_once ABSPATH . WPINC . '/option.php'; } // NOTICE! Understand what this does before running. $result = wp_user_settings();
Defined (1)
The function is defined in the following location(s).
- /wp-includes/option.php
- function wp_user_settings() {
- if ( ! is_admin() || wp_doing_ajax() ) {
- return;
- }
- if ( ! $user_id = get_current_user_id() ) {
- return;
- }
- if ( is_super_admin() && ! 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 = 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;
- }
- }
- // 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, null, $secure );
- setcookie( 'wp-settings-time-' . $user_id, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH, null, $secure );
- $_COOKIE['wp-settings-' . $user_id] = $settings;
- }