Aelia has a Prices by Country for WooCommerce plugin, which can adjust prices based on customer country and hide products unavailable in a specific country. Jason James shared a function that makes Relevanssi hide unavailable products in search:
add_filter( 'relevanssi_post_ok', 'relevanssi_aelia_compatibility', 10, 2 );
function relevanssi_aelia_compatibility( $post_ok, $post_id ) {
$post = get_post( $post_id );
$post_type = $post->post_type;
$product_id = $post->ID;
if ( 'product' === $post_type && function_exists( 'wc_get_product' ) ) {
// Get the product object.
$product = wc_get_product( $product_id );
// Check if the product is purchasable.
if ( $product && ! $product->is_purchasable() ) {
$post_ok = false;
}
}
return $post_ok;
}This function uses the relevanssi_post_ok filter hook to control which posts are included in the search and the $product->is_purchasable() function to see if the product can be shown.