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

10

Я смотрю на документы для add_user_meta()против update_user_meta().

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

Тим Пламмер
источник
Упустил это из виду. У меня были проблемы с добавлением метаданных, и я не знал, add_user_meta()нужно ли это определять в первую очередь.
Тим Пламмер
1
Итак, тогда решили?
s_ha_dum
Эта часть этого, да - Спасибо. Все равно придется отлаживать ...: /
Тим Пламмер

Ответы:

15

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

Однако разница между ними заключается в return values

update_user_meta ()

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

Примечание: по состоянию на v3.4.2 возвращает umeta_id на успех (вместо истинного) и ложного на провал


add_user_meta ()

вернуть идентификатор первичного ключа для успеха . Нет значения (пусто) для сбоя. Идентификатор первичного ключа для успеха.

Дипеш КЦ
источник
Я хочу добавить, что add_user_meta не может обновить существующую user_meta, если переданный уникальный флаг установлен в true.
TurtleTread
1

Спасибо за ваше объяснение, я просто добавлю к вам update_user_meta()также вернуть true, если произошло успешное обновление.

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

MAK
источник