以编程方式编辑 WooCommerce 应税运费时包括税费

Include taxes when editing programmatically WooCommerce taxable shipping rates

我正在使用以下代码以编程方式编辑基于购物车总计的运费:

function wc_ninja_change_flat_rates_cost($rates, $package)
{
    if (isset($rates['flat_rate:2'])) {
        $cart_subtotal = WC()->cart->cart_contents_total;
        if ($cart_subtotal >= 60) {
            $rates['flat_rate:2']->cost = 0;
            $rates['flat_rate:2']->label = __('Next Day - Free Delivery', 'woocommerce');
        }
    }
    return $rates;
}
add_filter('woocommerce_package_rates', 'wc_ninja_change_flat_rates_cost', 10, 2);

一切正常,但仍在向订单添加税费。

如何在更改这些统一费率运输方式的值时征税?

只需添加一行即可将税收设置为零。你可以这样做:

add_filter('woocommerce_package_rates', 'wc_ninja_change_flat_rates_cost', 10, 2);
function wc_ninja_change_flat_rates_cost( $rates, $package ) {
    if ( isset( $rates['flat_rate:1'] ) ) {
        $cart_subtotal = WC()->cart->cart_contents_total;
        if ( $cart_subtotal >= 60 ) {
            $rates['flat_rate:1']->cost = 0;
            $rates['flat_rate:1']->label = __('Next Day - Free Delivery', 'woocommerce');
            // set the tax amount to zero
            $rates['flat_rate:1']->taxes = 0;
        }
    }
    return $rates;
}

您可以在这个答案中找到更多信息:

代码已经过测试并且可以工作。将其添加到您的活动主题 functions.php.