根据WooCommerce的自定义产品价格有条件地设置不同的税率

问题描述:

在我的WordPress电子商务网站我使用WP酒店预订,酒店房间预订插件。结帐过程使用WooCommerce完成。根据WooCommerce的自定义产品价格有条件地设置不同的税率

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

  • 间房的价格 - 1500
  • 房B价格 - 2700
  • 房C价格 - 2200

对于价格低于2500的房间,GST税率为12%,对于2500以上的房间,GST税率为18%。

由于我使用WP酒店预订这个自定义产品(房间管理),我无法使用附加税类 woocommerce选项设置不同的税种。

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

谢谢

这是可以访问和轻松的事情。

1°)您需要在您的WooCommerce税务设置中创建2个新税类。在这个例子中,我已经命名税种为“Tax 12”和“Tax 18”。然后对于他们每个人,你将不得不设置不同的百分比12%18%

2°)现在这里是一个自定义函数,它根据产品价格应用一个税级,这个函数钩在woocommerce_before_calculate_totals上。我不使用税收类名称,,但税类slu 012,它们以小写字母和空格替换为连字符。

所以这里是代码:

add_filter('woocommerce_before_calculate_totals', 'change_cart_items_prices', 10, 1); 
function change_cart_items_prices($cart_object) { 

    if (is_admin() && ! defined('DOING_AJAX')) 
     return; 

    foreach ($cart_object->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+