# wp_user_settings()

URL: https://chugunov.pro/api-wordpress/functions/wp_user_settings/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.7.0.

## Сигнатура

```php
wp_user_settings()
```

## Описание

Проверяет, обновлён ли текущий cookie с настройками пользователя, и сохраняет его. Если cookie отсутствует (используется другой браузер), добавляет последний сохранённый cookie, восстанавливая настройки.

## Исходный код

Файл: `wp-includes/option.php:1696`

```php
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;
}
```

## История изменений

- 2.7.0 — Introduced.

## Связанные

Использует: [`wp_doing_ajax`](https://chugunov.pro/api-wordpress/functions/wp_doing_ajax/), [`is_user_member_of_blog`](https://chugunov.pro/api-wordpress/functions/is_user_member_of_blog/), [`update_user_option`](https://chugunov.pro/api-wordpress/functions/update_user_option/), [`get_user_option`](https://chugunov.pro/api-wordpress/functions/get_user_option/), [`is_admin`](https://chugunov.pro/api-wordpress/functions/is_admin/), [`admin_url`](https://chugunov.pro/api-wordpress/functions/admin_url/), [`get_current_user_id`](https://chugunov.pro/api-wordpress/functions/get_current_user_id/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_user_settings/
