Introduzione
In un nostro precedente articolo abbiamo affrontato il discorso relativo al redirect ad una pagina personalizzata dopo il login. Ma vi è mai capitato di dover reindirizzare l’utente ad una pagina di login personalizzata per accedere, ad esempio, allo shop e poi dover presentare all’utente la pagina che aveva richiesto prima di effettuare il login?
Nell’esempio che mostreremo di seguito utilizzeremo i filtri template_redirect e woocommerce_login_redirect per raggiungere il nostro obiettivo. Chiaramente il codice delle function può essere utilizzato con altri filtri per il login di WordPress e non avete uno shop installato.
Nell’esempio di seguito la pagina che utilizziamo per far effettuare il login all’utente è mio-account
Il codice
function custom_redirect() {
if (! is_user_logged_in() && (is_woocommerce() || is_cart() || is_checkout() )) {
wp_redirect(add_query_arg('user_redirect', $_SERVER['REQUEST_URI'],site_url('mio-account/')));
exit;
}
}
add_action('template_redirect', 'custom_redirect');
function woo_login_redirect( $redirect ) {
if(isset($_GET['user_redirect'])){
$redirect = $_GET['user_redirect'];
}
return $redirect;
}
add_filter('woocommerce_login_redirect', 'woo_login_redirect');
Dettagli
Livello: basso
Compatibilità: testato su WP versione 4.8 – Woocommerce versione 3