我已经使用woocommerce开发了目录(非购买产品),但是由于无法控制的原因,我需要能够对来自英国以外访问该网站的用户隐藏产品价格。
我正在使用“ Hiding prices based on visitor location backend bug in Woocommerce” (我最后一个问题的答案):
add_filter( 'woocommerce_get_price_html', 'country_geolocated_based_hide_price', 10, 2 );
function country_geolocated_based_hide_price( $price, $product ) {
// Not on backend
if( is_admin() )
return $price;
if( get_current_user_id() > 0 ) {
$country = WC()->customer->get_billing_country();
} else {
// Get an instance of the WC_Geolocation object class
$geo_instance = new WC_Geolocation();
// Get geolocated user geo data.
$user_geodata = $geo_instance->geolocate_ip();
// Get current user GeoIP Country
$country = $user_geodata['country'];
}
return $country !== 'GB' ? '' : $price;
}
我一直在使用以下方法进行测试:
在大多数情况下(根据这些网站),这似乎是可行的,但是我注意到结果有些不一致。某些页面似乎仍然显示产品价格。 我担心我的插件或自定义CSS之一可能会造成干扰,但是由于我只能访问这些网站进行测试,因此我不确定。
网站为:https://oxfordriderwear.com/product-category/mens/
是否有任何人可以发现可能导致此问题的原因/知道找出答案的方法?还是有更可靠的测试方法?