April 10, 2019

Añadir campos personalizados a los usuarios sin plugins

¿te gustaría poder añadir más campos personalizados a los usuarios de WordPress? Como podrás comprobar es algo que puedes hacer en sólo unos minutos.

No siempre son necesarios plugins como ACF ni tampoco desarrollar un código elaborado para añadir campos personalizados. 🙂

En este artículo vemos lo fácil que es añadir campos personalizados a la información de contacto de un usuario registrado en WordPress, para por ejemplo añadir el Whatsapp:

Añadir Whatsapp a la información de contacto de un usuario
Añadir Whatsapp a la información de contacto de un usuario

Crear nuevos campos de usuario

Para añadir el Whatsapp o cualquier otra cosa que se te ocurra y/o necesites como tal vez el «cargo en la empresa», sólo tienes que situar en tu plugin personalizado un código similar al siguiente:

/**
 * Add custom fields to user profiles
 */
add_filter( 'user_contactmethods', function( $methods ) {

	$methods['whatsapp'] = 'Whatsapp';

	return $methods;
} );
  • Se usa el filtro user_contactmethods que pone a nuestra disposición WordPress para añadir métodos de contacto, con tan solo añadir al array que nos pasa todos los que queramos siguiendo la idea del ejemplo mostrado.
  • Con este modo usando el filtro, ni nos tenemos que preocupar de gestionar el código para que se guarden los datos en el momento de introducirlos en el backend.

Mostrar los nuevos datos creados

Para mostrar los nuevos campos personalizados creados para los usuarios registrados en WordPress como podrían ser los autores de cualquier tipo de contenido, sólo tenemos que recordar la clave que pusimos en el array de campos, y que en el código anterior era whatsapp

the_author_meta('whatsapp');

Por ejemplo puedes llegar a mostrar algo como lo siguiente muy fácilmente:

mostrar usuario wordpress

Tan solo tienes que guiarte por el siguiente código de ejemplo y situarlo en la plantilla correspondiente de tu theme donde quieras mostrar esta información.

<footer class="entry-footer">
  <div class="author-content">
    <?php echo get_avatar( get_the_author_meta( 'ID' ) ); ?>
    <div class="author-data">
      <p class="author"><?php the_author(); ?></p>
      <p class="web">
        <?php echo esc_url( get_the_author_meta('user_url') ); ?>
      </p>
      <p class="whatsapp"><?php the_author_meta('whatsapp'); ?></p>
    </div>
  </div>
</footer><!-- .entry-footer -->

En resumen, para añadir nuevos campos personalizados a la zona de contacto de los usuarios de WordPress tan solo tienes que hacer 2 cosas:

  • Usar el filtro indicado user_contactmethods para intercalar en el array dado todos los campos que quieras.
  • Situar en el theme la función the_author_meta('whatsapp'); para mostrar en el frontend el dato en cuestión.

Hay cosas que en WordPress son muy fáciles… y esta es una de ellas, aunque se complica un poco si ya queremos crear nuestro propio apartado de datos dentro del perfil de usuarios, o cambiar a algo más que un simple campo de texto que hemos podido llegar a plantear para un nº de móvil.

Por tanto, para cosas más avanzadas que crear nuevos campos del tipo texto en el apartado «métodos de contacto», ya toca entrar en hooks del tipo acción y no filtro, como edit_user_profile y show_user_profile teniendo entonces ya sí que gestionar más cosas como el HTML de salida en el backend, o como el guardado de estos datos en personal_options_update y edit_user_profile_update.

Si te ha gustado... ¡Compártelo!