php 根据发运方法计税

cbwuti44  于 2023-01-12  发布在  PHP
关注(0)|答案(2)|浏览(130)

如何根据客户在Woocommerce中选择的送货方式收取不同的税率?我的商店有一个送货选项,可以让国际客户避免在泰国收取7%的增值税。
以下是根据Woocommerce文档,当选择本地提货作为运输选项时,如何禁用税收:

add_filter( 'woocommerce_apply_base_tax_for_local_pickup', '__return_false' );

但我如何禁用税的自定义航运选项?
我已经开始想办法了,但我需要你帮我解决第二行的问题,即:如何获得当前的运输方式?

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' );
6tdlim6h

6tdlim6h1#

这就是解决办法。谢谢你的帮助,阿南德·沙阿!

/* 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' );
i2byvkas

i2byvkas2#

试试下面的方法,虽然需要一些润色

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;

    }    

}

相关问题