【发布时间】:2021-08-10 09:56:43
【问题描述】:
我这两天一直在寻找解决方案,但很遗憾我找不到。 Woocommerce 应该向欧盟公民显示相同的总价格,包括通常的国家税。但是,对于欧盟以外的第三国,应显示不含税的净价格。
因此,如果我一般使用过滤器add_filter( 'woocommerce_adjust_non_base_location_prices', '__return_false');,它在欧盟内有效,在欧盟以外则显示总价。
所以我想我首先尝试在结帐中确定国家,然后通过 functions.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');
}
}
【问题讨论】:
标签: php woocommerce filter