WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

add_user_meta() WP 3.0

Добавляет метаданные к указанному пользователю.

Для добавления метаданных пользователя можно также использовать функцию update_user_meta(). Она добавит поле, если его не существует. Отличие этой функции в том, что в ней можно не указывать $unique (оставить его false), что позволит добавить несколько полей с одинаковым ключом.

Метаданные пользователя, это аналог произвольных полей у постов. Хранятся они в таблице wp_usermeta. Чтобы лучше понимать что это за метаданные, к примеру, такие привычные данные пользователя как: first_name (имя), last_name (фамилия), nickname (Ник), записываются как раз в эти мета поля пользователя.

Работает на основе: add_metadata()

Хуков нет.

Возвращает

Идентификатор добавленного ключа (поле таблицы с первичным ключом) или false, если не удалось добавить поле.

Использование

add_user_meta( $user_id, $meta_key, $meta_value, $unique );
$user_id(число) (обязательный)
ID пользователя.
$meta_key(строка) (обязательный)
Ключ мета поля пользователя.
$meta_value(строка/массив/число/объект/логический)
Значение мета поля пользователя.
$unique(логический)
Если равно true, то поле будет добавлено только, если поля с таким же ключом еще не существует. false - добавит еще одно поле с одинаковым ключом, если такое поле уже существует.
По умолчанию: false

Примеры

#1 Демонстрация

Добавим мета поле _level_of_awesomeness для пользователя с ID 1:

$user_id = 1;
$awesome_level = 1000;
add_user_meta( $user_id, '_level_of_awesomeness', $awesome_level, true );

#2 Несколько полей с одинаковым ключом

Этот пример показывает как добавить несколько полей с одинаковыми ключами, для этого не будем указывать параметр $unique, оставим его false. Для примера, представим, что пользователь указывает книжки которые он прочел в специальное поле, таких книг может быть несколько и мы будем записывать их названия в поля с одинаковыми ключами book:

$user_id = 1;

// добавим одну книгу
$read_book = 'Метро 2033';
add_user_meta( $user_id, 'book', $read_book );

// добавим вторую книгу
$read_book2 = 'Чайка по имени Джонатан Ливингстон';
add_user_meta( $user_id, 'book', $read_book2 );

// теперь у нас 2 записи в таблице wp_usermeta с одинаковыми ключами book

Список изменений

С версии 3.0.0 Введена.

Код add user meta: wp-includes/user.php WP 5.2.4

<?php
function add_user_meta( $user_id, $meta_key, $meta_value, $unique = false ) {
	return add_metadata( 'user', $user_id, $meta_key, $meta_value, $unique );
}

Cвязанные функции

Из метки: metadata (метаданные)

2 коммента
  • Возможно ли добавить для всех пользователей поле? В том числе новых? Что бы не из темы а из плагина. Т.е поле по умолчанию как email.

    Ответитьмесяц назад #
    • Нашел ответ добавить можно через фильтр "user_contactmethods"

      add_filter( 'user_contactmethods', 'add_user_contact_method' );
      
      function add_user_contact_method( $method ) {
      
      	$custom_contact = [
      		'phone'=> 'Телефон'
      	];
      
      	$method = array_merge( $method, $custom_contact );
      
      	return $method;
      
      }

      Эти данные записываются в таблицу "usermeta" управлять можно с помощью функций get_user_meta() и update_user_meta() . Например вывести телефон текущего пользователя можно так:

      $user_id = get_current_user_id();
      $user_phone = get_user_meta($user_id, 'phone', true);
      echo $user_phone;
      Ответитьмесяц назад #
Здравствуйте, !     Войти . Зарегистрироваться