Come creare una pagina di login personalizzata per i clienti su una pagina specifica
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:
- Come gestire l'input dell'utente e sanificarlo, ho provato a usare i metodi di WordPress esc_attr, esc_js, esc_html [È sufficiente?]
- Ho reindirizzato alla pagina protetta da password, ma la password non ha attivato il login.
- 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.

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

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
