当小计金额超过特定金额时,我正在尝试降低购物车商品的增值税。但是,当我WC()->cart->get_subtotal()
用来获取小计价格时,它返回0,而我的if语句失败。
add_action( 'woocommerce_product_get_tax_class', 'wp_check_uk_vat', 1, 2 );
function wp_check_uk_vat( $tax_class, $product ) {
$cart_total = WC()->cart->get_subtotal();
// echo $cart_total;
if( $cart_total >= 100 ) {
$tax_class = "Zero rate";
}
return $tax_class;
}
此处使用类似的代码:https : //docs.woocommerce.com/document/setting-up-taxes-in-woocommerce/#section-18
该代码的目的是在订单金额超过135英镑(符合新的英国退欧规则)时,将购物车上的增值税(而非运费)降低。
因为WC()->cart->get_subtotal()
返回0,所以if语句失败,并且不会删除增值税。
尝试这个
add_action( 'woocommerce_product_get_tax_class', 'wp_check_uk_vat', 1, 2 );
function wp_check_uk_vat( $tax_class, $product ) {
if(WC()->cart){
$subtotal = 0;
foreach ( WC()->cart->get_cart() as $cart_item ) {
$subtotal += $cart_item[ 'data' ]->get_price( 'edit' ) * $cart_item[ 'quantity' ];
}
if ( $subtotal >= 100 ) {
$tax_class = "Zero rate";
}
}
return $tax_class;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句