[英]If else statement for EU countries in filter for WooCommerce breaks REST API
[英]woocommerce should show same price for eu but net worth for other countries
我一直在寻找两天的解决方案,不幸的是我找不到它。 Woocommerce 应该为欧盟公民显示相同的总价格,包括通常的国家税。 但是,对于欧盟以外的第三国,应显示不含税的净价格。
所以如果我使用过滤器add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');
一般来说,它在欧盟内部有效,在欧盟外部显示总价格。
所以我想我首先尝试在结帐时通过函数确定国家/地区。php 过滤器被激活或停用:
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');
}
}
当然你可以帮助我,因为我不知道我在做什么:-)
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'); } }
您的解决方案几乎是正确的。 税收计算仍然关闭。 我检查了购物车,在更改国家/地区时税收计算错误。 但是由于您的努力,我创建了这个正确的工作解决方案:
add_action('woocommerce_adjust_non_base_location_prices', 'so67632352_woocommerce_adjust_non_base_location_prices');
function so67632352_woocommerce_adjust_non_base_location_prices()
{
$countries = new WC_Countries();
$eu_countries = $countries->get_european_union_countries();
if (in_array(WC()->customer->get_shipping_country(), $eu_countries)) {
return false;
} else {
return true;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.