members only products

Use this code on your child theme’s functions.php file..

//Hide for non-logged-in users (public visitors)
function bp_logged_out_page_template_redirect() { 

    if( ! is_user_logged_in() && is_page( 'members' ) 
        || is_page( 'activity' ) 
        || bp_is_user() ) 
    { 
        wp_redirect( home_url( '/register/' ) ); exit(); 
    }
}

add_action( 'template_redirect', 'bp_logged_out_page_template_redirect' );

The above snippet will do:
•IF the user is not logged-in..
•AND the page name is ‘members’ OR ‘activity’ OR bp-profile-page..
•THEN it will redirect to REGISTER page.

Ref: https://vvcares.com/w/wordpress-hide-pages-for-non-logged-in-users/