update_user_meta()
Обновляет мета поле указанного пользователя.
Кроме обновления существующего поля, также создаст поле, если поля с таким ключом еще не существует.
Функцию можно использовать вместо add_user_meta(). При создании поля вызывает add_user_meta() с параметром $unique = true. Это означает, что add_user_meta() удобно использовать только в случаях, когда нужно создать несколько полей с одинаковыми ключами, во остальных случаях удобнее использовать эту функцию.
Используйте параметр $prev_value, когда нужно определить какое именно поле, из нескольких с одинаковыми ключами, нужно обновить.
Функция не удаляет поле, если передано пустое значение параметра $meta_value.
Хуков нет.
Возвращает
int|true|false
.
- true - при успешном обновлении.
- false - при неудаче или когда для обновления было передано значение которое уже есть в бд.
- ID первичного поля таблицы метаполей (umeta_id), когда было создано новое поле.
Использование
update_user_meta( $user_id, $meta_key, $meta_value, $prev_value )
- $user_id(число) (обязательный)
- ID пользователя.
- $meta_key(строка) (обязательный)
- Ключ поля - поле meta_key в таблице wp_usermeta, для которого значение meta_value должно быть обновлено.
- $meta_value(строка/массив/число/объект/логический) (обязательный)
Новое значение поля. Значение должно отличаться от предыдущего. Объекты и массивы будут автоматически сериализованы (serialized).
Если указать значение, которое уже записано метаполе (такое же), то функция не будет делать лишних запросов по обновлению старого значения на такое же новое...
- $prev_value(строка/массив/число/объект/логический)
- Старое значение. Нужно указывать когда у пользователя может быть несколько полей с одинаковыми ключами и нам нужно обновить определенное из них.
По умолчанию: ''
Примеры
#1 Базовый пример
Предположим у пользователя с ID 1 должно быть мета поле mood
. Давайте обновим его значение или создадим поле, если его не существует.
update_user_meta( 1, 'mood', 'good' )
#2 Обновим сайт пользователя
В мета полях пользователя хранятся привычные нам данные: Ник, Имя, Фамилия, Сайт и т.д. Пример ниже показывает, как обновить сайт пользователя с ID 1:
$user_id = 1; $website = 'http://wordpress.org'; update_user_meta($user_id, 'user_url', $website);
#3 Проверка на ошибку
Этот пример показывает как проверить обновилось ли поле:
$user_id = 1; $new_value = 'good'; // Вернет false, если предыдущее значение совпадает с $new_value. if( ! update_user_meta( $user_id, 'some_meta_key', $new_value ) ){ echo "Поле не обновлено"; } // Получим значение поля и проверим его с новым значением $new_value if ( get_user_meta($user_id, 'some_meta_key', true ) != $new_value ) wp_die('Ошибка: новое значение не записалось.');
Список изменений
С версии 3.0.0 | Введена. |
Код update_user_meta() update user meta WP 6.7.1
function update_user_meta( $user_id, $meta_key, $meta_value, $prev_value = '' ) { return update_metadata( 'user', $user_id, $meta_key, $meta_value, $prev_value ); }