根据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+