• User

    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


  • User Attivo

    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.


  • User

    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


  • User

    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


  • User Attivo

    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.


  • 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)


  • User

    Ho notato che $user_login
    è sempre vuota


  • User Attivo

    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.


  • User Attivo

    @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?


  • User

    ciao maricalina, purtroppo non ho ancora risolto..e non è arrivato altro aiuto da nessuno..speriamo che qualcuno trovi il modo di farlo..


  • User Attivo

    @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


  • User Attivo

    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.