首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以商品价格为基础有条件地设定不同税率

以商品价格为基础有条件地设定不同税率
EN

Stack Overflow用户
提问于 2017-07-06 13:52:34
回答 1查看 4.6K关注 0票数 2

在我的Wordpress电子商务网站上,我使用WP酒店预订,这是一个用于预订酒店房间的插件。签出过程使用WooCommerce完成。

问题:我们有不同的房间,有不同的pricing.For示例:

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

对2500元以下的房间,税率定为12%,2500间以上的房间,税率为18%。

由于我使用的是WP酒店预订这个定制产品(房间管理),我无法使用额外税类选项在woocommerce中设置不同的税种。

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

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-07 06:56:39

这是一件容易理解的事情。

( 1°)您需要在WooCommerce税收设置中创建2个新的税类。在本例中,我将税务类命名为"Tax 12“和"Tax 18".然后,您必须为每个用户设置不同的12%18%.百分比。

( 2°)现在有一个自定义函数挂在woocommerce_before_calculate_totals动作钩子中,它将根据产品价格应用一个税类。我不使用税务类名,而是用小写和空格用连字符替换的赋税类段塞

这是密码:

代码语言:javascript
复制
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+上进行测试和工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44950932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档