¿Cómo crear una página de edición de perfil para usuarios?
¿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!

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.

@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!
