wordpress 隐藏国家/地区的产品价格(GB),但仅在产品有标签时显示

11dmarpk  于 2023-02-21  发布在  WordPress
关注(0)|答案(2)|浏览(204)

目前,我隐藏所有产品的价格为出GB,但我想显示产品价格只有当他们有一个标签。
我的代码隐藏产品价格出GB是任何人都可以帮助我吗?

/** hiding prices if outside of gb*/
add_filter( 'woocommerce_get_price_html', 'country_geolocated_based_hide_price', 10, 2 );
function country_geolocated_based_hide_price( $price, $product ) {
    // 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;
}
/** fin hiding prices if outside of gb*/

谢谢
显示超出GB的产品价格,且仅当它们有TAG时才显示产品价格

wlwcrazw

wlwcrazw1#

您可以通过以下方式修改代码:

// This will show product prices for products with a specific tag and outside of GB

add_filter( 'woocommerce_get_price_html', 'show_price_based_on_country_and_tag', 10, 2 );
function show_price_based_on_country_and_tag( $price, $product ) {
  
  // 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'];
    
  
  // Check if the product has the tag 'my_tag'
    $tag = 'my_tag';
    $has_tag = has_term( $tag, 'product_tag', $product->get_id() );

    // This will show price only if the user is outside of GB and the product has the tag 'my_tag'
    return ( $country !== 'GB' && $has_tag ) ? $price : '';
}
ykejflvf

ykejflvf2#

谢谢你,费萨尔!你帮了我这么多:)
第一印象,我认为它的工作,但价格是隐藏的GB以及产品没有标签。
GB =可以看到GB以外的所有内容=可以看到价格,只有产品有标签

相关问题