add_user_meta() против update_user_meta()

27 авг. 2013 г., 18:11:59
Просмотры: 27.8K
Голосов: 13

Я изучаю документацию для add_user_meta() и update_user_meta().

Если текущий meta_key не существует для пользователя, будет ли update_user_meta() автоматически добавлять meta_key для этого пользователя, или сначала нужно определить meta_key с помощью add_user_meta()?

4
Комментарии

Что непонятно в документации? "Если метаполе для пользователя не существует, оно будет добавлено."

s_ha_dum s_ha_dum
27 авг. 2013 г. 18:18:34

Пропустил этот момент. У меня были проблемы с тем, что метаданные не добавлялись, и я не знал, нужно ли сначала определять add_user_meta().

Tim Plummer Tim Plummer
27 авг. 2013 г. 18:19:42

Значит, проблема решена?

s_ha_dum s_ha_dum
27 авг. 2013 г. 18:25:47

Эта часть, да — Спасибо. Ещё нужно отладить... :/

Tim Plummer Tim Plummer
27 авг. 2013 г. 18:38:59
Все ответы на вопрос 2
1
22

Вы уже знаете, что использование функции update_user_meta() приведет к добавлению метаполя для пользователя, если оно не существует. То есть update_user_meta() может выполнять задачу функции add_user_meta().

Однако разница между ними заключается в возвращаемых значениях.

update_user_meta()

Возвращает False, если никаких изменений не было (если новое значение совпадает с предыдущим) или если обновление не удалось. В случае успешного обновления с изменением значения возвращает umeta_id.

ПРИМЕЧАНИЕ: начиная с версии 3.4.2 функция возвращает umeta_id при успехе (вместо true) и false при неудаче.


add_user_meta()

Возвращает ID первичного ключа при успехе. Пустое значение (blank) при неудаче. ID первичного ключа при успехе.

28 авг. 2013 г. 16:26:57
Комментарии

Хочу добавить, что функция add_user_meta не может обновить существующие user_meta, если передан флаг unique со значением true.

TurtleTread TurtleTread
14 мар. 2018 г. 17:14:15
0

Спасибо за объяснение, я просто дополню ваш ответ: функция update_user_meta() также возвращает true в случае успешного обновления.

Коротко - она возвращает Meta ID, если ключ не существовал, true при успешном обновлении и false в случае неудачи.

9 апр. 2015 г. 15:56:05