Salvează metadate personalizate ale utilizatorului la înregistrare
Încerc să creez propriul formular de înregistrare și să adaug numărul de telefon ca câmp obligatoriu, iar aș dori să salvez acest număr de telefon ca metadate personalizate ale utilizatorului.
După validare și curățarea datelor introduse, codul meu arată astfel:
// aceasta returnează valoarea corectă 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'] );
Utilizatorul este creat corect, dar ceva nu funcționează cu câmpul meta pentru telefon - în backend arată astfel:
Am încercat și această abordare pentru a testa dacă meta există:
if(get_user_meta($user_id,'user_phone')) {
update_user_meta($user_id,'user_phone');
} else {
add_user_meta($user_id,'user_phone');
}
Am încercat de asemenea să adaug meta cu acțiunea 'user_register' astfel:
function addMyCustomMeta($user_id,$meta) {
update_user_meta($user_id,$meta);
}
add_action('user_register','addMyCustomMeta',10,2,);
Și apoi folosind astfel:
$user_id = wp_insert_user($fields);
do_action('addMyCustomMeta',$user_id,$metas['user_phone']);
În toate cazurile ajung la situația descrisă în imaginea de mai sus. Fără titlu meta și valoarea este salvată ca multiple "Array"
În baza de date arată în regulă:
Aveți vreo idee ce fac greșit?
Mulțumesc

Trebuie să declanșați următoarele hook-uri:
- user_register
- personal_options_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'] ); }
Sper că acest lucru vă ajută!!

În ce parte a codului meu ar trebui să adaug acțiunile? Vreau să le declanșez doar dacă toate valorile și metadatele sunt valide, etc. Vezi: http://gist.github.com/cafesk8/78e7ac3555aa94afcb35d815853c4365
