1

找到了我正在寻找的代码片段,可以为每个购物车项目添加固定的费用金额,而不管价格如何。这个网站卖轮胎。所以每个轮胎将收取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);
});

我做错了什么?请提供任何帮助。

4

1 回答 1

0

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

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

使用以下代码行(参见WC_Cart add_fee()方法

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 文件中。它应该有效。

于 2020-11-11T07:01:18.810 回答