Произвольные данные учётных записей в WordPress

В прошлой статье "Произвольные данные записей в WordPress" был рассмотрен способ добавления и управления дополнительными полями для записей в WordPress. Но аналогичный механизм есть и для учётных записей пользователей. То есть можно добавить произвольное поле с данными для пользователя. Для совершения действия над такими полями и данными в них существует набор функций:
  • add_user_meta - добавляет данные
  • get_user_meta - возвращает данные из поля
  • update_user_meta - обновляет данные в поле
  • delete_user_meta - удаляет поле
Произвольные данные пользователей хранятся в таблице "wp_usermeta". К примеру, в этой таблице можно найти имя пользователя "first_name", фамилию "last_name", псевдоним "nickname".
Далее эти функции будут рассмотрены по порядку.

Добавить данные в поле - add_user_meta

Функция добавления данных произволььного поля "add_user_meta" всегда добавляет данные только для пользователей. Функция возвращает id добавленного ключа в случае успешного добавления и "false", если поле не удалось добавить:
add_user_meta( $user_id, $key, $value, $unique );
Название Тип данных Описание
$user_id число ID пользователя.
$key строка Название произвольного поля (латиницей). Если название начинается с символа подчёркивания "_", то поле будет видно только администратору (не видно простым пользователям).
$value строка/ массив/ число/ объект/ логический Значение поля
$unique логический Ключ должен быть уникальным. По умолчанию: "false" - можно создать несколько полей с одинаковым ключом
Примеры использования:
<?php
add_user_meta(
   7, // id пользователя
   'food', // название поля
   'cheese', // значение поля
   true // название поля должно быть уникальным
);

Получение данных из поля - get_user_meta

Для получения значения поля можно использовать функцию "get_user_meta". Если в поле содержится сериализованный массив (PHP функцией "serialize"), то он будет обработан функцией для распаковки данных - "unserialize". Функция возвращает либо строку (даже если записывалось число), либо массив:
$val = get_user_meta( $user_id, $key, $single );
Название Тип данных Описание
$user_id число ID пользователя.
$key строка Название произвольного поля (латиницей). Если оставить пустым, то вернутся значения всех произвольных полей.
$single логический В положении "false" (по умолчанию) вернёт массив из всех значений полей (используйте, если полей с таким ключом несколько). В положении "true" вернёт только одно первое полученное значение из поля, даже если полей с таким ключом несколько.
Примеры использования:
<?php
$food = get_user_meta(
   7, // id пользователя
   'food', // название поля
   true
);
echo $food; // распечатает "cheese"

Обновление значения поля - update_user_meta

Для изменения значения поля используется функция "update_user_meta". Перед внесением изменений эта функция проверяет поле на существование и добавляет его. Фактически её можно использовать вместо функции добавления данных "add_user_meta".

Функция возвращает "false" в случае неудачи, "true" в случае успешного обновления поля и ID нового поля, если оно было создано.

Рассмотрим аргументы этой функции:
update_user_meta( $user_id, $key, $value, $prev_value );
Название Тип данных Описание
$user_id число ID пользователя.
$key строка Название произвольного поля (латиницей).
$value строка/массив Значение поля. Если передать массив, то он будет сериализован PHP функцией "serialize".
$prev_value строка/массив Текущее значение поля, которое собираемся изменить. Нужно на случай, если есть несколько произвольных полей с одинаковым названием, чтобы изменить именно одно. Иначе будут изменены все значения полей с одинаковым названием.
Примеры использования:
<?php
update_user_meta(
   7, // id пользователя
   'food', // название поля
   'milk' // новое значение поля
);

Удаление поля - delete_user_meta

Для удаления поля используйте функцию "delete_user_meta". При успешном удалении вернётся "true", иначе "false":
delete_user_meta( $user_id, $key, $value );
Рассмотрим аргументы этой функции:
Название Тип данных Описание
$user_id число ID пользователя.
$key строка Название произвольного поля (латиницей), которое необходимо удалить.
$value строка Значение поля, которое нужно удалить. Используйте это на тот случай, если есть несколько произвольных полей с одинаковым названием, чтобы удалить именно одно. Иначе будут удалены все поля с одинаковым названием.
Примеры использования:
<?php
delete_user_meta(
   7, // id пользователя
   'food' // название поля
);
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: