Utilizar campo de imagen ACF como Avatar del usuario

contacta     ·     sobre     ·     azar     ·     buchaca     ·     manifiestos    ·   

  • Brote

    Las ideas totalmente trabajadas donde sus frutos rebosan a través de las palabras y las imágenes.

Cuando se crea una página con posibilidad de tener usuarios una de las cosas más complicadas de gestionar desde el registro es el avatar, al menos si usas Ultimate Member que es lo que más uso yo. Con este hack podrás gestionarlo con un Advanced Custom Field (ACF).
Lo que leerás a continuación es una traducción libre del post de Andhi en The Stiz Media: https://thestizmedia.com/acf-pro-simple-local-avatars/

1.- Crea un nuevo grupo de campos con un campo de imagen

Así como ves en la imagen tienes que crear un grupo de campos y simplemente un campo de imagen.

Muy importante que al nombre de campo lo llames: tsm_local_avatar

 

2.- Configura el grupo de campos

Debes seleccionar «Formulario de usuario» y que sea igual a «Añadir / Editar»

3.- Copiar y pegar este código en functions.php

<!--?php /** * Use ACF image field as avatar * @author Mike Hemberger * @link http://thestizmedia.com/acf-pro-simple-local-avatars/ * @uses ACF Pro image field (tested return value set as Array ) */ add_filter('get_avatar', 'tsm_acf_profile_avatar', 10, 5); function tsm_acf_profile_avatar( $avatar, $id_or_email, $size, $default, $alt ) { $user = ''; // Get user by id or email if ( is_numeric( $id_or_email ) ) { $id = (int) $id_or_email; $user = get_user_by( 'id' , $id ); } elseif ( is_object( $id_or_email ) ) { if ( ! empty( $id_or_email->user_id ) ) {
$id = (int) $id_or_email->user_id;
$user = get_user_by( 'id' , $id );
}
} else {
$user = get_user_by( 'email', $id_or_email );
}
if ( ! $user ) {
return $avatar;
}
// Get the user id
$user_id = $user->ID;
// Get the file id
$image_id = get_user_meta($user_id, 'tsm_local_avatar', true); // CHANGE TO YOUR FIELD NAME
// Bail if we don't have a local avatar
if ( ! $image_id ) {
return $avatar;
}
// Get the file size
$image_url = wp_get_attachment_image_src( $image_id, 'thumbnail' ); // Set image size by name
// Get the file url
$avatar_url = $image_url[0];
// Get the img markup
$avatar = '<img alt="' . $alt . '" src="' . $avatar_url . '" class="avatar avatar-' . $size . '" height="' . $size . '" width="' . $size . '"?-->';
// Return our new avatar
return $avatar;
}

¡Y listo!

Ahora aparecerá un campo abajo del todo del perfil de usuario donde se ve la imagen que has subido pero que a todos los efectos funciona como el avatar.

Hagamos de esto una conversación

Deja un comentario

blogroll

Licencia de producción de pares excepto en lo que no sea de mi puño y bit.