Enviar enlace de restablecimiento de contraseña a usuario desde formulario personalizado
He estado luchando buscando entre varios tutoriales sin éxito. Tengo una página de inicio de sesión personalizada y solo estoy reemplazando el formulario de inicio de sesión con el formulario de contraseña olvidada al hacer clic. Mi problema es cómo hacer que el formulario envíe al usuario un enlace de restablecimiento de contraseña si se ingresa el nombre de usuario o correo electrónico correcto y devuelva un error si no. Estoy tratando de hacer esto desde un plugin que estoy creando para manejar el inicio de sesión. Aquí está mi formulario simple. ¿Cómo puedo hacer que esto funcione?
<form id="wp_pass_reset" action="" method="post">
<input type="text" id="email-field" name="user_input" value="Nombre de usuario o Email" /><br />
<input type="submit" id="submitbtn" name="submit" value="Restablecer" />
</form>

En tu plugin, primero establecerías la URL de redirección como vacía: $redirect='';
o la URL completa de la página a la que quieres que el usuario llegue después de cambiar su contraseña correctamente. Para http://example.com/mipagina/ usarías: $redirect=site_url( '/mipagina/ ' );
Entonces tu formulario sería:
<form name="lostpasswordform" id="lostpasswordform" action="<?php echo wp_lostpassword_url(); ?>" method="post">
<p>
<label>Nombre de usuario o Correo electrónico:<br>
<input type="text" name="user_login" id="user_login" class="input" value="" size="20" tabindex="10"></label>
</p>
<input type="hidden" name="redirect_to" value="<?php echo $redirect ?>">
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="Obtener nueva contraseña" tabindex="100"></p>
</form>
Nota: Este código no ha sido probado. Déjame saber en los comentarios si algo no funciona.
Actualización
Como se menciona en los comentarios, si tienes un filtro en login_url wp_lostpassword_url()
apuntará a tu página personalizada. Para restaurar temporalmente el login_url por defecto, elimina el filtro justo antes del código del formulario:
remove_filter( 'login_url', 'tu_funcion_de_filtro' );
y vuelve a agregarlo justo después del código del formulario:
add_filter( 'login_url', 'tu_funcion_de_filtro' );

¿Esto envía un enlace con una clave única al correo electrónico ingresado si es una dirección de correo válida de un usuario? Estoy intentando replicar el método predeterminado que usa WordPress, solo que el enlace que se envía apunta a mi plantilla de restablecimiento de contraseña y no a la de WordPress.

¿Has filtrado el login_url para que apunte a tu plantilla de restablecimiento? Si es así, tendrás que capturar el valor original de login_url en tu filtro para que puedas usarlo en lugar de la llamada a wp_lostpassword_url()
