¿Cómo crear una página de edición de perfil para usuarios?

14 feb 2018, 09:01:52
Vistas: 26.5K
Votos: 4

¿Cómo puedo crear una página de Edición de Perfil para usuarios en el frontend con campos personalizados usando WordPress?

Campos de ejemplo:

Campo para Subir Imágenes

Campo de Texto

Etc...

¿Y cómo puede un usuario guardar estos campos?

¡Gracias!

6
Comentarios

Además de mí, estoy utilizando un plugin de edición de perfil en el front-end para el formulario de edición de perfil de usuario https://wordpress.org/plugins/frontend-edit-profile/

Adamu Malte Adamu Malte
14 feb 2018 10:39:21

Para cualquiera que esté buscando, este plugin ya no está disponible para descarga desde octubre de 2019. Fue retirado por violación de pautas, por lo que el desarrollador podría actualizarlo en el futuro.

jeh jeh
6 ago 2020 22:53:09

Puedes usar el plugin Profile Builder para esto. Aquí está el shortcode para editar perfil en front-end [wppb-edit-profile] https://wordpress.org/plugins/profile-builder/

Ravinder Kumar Ravinder Kumar
14 feb 2018 09:19:46

Gracias. Quiero hacer esto sin el plugin y personalización

Mostafa Norzade Mostafa Norzade
14 feb 2018 09:28:14

He migrado varias respuestas a comentarios ya que no eran respuestas, en realidad eran recomendaciones de productos. Las respuestas deben ser autónomas, y las recomendaciones están fuera de tema aquí

Tom J Nowell Tom J Nowell
28 mar 2022 18:53:59
Mostrar los 1 comentarios restantes
Todas las respuestas a la pregunta 1
3

Esto es algo bastante grande para pedir, pero básicamente vas a:

Añadir campos de usuario adicionales usando el código de esta respuesta: Campos de Usuario Extra

Modificarlos con una plantilla personalizada para el usuario:

/* Obtener información del usuario. */
global $current_user, $wp_roles;
get_currentuserinfo();

Ahora tienes los datos del usuario conectado que puedes modificar. Crea campos para que el usuario los cambie y rellénalos con la información actual ejemplo:

<input name="first_name" type="text" id="first_name" value="<?php the_author_meta( 'first_name', $current_user->ID ); ?>" />

Luego guarda tus datos: Primero verifica si están vacíos y luego sobrescribe los datos.

 if ( ! empty( $_POST['first_name'] ) )
    update_user_meta( $current_user->ID, 'first_name', sanitize_text_field( $_POST['first_name'] ) );

Luego redirige al usuario si se guardó:

 /* Redirigir para que la página muestre la información actualizada.*/
if ( count( $error ) == 0 ) {
    //acción para plugins y guardado de campos extra
    do_action('edit_user_profile_update', $current_user->ID);
    $location = get_user_meta( $current_user->ID, 'user_location', true );
    wp_safe_redirect( get_bloginfo('url') . str_replace( ' ','-', $location ) );
    exit;
}

Funciona de esta manera. Lo hice exactamente igual.

14 feb 2018 12:41:17
Comentarios

Gracias. ¿Estos cambios están en el panel de administración?

Mostafa Norzade Mostafa Norzade
14 feb 2018 12:52:05

@Interactive - ¿Podrías explicar un poco más la redirección mostrando la información actualizada? Tengo esto funcionando excepto que después de enviar el formulario la página muestra la información antigua en los campos. Si actualizo la página entonces aparece la nueva información. El usuario se está actualizando cuando verifico en el lado de administración. ¡Gracias!

stackingjasoncooper stackingjasoncooper
15 oct 2018 20:07:22

Dejé varias correcciones de seguridad y aclaré que el código vinculado era una respuesta de WPSE, no una recomendación de plugin.

Tom J Nowell Tom J Nowell
28 mar 2022 18:57:54