Guardar metadatos personalizados de usuario en el registro
Estoy intentando crear mi propio formulario de registro y agregar el número de teléfono como campo obligatorio, y me gustaría guardar ese número de teléfono como metadato personalizado del usuario.
Después de validar y sanitizar los inputs, etc., mi código se ve así:
// esto retorna el valor correcto, 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'] );
El usuario se crea correctamente, pero hay algo mal con el campo de metadatos del teléfono - en el backend se ve así:
También probé este enfoque para verificar si existe el meta:
if(get_user_meta($user_id,'user_phone')) {
update_user_meta($user_id,'user_phone');
} else {
add_user_meta($user_id,'user_phone');
}
También intenté agregar el meta con la acción 'user_register' así:
function addMyCustomMeta($user_id,$meta) {
update_user_meta($user_id,$meta);
}
add_action('user_register','addMyCustomMeta',10,2,);
Y luego usándolo así:
$user_id = wp_insert_user($fields);
do_action('addMyCustomMeta',$user_id,$metas['user_phone']);
En todos los casos termino con la situación descrita en la imagen de arriba. Sin título de meta y el valor se guarda como múltiples "Array"
En la base de datos se ve bien:
¿Tienes alguna idea de lo que estoy haciendo mal?
Gracias

Tienes que activar los siguientes hooks:
- 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'] ); }
¡Espero que esto te ayude!

¿En qué parte de mi código debería agregar las acciones? Quiero activarlas solo si todos los valores y metadatos son válidos, etc. Ver: http://gist.github.com/cafesk8/78e7ac3555aa94afcb35d815853c4365
