Recordar página antes de iniciar sesión, redirigir a esa página después de iniciar sesión

2

Tengo una tienda de woocommerce que solo permite a los usuarios registrados hacer compras. He reemplazado el botón Agregar al carrito con un botón de "inicio de sesión" si el usuario aún no ha iniciado sesión. Esto lo lleva a la página (mi cuenta) donde pueden elegir iniciar sesión o registrarse.

Sin embargo, me preguntaba si podría ir más allá y hacer que WordPress recuerde en qué página estaba el usuario antes de ingresar a la página de inicio de sesión. Y si inician sesión, los redireccionará a esa página.

Encontré esta secuencia de comandos que redirige a los usuarios a la página de inicio de sesión si hacen clic en un producto / página. Y luego, si inician sesión, los regresa a la página a la que intentaban ingresar. Esto está cerca de lo que quiero hacer, pero en lugar de llevarlos a la página de inicio de sesión antes de ver un producto. Quiero que ellos puedan ver el producto. Luego haga clic en un botón que los lleve a ((página de mi cuenta)) y si inician sesión, los redirecciona a la página del producto.

¿Redirigir al usuario a la URL original después de iniciar sesión?

Cualquier ayuda sería muy apreciada. Función, complementos, cualquier cosa.

¡Gracias!

    
pregunta Patrick 21.07.2018 - 03:53

2 respuestas

2

Puede utilizar la función de referencia de wordpress. Por ejemplo, establezca la URL de referencia en la sesión haciendo clic en el botón Agregar al carrito o en cualquier botón para almacenar la URL anterior. Una vez que inicie sesión o se registre correctamente, agregue la redirección de inicio de sesión exitosa de Woocommerce a esa URL.

Para más información, lea la URL de referencia de WordPress, lea aquí;

enlace

Para la redirección de inicio de sesión de Woocommerce, lea aquí;

enlace

    
respondido por el Karan 21.07.2018 - 05:35
2

Para cualquier persona que busque una solución a esto. Mi novio y yo lo hemos resuelto con el siguiente script. Simplemente pegue en su archivo functions.php para cualquier configuración de woocommerce.

/** Log in redirect to previous page by portalpacific.net **/
// start global session for saving the referer url
function start_session() {
    if(!session_id()) {
        session_start();
    }
}
add_action('init', 'start_session', 1);

// get the referer url and save it to the session
function redirect_url() {
    if (! is_user_logged_in()) {
        $_SESSION['referer_url'] = wp_get_referer();
    } else {
        session_destroy();
    }
}
add_action( 'template_redirect', 'redirect_url' );

//login redirect to referer url
function login_redirect() {
    if (isset($_SESSION['referer_url'])) {
        wp_redirect($_SESSION['referer_url']);
    } else {
        wp_redirect(home_url());
    }
}
add_filter('woocommerce_login_redirect', 'login_redirect', 1100, 2);

/** end here */

Gracias por ayudarnos a comenzar Karen.

    
respondido por el Patrick 21.07.2018 - 18:34

Lea otras preguntas en las etiquetas