首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >欧盟应该表现出同样的价格,而其他国家则应该表现出同样的净值。

欧盟应该表现出同样的价格,而其他国家则应该表现出同样的净值。
EN

Stack Overflow用户
提问于 2021-05-21 07:14:59
回答 1查看 167关注 0票数 1

两天来我一直在寻找解决方案,但不幸的是我找不到。Woocommerce应该向欧盟公民展示同样的总价格,包括通常的国家税收。然而,对于欧盟以外的第三国来说,应该显示不征税的净价格。

所以,如果我一般使用过滤器add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');,它可以在欧盟内部工作,在外面显示总价格。

因此,我想首先在结账中确定国家,通过functions.php,过滤器要么被激活,要么被停用:

代码语言:javascript
复制
add_action( 'woocommerce_cart_calculate_fees', 'same_price_for_eu' );
function same_price_for_eu(){

   $countries = new WC_Countries();
  
   $eu_countries = $countries->get_european_union_countries();

   $billing_country = get_option( 'billing_country' );
   $shipping_country = get_option( 'shipping_country' );

   if ( in_array( $shipping_country, $eu_countries ) ) {
  add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
    
   } else {
   remove_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
     
   }
}

你当然可以帮我,因为我不知道我在做什么:-)

编辑:可以解决它!

代码语言:javascript
复制
add_action( 'woocommerce_cart_calculate_fees', 'same_price_for_eu' );
function same_price_for_eu(){

   $countries = new WC_Countries();
  
   $eu_countries = $countries->get_european_union_countries();

   if ( in_array( WC()->customer->get_shipping_country(), $eu_countries) ){
  add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
    
   } else {
   remove_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
     
   }
}
EN

回答 1

Stack Overflow用户

发布于 2022-01-10 16:19:13

你的解决方案几乎是正确的。税收计算仍未完成。我检查了购物车,当改变国家时,税收计算是错误的。但多亏了你的努力,我创造了一个合适的解决方案:

代码语言:javascript
复制
/**
 * @param $bool
 * @return bool
 */
function so67632352_woocommerce_adjust_non_base_location_prices($bool): bool
{
    $countries = new WC_Countries();
    $eu_countries = $countries->get_european_union_countries();

    if (WC()->customer && in_array(WC()->customer->get_shipping_country(), $eu_countries)) {
        $bool = false;
    }

    return $bool;
}

add_filter('woocommerce_adjust_non_base_location_prices', 'so67632352_woocommerce_adjust_non_base_location_prices');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67632352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档