Hide one specific woocoomerce product

This code is tested and works fine on a fresh WP and WooCommerce installation.

if ( !is_user_logged_in()) {
  function exclude_product_from_users($q){
    $current_user = wp_get_current_user();
    $prodcuts_ids = array(648);
    $q->set( 'post__not_in', $prodcuts_ids );
  }
  add_action( 'woocommerce_product_query', 'exclude_product_from_users' );
  function return_from_product_page(){
    global $post;
    $prodcuts_ids = array(648);
    if(in_array( $post->ID , $prodcuts_ids)){
        wp_redirect(home_url("https://wordpress.stackexchange.com/"));
        exit();
    }
  }
  add_action('wp', 'return_from_product_page');
}