问题描述
我的 WooCommerce 网站中有 5 种不同的语言 (WPML)。 是否可以为每种语言设置帐单和运输国家/地区标准? 因为我也有不同的税率,如果商店中的每种语言都使用相同的帐单和发货国家/地区,则在查看产品时基本上会显示错误的价格。
我找到了这个代码:
add_filter( 'default_checkout_billing_country','njengah_default_checkout_country',10,1 );
function njengah_default_checkout_country( $country ) {
// If the user already exists,don't override country
if ( WC()->customer->get_is_paying_customer() ) {
return $country;
}
return 'US'; // Override default to United States (an example)
}
但此代码不会覆盖我想要实现的访问者地理位置设置。
在 WPML 论坛上发现另一个问题描述了这个问题: https://wpml.org/forums/topic/on-language-switch-the-woocommerce-country-should-switch-tax-issue/
解决方案:
我在 WPML 论坛上找到了一个解决方法并将其包裹起来
if (!is_checkout)
所以在店里是正确的,但在结账时计算的是实际税。
function filter_woocommerce_calc_tax( $taxes,$price,$rates,$price_includes_tax,$suppress_rounding )
{
if (!is_checkout()) {
$current_lang = apply_filters( 'wpml_current_language',NULL );
if($current_lang == 'fr'){
foreach ($taxes as $key => $tax){
$vat = 20 /100;
$taxes[$key]= $price * $vat;
}
}
if($current_lang == 'de'){
foreach ($taxes as $key => $tax){
$vat = 19 /100;
$taxes[$key]= $price * $vat;
}
}
return $taxes;
}
};
add_filter( 'woocommerce_calc_tax','filter_woocommerce_calc_tax',5 );
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)