隐藏特定国家/地区的产品价格WooCommerce

时间:2020-09-03 11:29:48

标签: php wordpress woocommerce geolocation geoip

我试图隐藏产品价格,并从特定国家/地区的woocommerce页面添加到购物车按钮。

我发现了Turn Woocommerce shop into catalog for geolocated countries?,但它仅适用于一个国家/地区

我找不到解决方案来更改此代码以能够定位到多个国家/地区。我对需要的所有国家进行了整理

$countries = array("IT","DE","FR","AT","BE","BG","CY","HR","DK","EE","FI","EL","IE","LV","LT","LU","MT","NL","PL","PT","CZ","RO","SK","SI","ES","SE","HU");

如果有人可以帮助我,那就太好了

2 个答案:

答案 0 :(得分:0)

我确定您已经注意到,该功能不是WooCommerce插件核心功能的一部分。

而且,在不知道您已经考虑过哪些插件的情况下,我们可能两次都在同一领域做文章。话虽如此,您肯定会考虑使用第三者插件。可能的选项包括:

https://www.extendons.com/product/woocommerce-geolocation-based-products-plugin-geo-ip-filter/ https://codecanyon.net/item/woocommerce-geolocation-plugin-ip-based-products-filter/22022059 https://cyberchimps.com/how-to-redirect-based-on-geolocation-on-wordpress/

注意:您需要与各个开发人员联系,以确保他们的产品符合您的项目要求。

答案 1 :(得分:0)

您可以使用下面的这个片段,利用 WooCommerce 的内置地理位置。您需要确保在 WooCommerce 常规设置中启用了地理定位。

$userLocation = WC_Geolocation::geolocate_ip();
$userCountry = $userLocation['country'];
$countries = array("IT","DE","FR","AT","BE","BG","CY","HR","DK","EE","FI","EL","IE","LV","LT","LU","MT","NL","PL","PT","CZ","RO","SK","SI","ES","SE","HU");
    
if ( in_array($userCountry, $countries) ) { 
    // your code here to hide price & add to cart
}

此处的地理位置信息:https://woocommerce.github.io/code-reference/classes/WC-Geolocation.html