【问题标题】:Change applied taxes rate based on cart item quantity in Woocommerce根据 Woocommerce 中的购物车商品数量更改适用税率
【发布时间】:2018-11-30 01:10:32
【问题描述】:

有没有办法根据购物车中产品的数量创建适用于产品的税级。

示例:如果同一产品的商品少于 6 件,则适用税款,否则不适用。

感谢任何帮助。

【问题讨论】:

    标签: php wordpress woocommerce hook-woocommerce tax


    【解决方案1】:

    这是可能的。

    首先在 WooCommerce 税务设置中创建一个名为“零税率”的税类,例如:

    1) 在税收选项部分添加“零税率”并保存:

    2) 出现“零利率”选项卡。在此选项卡部分下将税款设置为零:

    代码:

    add_action( 'woocommerce_before_calculate_totals', 'apply_conditionally_taxes', 20, 1 );
    function apply_conditionally_taxes( $cart ){
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
    
        foreach( $cart->get_cart() as $cart_item ){
            if( $cart_item['quantity'] >= 6 ){
                $cart_item['data']->set_tax_class('zero-rate');
            }
        }
    }
    

    代码进入您的活动子主题(或活动主题)的 function.php 文件中。经过测试并且可以工作。

    【讨论】:

    • 嗨 Loic,感谢您的回答,它就像一个魅力!我们又添加了一个条件。由于您的代码适用于所有产品,因此我们希望对单个产品不征税。因此,我们在产品上创建了一个选项。当购物车更新时,我们会检查产品是否有此选项。然后巧合地应用税收。再次感谢您! !!!
    • 在此处添加一个微妙的注意事项,如果使用 get_tax_class(),税类将始终作为带有破折号的小写字符串返回,无论名称是什么。因此,如果您已将税类设为:“零税率”,它将返回为“零税率”。
    • @LoicTheAztec 我在这里注意到一个问题,如果我在购物车页面上更新购物车数量,则该操作不会被挂钩并且数量不会更新。所以,如果我从 6 个产品变成 5 个产品,仍然没有税。您能否建议使用另一个挂钩来代替 woocommerce_before_calculate_totals 在产品旁边的购物车中的“更新”按钮上进行更新?
    • @ntk4 不正确!因为每次购物车内容更改时都会触发此挂钩。该代码在上一个 WooCommerce 版本上完美运行。如果不是这种情况,是因为其他一些自定义、插件或您的主题造成了麻烦。
    • @LoicTheAztec 你是对的。我没有在我的函数中正确捕获项目数量。我已经重新设计了这个功能,一切都很好!再次,非常感谢您的帮助。很高兴有这样的资源/你来帮助像我这样的人!
    猜你喜欢
    • 1970-01-01
    • 2021-05-28
    • 2018-07-31
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 2018-12-23
    • 1970-01-01
    相关资源
    最近更新 更多