Cómo redirigir el enlace action=register en la página de lostpassword a otro enlace
Tengo una página de registro específica en WordPress donde los nuevos usuarios completan su formulario de registro. Sin embargo, si alguien hace clic en el enlace "¿Olvidaste tu contraseña?" en la sección de inicio de sesión de mi sitio y luego hace clic en registrarse, podrán registrarse en el sitio sin pasar por el formulario de registro normal. ¿Cómo puedo redirigir la página wp-login.php?action=register a ejemplo.com/register?
¡Gracias de antemano!
Engánchate al login_form_register y redirige a los usuarios a tu página de registro con wp_redirect.
<?php
add_action( 'login_form_register', 'wpse45134_catch_register' );
/**
* Redirige a los visitantes de `wp-login.php?action=register` a
* `sitio.com/registro`
*/
function wpse45134_catch_register()
{
wp_redirect( home_url( '/registro' ) );
exit(); // siempre llama a `exit()` después de `wp_redirect`
}
También puedes ocultar el enlace de "registro" en esa página manipulando la opción user_can_register en la página de inicio de sesión. Engánchate a login_form_lostpassword y login_form_retrievepassword, y desde ahí añade un filtro a pre_option_users_can_register.
<?php
add_action( 'login_form_lostpassword', 'wpse45134_filter_option' );
add_action( 'login_form_retrievepassword', 'wpse45134_filter_option' );
/**
* Un simple envoltorio alrededor de una llamada a add_filter para asegurarnos de que solo
* filtramos una opción en la página de inicio de sesión.
*/
function wpse45134_filter_option()
{
// usa __return_zero porque pre_option_{$opt} verifica
// contra `false`
add_filter( 'pre_option_users_can_register', '__return_zero' );
}
Como un plugin.
¡Gracias Christopher! Solo una pregunta, ¿cómo implemento esto como un plugin? Nunca he creado un plugin de WordPress antes, pero si tienes un enlace con instrucciones, etc., me siento cómodo con el código y demás.
BentCircle
Solo tendrías que copiar y pegar el código de arriba en un único archivo PHP, poner el encabezado del plugin (http://codex.wordpress.org/Writing_a_Plugin#File_Headers), colocar el archivo PHP en tu directorio wp-content/plugins. Aquí está el código completo como plugin https://gist.github.com/2012290
chrisguitarguy