Come creare una pagina di login personalizzata per i clienti su una pagina specifica

3 ago 2013, 06:35:21
Visualizzazioni: 13.5K
Voti: 1

Voglio creare un form di login per i clienti nella homepage e quando un cliente effettua l'accesso, voglio che venga reindirizzato a una pagina specifica. Se non è loggato e prova ad accedere a quella pagina, deve essere reindirizzato alla homepage.

Ho provato a usare Theme my login ma non ho ottenuto la soluzione desiderata. Ho tentato di creare la mia area widget e di proteggere la pagina con password. Ho riscontrato alcuni problemi:

  1. Come gestire l'input dell'utente e sanificarlo, ho provato a usare i metodi di WordPress esc_attr, esc_js, esc_html [È sufficiente?]
    1. Ho reindirizzato alla pagina protetta da password, ma la password non ha attivato il login.
    2. Una volta effettuato l'accesso alla pagina protetta, non sembra disconnettermi anche se cancello cache o cookie.

In sostanza, cerco una soluzione a questi problemi. Grazie.

0
Tutte le risposte alla domanda 2
0

Ecco un ottimo articolo che spiega una soluzione per fare quello che stai cercando di fare e che ho personalmente utilizzato. http://justintadlock.com/archives/2012/10/16/how-i-run-a-membership-site

Nel tuo caso, vorrai personalizzare la funzione th3_club_member_template in qualcosa di simile a questo:

add_filter( 'template_redirect', 'nifty_log_in_check', 99 );

function nifty_log_in_check( $template ) {

    if ( is_page('clients_only' ) ) && !current_user_can( 'view_client_content' ) ) //modifica questo in base alle tue esigenze
    {
        wp_redirect( home_url() );
        exit();
    }
}

Puoi poi utilizzare Theme My Login per configurare il modulo di accesso.

Una volta che l'utente ha effettuato il login, puoi reindirizzarlo manualmente o utilizzare un plugin come Peters Login Redirect.

Per reindirizzarli manualmente puoi fare qualcosa del genere:

function nifty_login_redirect( $redirect_to, $request, $user ){
    //c'è un utente da verificare?
    global $user;
    if( isset( $user->roles ) && is_array( $user->roles ) ) {
        //controlla per gli amministratori
        if( in_array( "administrator", $user->roles ) ) {
            // reindirizzali alla posizione predefinita
            return $redirect_to;
        } else {
            return home_url().'/client-area'; //modifica questo
        }
    }
    else {
        return $redirect_to;
    }
}
add_filter("login_redirect", "nifty_login_redirect", 10, 3);

[Codex]

3 ago 2013 07:52:02
0

La nostra azienda utilizza WP-Client, un plugin che permette di creare portali clienti... puoi crearne uno per ogni singolo cliente e controllare cosa vedono quando effettuano l'accesso.

Puoi persino personalizzare la pagina di login... è stato abbastanza semplice da configurare e il supporto è davvero buono.

Ecco il sito web: http://wp-client.com

1 gen 2014 18:55:33