# update_usermeta()

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

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

> Устаревший элемент. Помечен устаревшим с версии 3.0.0.

## Сигнатура

```php
update_usermeta( int $user_id, string $meta_key, mixed $meta_value ): bool
```

## Описание

Сериализовать значения не нужно — они будут сериализованы при необходимости. Ключ метаданных может быть только строкой с подчёркиваниями. Всё остальное будет удалено.
Если значение метаданных пустое, метаданные будут удалены.
См. alsoupdate_user_meta()

## Параметры

- `$user_id` `int` — обязательный. ID пользователя
- `$meta_key` `string` — обязательный. Ключ метаданных.
- `$meta_value` `mixed` — обязательный. Значение метаданных.

## Возвращаемое значение

`bool`

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

Файл: `wp-includes/deprecated.php:2335`

```php
function update_usermeta( $user_id, $meta_key, $meta_value ) {
	_deprecated_function( __FUNCTION__, '3.0.0', 'update_user_meta()' );
	global $wpdb;
	if ( !is_numeric( $user_id ) )
		return false;
	$meta_key = preg_replace('|[^a-z0-9_]|i', '', $meta_key);

	/** @todo Might need fix because usermeta data is assumed to be already escaped */
	if ( is_string($meta_value) )
		$meta_value = stripslashes($meta_value);
	$meta_value = maybe_serialize($meta_value);

	if (empty($meta_value)) {
		return delete_usermeta($user_id, $meta_key);
	}

	$cur = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->usermeta WHERE user_id = %d AND meta_key = %s", $user_id, $meta_key) );

	if ( $cur )
		do_action( 'update_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );

	if ( !$cur )
		$wpdb->insert($wpdb->usermeta, compact('user_id', 'meta_key', 'meta_value') );
	elseif ( $cur->meta_value != $meta_value )
		$wpdb->update($wpdb->usermeta, compact('meta_value'), compact('user_id', 'meta_key') );
	else
		return false;

	clean_user_cache( $user_id );
	wp_cache_delete( $user_id, 'user_meta' );

	if ( !$cur )
		do_action( 'added_usermeta', $wpdb->insert_id, $user_id, $meta_key, $meta_value );
	else
		do_action( 'updated_usermeta', $cur->umeta_id, $user_id, $meta_key, $meta_value );

	return true;
}
```

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

- 3.0.0 — Deprecated. Use update_user_meta()
- 2.0.0 — Introduced.

## Связанные

Использует: [`wp_cache_delete`](https://chugunov.pro/api-wordpress/functions/wp_cache_delete/), [`delete_usermeta`](https://chugunov.pro/api-wordpress/functions/delete_usermeta/), [`maybe_serialize`](https://chugunov.pro/api-wordpress/functions/maybe_serialize/), [`clean_user_cache`](https://chugunov.pro/api-wordpress/functions/clean_user_cache/), `wpdb::get_row`, `wpdb::insert`, `wpdb::update`, [`_deprecated_function`](https://chugunov.pro/api-wordpress/functions/_deprecated_function/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/), `wpdb::prepare`.

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