在我的Wordpress电子商务网站中,我使用 WP酒店预订,这是一个酒店客房预订插件。结帐流程使用 WooCommerce 完成。
问题:我们有不同的房间,价格不同。例如:
对于价格低于2500的房间,GST税率设定为12%,对于2500以上的房间,则为18%。
由于我对此自定义产品(房间管理)使用 WP酒店预订,我无法使用woocommerce中的附加税类选项来设置不同的税级
我需要你的帮助来编写一个功能来检查房间价值,然后决定需要为给定房间设定什么税。
谢谢
答案 0 :(得分:1)
这是易于理解的事情。
1°)您需要在WooCommerce Tax设置中创建2个新的税级。在此示例中,我将税级命名为“ Tax 12
”和“ Tax 18
”。然后,对于每个人,您必须设置不同百分比的 12%
和 18%
。
2°)现在,这是一个隐藏在 woocommerce_before_calculate_totals
动作挂钩中的自定义函数,它将根据产品价格应用税级。我不使用税级类名称但税级类别slu ,它们是小写的,空格用连字符替换。
所以这是代码:
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 +