WordPress: Agregar campos adicionales al perfil de usuario
3 comentarios
El perfil del usuario de wordpress es un poco limitado en cuanto a datos de usuario (usuario, email, nombre, apellidos, web)… pero, ¿y si queremos también guardar otros campos adicionales como por ejemplo (dirección, provincia, código postal, teléfono, etc…)?
Con el siguiente código, podemos agregar algunos campos adicionales. Sólo tienes que añadir este código dentro del archivo functions.php de tu tema y añadir los campos que quieras.
En este ejemplo solo voy a añadir 2 nuevos campos (dirección y ciudad):
add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );
function extra_user_profile_fields( $user ) { ?>
<h3><?php _e("Campos aiccionales", "blank"); ?></h3>
<table class="form-table">
<tr>
<th><label for="direccion"><?php _e("Direccion"); ?></label></th>
<td>
<input type="text" name="direccion" id="direccion" value="<?php echo esc_attr( get_the_author_meta( 'direccion', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Inserta tu direccion."); ?></span>
</td>
</tr>
<tr>
<th><label for="ciudad"><?php _e("Ciudad"); ?></label></th>
<td>
<input type="text" name="ciudad" id="ciudad" value="<?php echo esc_attr( get_the_author_meta( 'ciudad', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description"><?php _e("Inserta tu ciudad."); ?></span>
</td>
</tr>
</table>
<?php }
add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );
function save_extra_user_profile_fields( $user_id ) {
if ( !current_user_can( 'edit_user', $user_id ) ) { return false; }
update_usermeta( $user_id, 'direccion', $_POST['direccion'] );
update_usermeta( $user_id, 'ciudad', $_POST['ciudad'] );
}
?>