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 (edad y sexo) pero esto ya a vuestra elección:

<?php
add_action( 'show_user_profile', 'agregar_campos_perfil' );
add_action( 'edit_user_profile', 'agregar_campos_perfil' );
add_action( 'personal_options_update', 'guardar_campos_perfil' );
add_action( 'edit_user_profile_update', 'guardar_campos_perfil' );
 
function agregar_campos_perfil( $user ) {
  $user_edad = esc_attr( get_the_author_meta( 'user_edad', $user->ID ) );
  $user_sexo = esc_attr( get_the_author_meta( 'user_sexo', $user->ID ) );
?>
 
  <h3>Campos adicionales</h3>
   
  <table class="form-table">
    <tr>
      <th><label for="direccion">Edad</label></th>
      <td>
        <input type="text" name="user_edad" id="user_edad" class="input" value="<?php echo $user_edad; ?>" size="20" />
        <span class="description">Inserta tu edad</span>
      </td>
    </tr>
    <tr>
      <th><label for="ciudad">Sexo</label></th>
      <td>
        <input type="radio" name="user_sexo" class="radio" value="h" <?php if($user_sexo=='h') { echo ' checked'; } ?> /> Hombre
        <input type="radio" name="user_sexo" class="radio" value="m" style="margin-left:10px" <?php if($user_sexo=='m') { echo ' checked'; } ?> /> Mujer<br />
      </td>
    </tr>
  </table>
 
<?php }
 
function guardar_campos_perfil ($user_id) {
  if ( isset($_POST['user_edad']) && isset($_POST['user_edad']) ){
    update_user_meta($user_id, 'user_edad', $_POST['user_edad']);
    update_user_meta($user_id, 'user_sexo', $_POST['user_sexo']);
  }
}
?>

Y ahora en el panel de control ya aparecerían así:

campos adicionales perfil usuario en el panel de control

Agradezco tu comentario 🤘