【问题标题】:Set different Tax rates conditionally based on cart item prices in Woocommerce根据 Woocommerce 中的购物车商品价格有条件地设置不同的税率
【发布时间】:2017-12-10 13:56:01
【问题描述】:

在我的 Wordpress 电子商务网站中,我使用 WP Hotel Booking,这是一个酒店房间预订插件。结帐过程使用 WooCommerce 完成。

问题:我们有不同的房间,价格不同。例如:

  • A房价格-1500
  • B房价格-2700
  • c房价格-2200

价格低于 2500 的客房征收 12% 的消费税,高于 2500 的客房征收 18%。

由于我为此自定义产品(房间管理)使用 WP 酒店预订,我无法在 woocommerce 中使用 附加税级 选项来设置不同的税级.

我需要你的帮助来编写一个函数来检查房间价值,然后决定需要为给定房间设置什么税。

谢谢

【问题讨论】:

    标签: php wordpress woocommerce cart tax


    【解决方案1】:

    这很容易获得。

    1°)您需要在 WooCommerce 税收设置中创建 2 个新的税收类别。在此示例中,我将税类命名为“Tax 12”和“Tax 18”。然后,您必须为每个人设置不同百分比的 12%18%

    2°) 现在这是一个挂在 woocommerce_before_calculate_totals 动作挂钩中的自定义函数,它将根据产品价格应用一个税级。我不使用税类名称,而是税类 slugs,它们是小写的,空格被连字符替换。

    代码如下:

    add_action( 'woocommerce_before_calculate_totals', 'change_cart_items_prices', 10, 1 );
    function change_cart_items_prices( $cart ) {
    
        if ( is_admin() && ! defined( 'DOING_AJAX' ) )
            return;
    
        if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
            return;
    
        foreach ( $cart->get_cart() as $cart_item ) {
            // get product price
            $price = $cart_item['data']->get_price();
    
            // Set conditionaly based on price the tax class
            if ( $price < 2500 )
                $cart_item['data']->set_tax_class( 'tax-12' ); // below 2500
            if ( $price >= 2500 )
                $cart_item['data']->set_tax_class( 'tax-18' ); // Above 2500
        }
    }
    

    代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件中。

    此代码经过测试,可在 WooCommerce 版本 3+ 上运行


    【讨论】:

    • 嗨,我尝试将您的代码粘贴到我新安装的 wordpress/woocommerce 上的 functions.php 上。我用标准和零税率替换了 tax-12 和 tax-18。两个班级都设置正确。 1. 标准利率 = 8% 2. 零利率 - 0% 但似乎不起作用。税不会显示。我错过了什么?谢谢
    • 感谢您的回答,但是,如果我们启用价格含税的设置会变得很棘手。我们将如何处理?
    • @RajPawanGumdal 您不应为多种税率设置含税价格,而应始终设置不含税价格...
    • 我假设性地同意,但是,这可能会变得复杂且可以实现。现在,假设不含税的价格是例如 2510,这意味着在 2510 向客户收取更高的费用并收取 18% 的税将使卖方获得的价值低于以 2490 和 12% 的税向客户收取更低的价值。在后一种情况下,这对买卖双方也是双赢的。我认为我们可以将这些逻辑内置于含税价格中,以提供价值解决方案。
    猜你喜欢
    • 2018-03-08
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2021-12-21
    • 2019-02-02
    • 1970-01-01
    • 2018-02-17
    相关资源
    最近更新 更多