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:
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:
Avez-vous une idée de ce que je fais mal?
Je vous remercie
Vous devez déclencher les hooks suivants:
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!!