web-dev-qa-db-fra.com

Enregistrer la méta utilisateur personnalisée lors de l'inscription

J'essaie de créer mon propre formulaire d'inscription et d'ajouter un numéro de téléphone comme champ obligatoire. J'aimerais enregistrer ce numéro en tant que méta utilisateur.

Après validation et santizing entrées, ets. mon code ressemble à ceci:

// this returns the correct value etc. - string(9) "126777889"
var_dump($metas['user_phone'])

$user_id = wp_insert_user($fields);
add_user_meta( $user_id, 'user_phone', $metas['user_phone'] );

L'utilisateur est créé correctement, mais il y a un problème avec le méta-champ phone - dans le backend, il ressemble à ceci:  enter image description here 

J'ai aussi essayé cette approche pour tester si la méta existe:

if(get_user_meta($user_id,'user_phone')) {
    update_user_meta($user_id,'user_phone');
} else {
    add_user_meta($user_id,'user_phone');    
}

Également essayé d'ajouter la méta avec l'action 'user_register' comme ceci:

function addMyCustomMeta($user_id,$meta) {
    update_user_meta($user_id,$meta);
}
add_action('user_register','addMyCustomMeta',10,2,);

Et puis en utilisant comme ceci:

$user_id = wp_insert_user($fields);
do_action('addMyCustomMeta',$user_id,$metas['user_phone']);

Dans tous les cas, je me retrouve dans la situation décrite dans l'image ci-dessus. Pas de méta-titre et la valeur est enregistrée sous forme de "tableau" multiple

Dans la base de données ça a l'air bien:

 enter image description here 

Avez-vous une idée de ce que je fais mal?

Je vous remercie

1
Cafourek

Vous devez déclencher les hooks suivants:

  • user_register
  • personal_options_update
  • edit_user_profile_update

    add_action('user_register', 'addMyCustomMeta');    
    add_action('personal_options_update', 'addMyCustomMeta' );    
    add_action('edit_user_profile_update','addMyCustomMeta' );    
    function addMyCustomMeta( $user_id ) {    
               update_user_meta( $user_id, 'user_phone', $_POST['user_phone'] ); 
    }
    

J'espère que cela pourra aider!!

4
Aishan