问题:如何使自定义购物车费用在 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()方法)_:

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

Logo

WooCommerce社区为您提供最前沿的新闻资讯和知识内容

更多推荐