WordPress Disable Page if user not logged in

I have a page ‘account’ where I want users to be able to edit their profile.

But how do I disable the page for users who are not logged in?
Maybe with: !is_user_logged_in ?

Read More

They should not be able to access the page. Maybe get redirected to login page.

Related posts

Leave a Reply

2 comments

  1. Add this code in your Function.php file.
    using template_redirect action hook

    function template_redirect_fn()
    {
        if(is_page (Page ID, title, slug of account page ) && !is_user_logged_in ())
        {
            $loginUrl = home_url('/login-page/');
            wp_redirect($loginUrl);
             exit(); 
        }
    
    }
    add_action( 'template_redirect', 'template_redirect_fn' );
    

    is_page() is check page is account [you can pass the account page id or page title or page slug ]

    is_user_logged_in() is check user is login or not return (bool) True if user is logged in, false if not logged in.

  2. You can do this flowing way.

    if( !is_user_logged_in ) {
       $loginUrl = home_url('/login-page/');
       echo '<script>window.location.href = "'.$loginUrl.'";</script>';
    }