add_user_meta () vs update_user_meta ()


10

Je regarde les docs pour add_user_meta()vs update_user_meta().

Si la méta-clé actuelle n'existe pas pour un utilisateur, update_user_meta()ajoutera-t- elle automatiquement la méta-clé pour cet utilisateur ou devez-vous d'abord définir la méta-clé add_user_meta()?


3
Qu'est-ce qui n'est pas clair dans les documents? "Si le champ méta pour l'utilisateur n'existe pas, il sera ajouté."
s_ha_dum

Oublié cela. J'avais des problèmes avec les métas qui n'étaient pas ajoutées et je ne savais pas s'il add_user_meta()fallait d'abord les définir.
Tim Plummer

1
Alors, résolu alors?
s_ha_dum

Cette portion, oui - Merci. Il faut encore déboguer ...: /
Tim Plummer

Réponses:


15

Vous avez déjà découvert qu'en utilisant update_user_meta()si le champ méta pour l'utilisateur n'existe pas, il sera ajouté. c'est à dire update_user_meta()peut faire la tâche deadd_user_meta()

Cependant, la différence entre eux est la return values

update_user_meta ()

renvoie False si aucune modification n'a été effectuée (si la nouvelle valeur était la même que la valeur précédente) ou si la mise à jour a échoué, umeta_id si la valeur était différente et la mise à jour réussie.

NOTE: à partir de la v3.4.2, il retourne le umeta_id en cas de succès (au lieu de vrai) et faux en cas d' échec


add_user_meta ()

retourner l'identifiant de la clé primaire pour réussir . Aucune valeur (vide) pour l'échec. Identifiant de la clé primaire pour réussir.


Je veux ajouter que add_user_meta ne peut pas mettre à jour user_meta existant si l'indicateur unique transmis est défini sur true.
TurtleTread

1

Merci pour votre explication, je vais simplement ajouter à la vôtre le update_user_meta()retour également vrai si la mise à jour réussie s'est produite.

En bref - Il renvoie Meta ID si la clé n'existait pas, vrai en cas de mise à jour réussie, faux en cas d'échec.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.