- Home
- Categorie
- Coding e Sistemistica
- WordPress
- personalizzare reindirizzamento dopo il login di word press
-
personalizzare reindirizzamento dopo il login di word press
ciao a tutti. vorrei far in modo che dopo aver effettuato il login in word press, il reindirizzamento fosse fatto così:
per tutti gli utenti: alla home;
per l'utente admin: alla bacheca.Ho modificato il codice nel file wp-admin.php in questo modo:
case 'login' :
default:if ( isset( $_REQUEST['redirect_to'] ) )
$redirect_to = $_REQUEST['redirect_to'];
else
if($user_identity != 'admin')
$redirect_to = 'la mia home page';else
$redirect_to = admin_url();il problema è che mi reinderizza ogni utente alla 'mia home page'. Controllando ho visto che la stringa $user_identity risulta vuota. Ho provanto anche con $user, $login ma stesso risultato.
Qualcuno sa aiutarmi?
Davide
-
Ciao ferre e benvenuto sul forum GT!
Non sono sicura di quale file hai provato a modificare, wp-admin.php? wp-login.php forse?
Io ho visto nel file wp-login.php attorno alla riga 423 sembra esserci il codice che hai anche postato tu. Io proverei con qualcosa come
if ($user->ID == 1) $redirect_to = 'la mia home page';
assicurati che l'admin sia user id 1, io ho tirato ad indovinare ma non lo so per certo.
-
ciao, si la pagina è wp-login.php...ma purtroppo ancora non va. Ti chiedo una cosa (conosco asp e mi sto avvicinando piano piano a php): a cosa serve la freccia qui sotto?
$user->ID
-
Ho provato così:
if ($user->ID != 1 )
{ if(isset( $_REQUEST['redirect_to'] ))
$redirect_to = $_REQUEST['redirect_to'];
else
$redirect_to ="index.php";
}
else
$redirect_to = admin_url();ma non entra mai nell'ultimo else
-
Ciao! credo che il problema sia che $user->ID non va bene da usare perchè in quella posizione del codice non è settato visto che l'utente si deve ancora loggare.
Ho provato in questo modo e a me sembra funzionare.
File wp-login.php riga 414 ~ 433
[php]
case 'login' :
default:if($user_login != 'admin') $redirect_to ="index.php"; else $redirect_to = admin_url(); /* if ( isset( $_REQUEST['redirect_to'] ) ) $redirect_to = $_REQUEST['redirect_to']; else $redirect_to = admin_url(); */ if ( is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, 'https') ) && ( 0 === strpos($redirect_to, 'http') ) ) $secure_cookie = false; else $secure_cookie = ''; $user = wp_signon('', $secure_cookie);
//eccetera come codice originale
[/php]Ho usato $user_login perchè è quello che l'utente ha scritto nel login form ed è una variable già settata.
Ho provato alcune volte e a me sembra funzionare, solo basta refreshare bene la pagina di login prima di inviare il form quando si prova tra un utente e un altro. (magari se usi due browser diversi fai un buon test per certo).Ovviamente puoi fare delle regole per vari utenti tipo:
$user_login != 'nomeutente'
La freccia tipo $user->ID è usata per riferire ad un metodo o una proprietà di un oggetto. In questo caso $user è l'oggetto e ID è una prorietà. Solo che durante il login, l'oggetto user non è definito ancora [credo e mi pare ovvio].
Quando usi $user, ed è un oggetto, ti ritorna stringa vuota se cerchi di stamparlo per via del fatto che è un oggetto.
A volte se vuoi debuggare puoi usare "print_r" (invece di echo $user; che non stamperebbe nulla)
print_r($user);
Questo ti stampa nella pagina tutte le proprietà esistenti per l'oggetto $user.
-
Ciao, purtroppo ancora nulla. Da quanto ne ho capito, qualsiasi sia il login che faccio, mi porta sempre alla index.php (ho provato refreshando la pagina..in un altro browser..ecc)
-
Ho notato che $user_login
è sempre vuota
-
Ciao! Domani faccio qualche altra prova... probabile che mi sia confusa, ma in effetti a volte mi portava al pannello admin e a volte alla index... strano.
-
@Jantima said:
Ciao! Domani faccio qualche altra prova... probabile che mi sia confusa, ma in effetti a volte mi portava al pannello admin e a volte alla index... strano.
Non avete più provato a fare questo reindirizzamento?
-
ciao maricalina, purtroppo non ho ancora risolto..e non è arrivato altro aiuto da nessuno..speriamo che qualcuno trovi il modo di farlo..
-
@ferre said:
ciao maricalina, purtroppo non ho ancora risolto..e non è arrivato altro aiuto da nessuno..speriamo che qualcuno trovi il modo di farlo..
Ok ferre, vedo di darmi da fare anche io.
Ciao
-
Risolto.
Ho trovato un plugin che fà esattemente quello che hai chiesto, lo puoi scaricare qui http://www.theblog.ca/wplogin-redirect, già testato funziona benissimo con l'ultima versione.
Ciao.