Come reindirizzare il link action=register nella pagina lostpassword a un link diverso?
Ho una pagina di registrazione WordPress specifica dove un nuovo utente completa il modulo di registrazione. Tuttavia, se qualcuno clicca sul link "password dimenticata" nella sezione di login del mio sito e poi clicca su registrati, potrà registrarsi al sito senza passare attraverso il modulo di registrazione normale. Come posso reindirizzare la pagina wp-login.php?action=register a sample.com/register?
Grazie in anticipo!
Agganciati a login_form_register e reindirizza gli utenti alla tua pagina di registrazione con wp_redirect.
<?php
add_action( 'login_form_register', 'wpse45134_catch_register' );
/**
* Reindirizza i visitatori da `wp-login.php?action=register` a
* `site.com/registrazione`
*/
function wpse45134_catch_register()
{
wp_redirect( home_url( '/registrazione' ) );
exit(); // chiama sempre `exit()` dopo `wp_redirect`
}
Puoi anche nascondere il link "registrati" su quella pagina sovrascrivendo l'opzione user_can_register nella pagina di login. Agganciati a login_form_lostpassword e login_form_retrievepassword, da qui aggiungi 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 semplice wrapper attorno a una chiamata a add_filter per assicurarci di filtrare
* un'opzione solo nella pagina di login.
*/
function wpse45134_filter_option()
{
// usa __return_zero perché pre_option_{$opt} verifica
// contro `false`
add_filter( 'pre_option_users_can_register', '__return_zero' );
}
Come plugin.
Grazie Christopher! Solo una domanda, come posso implementarlo come plugin? Non ho mai creato un plugin wp prima d'ora ma se hai un link per indicazioni, ecc. sono a mio agio con il codice e simili
BentCircle
Dovresti semplicemente copiare e incollare il codice sopra in un singolo file PHP, inserire l'intestazione del plugin (http://codex.wordpress.org/Writing_a_Plugin#File_Headers), inserire il file PHP nella directory wp-content/plugins. Ecco la cosa completa come plugin https://gist.github.com/2012290
chrisguitarguy