Con este snippet puedes agregar un campo personalizado «user_meta» al perfil de usuario en WordPress, así el usuario podrá guardar información extra con su perfil.
El snippet agrega al formulario de insertar o editar usuario el campo personalizado y guarda el valor junto al perfil.
/*
Agregar campo personalizado al perfil de usuario
*/
function elgeneralista_snippet_add_user_meta( $user ) {
$value = get_user_meta( $user->ID, 'id_del_campo', true );
echo '<h2>Campo personalizado</h2>
<table class="form-table">
<tr>
<th><label for="id_del_campo">Valor del campo</label></th>
<td>
<input type="text" name="id_del_campo" id="id_del_campo" class="regular-text" placeholder="valor" value="'.$value.'">
</td>
</tr>
</table>';
}
add_action( 'show_user_profile', 'elgeneralista_snippet_add_user_meta' );
add_action( 'edit_user_profile', 'elgeneralista_snippet_add_user_meta' );
/*
Guardar valor de campo personalizado
*/
function elgeneralista_snippet_save_profile_field( $user_id ) {
if ( ! current_user_can( 'edit_user', $user_id ) ) {
return false;
}
if( isset( $_POST['id_del_campo'] ) ){
update_user_meta( $user_id, 'id_del_campo', sanitize_text_field( $_POST['id_del_campo'] ) );
}
}
add_action( 'personal_options_update', 'elgeneralista_snippet_save_profile_field' );
add_action( 'edit_user_profile_update', 'elgeneralista_snippet_save_profile_field' );
Si quieres mostrar el valor del campo personalizado en el frontend, puedes llamar a la variable haciendo uso de get_user_meta.
$value = get_user_meta( $user->ID, 'id_del_campo', true );