Rendi le pagine WooCommerce accessibili solo agli utenti registrati
Ho un sito web che utilizza WordPress e un e-commerce con WooCommerce. Vorrei che il mio negozio (e tutte le sue pagine) fosse visibile solo agli utenti che hanno effettuato l'accesso.
Tramite il plugin User Access Manager, ho negato l'accesso alla pagina del negozio, ma con un link diretto a un prodotto ecc. si può comunque accedere a quella particolare pagina, anche se l'utente non ha effettuato l'accesso.
Come posso reindirizzare gli utenti, che non hanno effettuato l'accesso, a un'altra pagina se cercano di accedere a una pagina WooCommerce?

Inserisci questo nel tuo file functions.php
:
function wpse_131562_redirect() {
if (
! is_user_logged_in()
&& (is_woocommerce() || is_cart() || is_checkout())
) {
// puoi personalizzare la seguente riga in base alle tue esigenze
wp_redirect(home_url());
exit;
}
}
add_action('template_redirect', 'wpse_131562_redirect');
Cosa fa?
Verifichiamo se un utente non loggato tenta di visualizzare una pagina WooCommerce, e lo reindirizziamo alla nostra homepage.

Grazie per il tuo aiuto. Il file functions.php si trova nella cartella del mio tema?? E come posso richiamare questa funzione dalla pagina del prodotto? Grazie :-)

Grazie mille. Il tuo codice funziona perfettamente per me. Molte molte grazie :)

Questo non è il metodo migliore per reindirizzare alla pagina My Account
. È meglio recuperare il permalink della pagina My Account che hai collegato nelle impostazioni di WooCommerce. In questo modo, ogni volta che il permalink viene modificato o hai un sito multilingue in esecuzione, il permalink verrà comunque recuperato correttamente. In breve: è meglio non hardcodare permalink/slug (o URL in generale). Un metodo migliore sarebbe: wp_redirect( get_permalink( get_option( 'woocommerce_myaccount_page_id' ) ) );
