"WC()->cart->get_subtotal()" returns 0 当使用 "woocommerce_product_get_tax_class" hook
"WC()->cart->get_subtotal()" returns 0 when using "woocommerce_product_get_tax_class" hook
当小计超过特定金额时,我正在尝试减少购物车商品的增值税。但是当我使用 WC()->cart->get_subtotal()
获取小计价格时,它 returns 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()
returns 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;
}
当小计超过特定金额时,我正在尝试减少购物车商品的增值税。但是当我使用 WC()->cart->get_subtotal()
获取小计价格时,它 returns 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()
returns 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;
}