He usado el tutorial de Jeff Star para crear mi propio formulario de inicio de sesión personalizado http://digwp.com/2010/12/login-register-password-code/ . Funciona muy bien, pero tengo un problema. En el formulario de restablecimiento de contraseña, si alguien ingresa su nombre de usuario de manera incorrecta (para que no se verifique), se lo expulsará al wp-login.php? Action = lostpassword predeterminado con el mensaje de error.
¿Hay alguna manera de redirigir a mi propia página de error?
¡Gracias!
username_exists()
ayudarte de alguna manera?Respuestas:
El código que publicó en ese tutorial (muy bonito, por cierto) publica el formulario en el módulo incorporado "restablecer contraseña" que redirige al login.php por error, pero puede cambiar eso y construir el suyo basado en el original y agregar a la página de plantilla, cambie:
a:
fuente
&redirect_to=$_SERVER['REQUEST_URI']
al enlace en el correo electrónico que envía.$message .= get_option('siteurl') . "/wp-login.php?action=rp&key=$key&login=$user_login&redirect_to=$_SERVER['REQUEST_URI']\r\n";
, pero lo extraño es que cuando agrego & redirigir, el mensaje no se envía. . . Además, ¿no tendré que hacer un nuevo formulario para que el usuario ingrese su nueva contraseña y tal?Aquí hay una versión actualizada del código de @bainternet con los errores de sintaxis corregidos, la sugerencia de @Val y el generador de claves de wp-login.php 3.4.2:
fuente
Todavía tenía problemas con la tecla de restablecimiento que no funcionaba correctamente, el enlace en el correo electrónico me redirigía a la página de restablecimiento de contraseña estándar con el parámetro URL que indica un problema con la clave, por lo que seguí más de cerca el archivo wp-login.php e incluyó el objeto $ wp_hasher, esto solucionó el problema y el restablecimiento de contraseña en el correo electrónico ahora funciona
fuente