如何使自定义购物车费用在 WooCommerce 中征税

How to make a custom cart fee to be taxable in WooCommerce

准确地找到了我正在寻找的代码段,它可以为每个单独的购物车商品添加一个固定的费用金额,而不考虑价格。这个网站卖轮胎。所以每个轮胎都要收费3$.

这是我正在使用并有效的代码:

add_action('woocommerce_cart_calculate_fees', function() {
    if (is_admin() && !defined('DOING_AJAX')) {
        return;
    }

    $feetot = WC()->cart->get_cart_contents_count();

    WC()->cart->add_fee(__('Specific Duty on New Tires', 'txtdomain'), 3 * $feetot);
});

我对 PHP 不是很好,我正在学习。我确实花了 3 个小时试图修改此代码,以便对 $3 费用也征税。但是我想不通。

下面是我尝试过的对费用征税的尝试之一,但它不起作用:

add_action('woocommerce_cart_calculate_fees', function() {
    if (is_admin() && !defined('DOING_AJAX')) {
        return;
    }
    
    $feetot = WC()->cart->get_cart_contents_count();

    WC()->cart->add_fee(__('Specific Duty on New Tires', 'txtdomain', $taxable = true, $tax_class = ''), 3 * $feetot);
});

我做错了什么?请帮忙。

要使其正常工作,请在您的代码中替换以下行:

WC()->cart->add_fee(__('Specific Duty on New Tires', 'txtdomain', $taxable = true, $tax_class = ''), 3 * $feetot);

使用以下代码行 (参见 WC_Cart add_fee() method:

WC()->cart->add_fee( __('Specific Duty on New Tires', 'text_domain'), $feetot * 3, true, '' );

所以你正确的钩子函数代码将是:

add_action('woocommerce_cart_calculate_fees', 'custom_cart_items_fee' );
function custom_cart_items_fee( $cart ) {
    if ( is_admin() && ! defined('DOING_AJAX') ) {
        return;
    }

    $fee_amount = $cart->get_cart_contents_count() * 3;

    $cart->add_fee( __('Specific Duty on New Tires', 'text_domain'), $fee_amount, true, '' );
}

代码进入活动子主题(或活动主题)的 functions.php 文件。它应该有效。