首页 文章

Woocommerce - 基于运输方式计算税收

提问于
浏览
2

如何根据客户在Woocommerce结账时选择的送货方式收取不同的税率?我的商店有一个运输选项,让国际客户可以避免在泰国收取7%的增值税 .

以下是根据Woocommerce文档选择Local Pickup作为运送选项时如何禁用税:

add_filter( 'woocommerce_apply_base_tax_for_local_pickup', '__return_false' );

但是如何禁用自定义运输选项的税?

编辑:我已经开始制定解决方案了,但我可以使用第2行的帮助 . 即如何获得当前的送货方式?

function remove_tax_for_fob( $cart ) {
    $ok_remove = get_shipping_method( 'FOB' );
    if ($ok_remove){ 
        $cart->remove_taxes();
}
return $cart;
} 
add_action( 'woocommerce_calculate_totals', 'remove_tax_for_fob' );

2 回答

  • 2

    这是解决方案 . 感谢您的帮助,Anand Shah!

    /* Remove tax from cart for FOB orders */
    function remove_tax_for_fob( $cart ) {
        $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
        $chosen_shipping = $chosen_methods[0]; 
        if($chosen_shipping =='FOB') {
            $cart->remove_taxes();
        }
        return $cart;
    }
    add_action( 'woocommerce_calculate_totals', 'remove_tax_for_fob' );
    
  • 1

    尝试以下,虽然需要一些抛光

    add_action( 'woocommerce_review_order_before_submit','custom_review_order_before_submit');
    
    function custom_review_order_before_submit() {
    
        $chosen_methods = WC()->session->get( 'chosen_shipping_methods' );
        $chosen_shipping = $chosen_methods[0]; 
    
        if( "FOB" == $chosen_shipping ) {
    
            WC()->customer->is_vat_exempt = true;
    
        } else {
    
            WC()->customer->is_vat_exempt = false;
    
        }    
    
    }
    

相关问题