current_user_can_view( $product_id ) ) { wp_safe_redirect( wc_get_page_permalink( 'shop' ) ); exit; } } /** * Restrict purchasability for restricted products. * * @param bool $purchasable Current purchasable status. * @param WC_Product $product Product object. * @return bool */ public function is_purchasable( $purchasable, $product ) { if ( ! $product ) { return $purchasable; } // Prevent adding restricted products to cart. if ( ! $this->current_user_can_view( $product->get_id() ) ) { return false; } return $purchasable; } } endif;