Cum să creezi o pagină de autentificare personalizată pentru clienți pentru o pagină specifică

3 aug. 2013, 06:35:21
Vizualizări: 13.5K
Voturi: 1

Vreau să creez un formular de autentificare pentru clienți pe pagina principală și, după autentificare, să fie redirecționați către o pagină specifică. Dacă nu sunt autentificați și încearcă să acceseze acea pagină, trebuie redirecționați înapoi la pagina principală.

Am încercat să folosesc Theme my login, dar nu am obținut soluția dorită. Am încercat să creez propria zonă de widget și prin protejarea paginii cu parolă. Am întâmpinat câteva probleme:

  1. Cum să prelucrez și să sanitizez datele introduse de utilizator. Am încercat să folosesc metodele WordPress esc_attr, esc_js, esc_html. [Este suficient?]
    1. Am redirecționat pagina către o pagină protejată cu parolă, dar parola nu a declanșat autentificarea.
    2. După ce mă autentific pe pagina protejată cu parolă, nu se deconectează chiar dacă șterg cache-ul sau cookie-urile.

Deci, practic, caut o soluție pentru aceste probleme. Mulțumesc!

0
Toate răspunsurile la întrebare 2
0

Iată un articol excelent care explică o soluție pentru ceea ce încerci să faci și pe care am folosit-o personal. http://justintadlock.com/archives/2012/10/16/how-i-run-a-membership-site

În cazul tău, vei dori să personalizezi funcția th3_club_member_template în ceva de genul acesta:

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' ) ) //schimbă aceasta pentru a se potrivi nevoilor tale 
    {
        wp_redirect( home_url() );
        exit();
    }
}

Apoi poți folosi Theme My Login pentru a configura formularul de autentificare.

După ce utilizatorul se autentifică, poți fie să îi redirecționezi manual, fie să folosești un plugin precum Peters Login Redirect

Pentru a-i redirecționa manual, poți face ceva de genul acesta:

function nifty_login_redirect( $redirect_to, $request, $user ){
    //există un utilizator de verificat?
    global $user;
    if( isset( $user->roles ) && is_array( $user->roles ) ) {
        //verifică pentru administratori
        if( in_array( "administrator", $user->roles ) ) {
            // redirecționează-i la locația implicită
            return $redirect_to;
        } else {
            return home_url().'/client-area'; //schimbă aceasta
        }
    }
    else {
        return $redirect_to;
    }
}
add_filter("login_redirect", "nifty_login_redirect", 10, 3);

[Codex]

3 aug. 2013 07:52:02
0

Compania noastră utilizează WP-Client, un plugin care permite crearea de portaluri pentru clienți... poți crea unul pentru fiecare client în parte și poți controla ce văd aceștia când se autentifică.

Poți personaliza chiar și pagina de login... a fost destul de ușor de configurat, iar suportul tehnic este foarte bun.

Iată site-ul: http://wp-client.com

1 ian. 2014 18:55:33