The code in this article is to be considered a customisation. As such, it's outside the scope of our support service. Should you need assistance implementing the code, please feel free to contact us to request a consultation.
When a product is not available for a specific region, its price is normally still visible to the customer. If you would like to hide it, you can do so with a simple filter, like in the example below. To use the code, simply add it to your theme's functions.php file.
function hide_price_for_unavailable_products($price_html, $product) { $product_purchasable = $product->is_purchasable(); /* Due to how WooCommerce is designed, a product with children may be returned * as "purchasable" even if none of its children are. This is the case with * variable products. * We want to hide prices for variable products that don't have any available * variation, therefore we have to check each variation's availability. */ if($product_purchasable && $product->has_child()) { $product_purchasable = false; foreach($product->get_children(true) as $child_product_id) { $child_product = wc_get_product($child_product_id); // If any variation is purchasable, then the variable product is // purchasable as well, and we can stop here if($child_product->is_purchasable()) { $product_purchasable = true; break; } } } // Hide price if product is not purchasable if(!$product_purchasable) { $price_html = ''; } return $price_html; } // Hide price for products that are not purchasable add_filter('woocommerce_get_price_html','hide_price_for_unavailable_products', 9, 2); // Optional - Hide price for variations that are not purchasable add_filter('woocommerce_get_variation_price_html','hide_price_for_unavailable_products', 9, 2);
You can purchase the Prices by Country plugin from our online shop.