首页 文章

当地皮卡是Woocommerce中选择的送货方式时的免税

提问于
浏览
0

在Woocommerce,我已经在我的网站(targetools.co.il)中设置了2个送货方式:免费送货和本地取货 . 商店里的所有商品都显示含税价格 .

我希望当客户选择“本地提货”运输选项时,它将减少总额(免税区)的税 .

我已将免费送货设为17%税,当地取货为0 .

我找到了这段代码:

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

并把它放在我的主题的 functions.php 文件上,但没有任何反应 .

任何帮助表示赞赏 .

1 回答

  • 0

    WC_Cart 方法 remove_taxes()deprecated 自woocommerce版本3.2 ...

    您应该更好地使用以下功能代码,但在您需要设置零费率税级之前,如此主题中所述:Taxes applied based on cart item quantity in Woocommerce

    以下代码将从购物车商品中删除税款:

    add_action( 'woocommerce_before_calculate_totals', 'local_pickup_remove_taxes', 20, 1 );
    function local_pickup_remove_taxes( $cart ){
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
    
        if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
            return;
    
        $chosen_shipping_method = WC()->session->get( 'chosen_shipping_methods' )[0];
    
        if ( strpos($chosen_shipping_method, 'local_pickup') !== false ){
            foreach( $cart->get_cart() as $cart_item ){
                $cart_item['data']->set_tax_class('zero-rate');
            }
        }
    }
    

    代码位于活动子主题(或活动主题)的function.php文件中 . 经过测试和工作 .

相关问题