Wordpress - Make WooCommerce pages accessible for logged in users only
Put this in your functions.php
file:
function wpse_131562_redirect() {
if (
! is_user_logged_in()
&& (is_woocommerce() || is_cart() || is_checkout())
) {
// feel free to customize the following line to suit your needs
wp_redirect(home_url());
exit;
}
}
add_action('template_redirect', 'wpse_131562_redirect');
What does it do?
We check if a not-logged-in user wants to see a WooCommerce page, and redirect him/her to our home page.
I just changed the redirection to
wp_redirect( site_url('my-account/') )
so users are redirected on the "My-Account" page if not logged in or registered.