Come reindirizzare il link action=register nella pagina lostpassword a un link diverso?

10 mar 2012, 18:00:02
Visualizzazioni: 13.5K
Voti: 2

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!

0
Tutte le risposte alla domanda 1
2

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.

10 mar 2012 19:54:35
Commenti

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 BentCircle
10 mar 2012 20:32:43

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 chrisguitarguy
10 mar 2012 21:10:04