Cómo crear una página de inicio de sesión personalizada para clientes en una página específica

3 ago 2013, 06:35:21
Vistas: 13.5K
Votos: 1

Quiero crear un formulario de inicio de sesión para clientes en la página de inicio y que, al iniciar sesión, el cliente sea dirigido a una página específica. Si intenta acceder a esa página sin estar logueado, debe ser redirigido a la página de inicio.

He intentado usar Theme my login pero no obtuve la solución deseada. También probé crear mi propia área de widgets y proteger la página con contraseña. Encontré varios problemas:

  1. Cómo tomar la entrada del usuario y sanitizarla. Intenté usar los métodos de WordPress esc_attr, esc_js, esc_html [¿Es eso suficiente?]
    1. Redirigí la página a una protegida por contraseña, pero la contraseña no activó el login.
    2. Una vez que inicio sesión en la página protegida, no parece cerrar sesión incluso si limpio la caché o las cookies.

Básicamente, quiero encontrar la solución. Gracias.

0
Todas las respuestas a la pregunta 2
0

Aquí hay un excelente artículo que explica una solución para lo que estás intentando hacer y que yo mismo he utilizado. http://justintadlock.com/archives/2012/10/16/how-i-run-a-membership-site

En tu caso, querrás personalizar la función th3_club_member_template para que sea algo así:

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' ) ) //cambia esto según tus necesidades
    {
        wp_redirect( home_url() );
        exit();
    }
}

Luego puedes usar Theme My Login para configurar el formulario de acceso.

Una vez que el usuario inicie sesión, puedes redirigirlo manualmente o usar un plugin como Peters Login Redirect.

Para redirigirlos manualmente puedes hacer algo así:

function nifty_login_redirect( $redirect_to, $request, $user ){
    //¿hay un usuario que verificar?
    global $user;
    if( isset( $user->roles ) && is_array( $user->roles ) ) {
        //verificar administradores
        if( in_array( "administrator", $user->roles ) ) {
            // redirigirlos al lugar por defecto
            return $redirect_to;
        } else {
            return home_url().'/client-area'; //cambia esto
        }
    }
    else {
        return $redirect_to;
    }
}
add_filter("login_redirect", "nifty_login_redirect", 10, 3);

[Codex]

3 ago 2013 07:52:02
0

Nuestra empresa utiliza WP-Client, que es un plugin que permite crear portales para clientes... puedes crear uno para cada cliente individual y controlar lo que ven cuando inician sesión.

Incluso puedes personalizar la página de inicio de sesión... ha sido bastante fácil de configurar y el soporte es muy bueno.

Aquí está el sitio web: http://wp-client.com

1 ene 2014 18:55:33