在我的 WordPress 电子商务网站中,我使用 WP Hotel Booking,一个用于酒店房间预订的插件。结帐过程是使用 WooCommerce 完成的。
问题:我们有不同的房间,价格也不同。例如:
价格低于 2500 的客房的消费税为 12%,价格高于 2500 的客房的消费税为 18%。
由于我使用 WP Hotel Booking 此定制产品(房间管理),我无法使用 WooCommerce 中的 Additional Tax Classes 选项来设置不同的税级。
我需要您帮助编写一个函数来检查房间价值,然后决定需要为给定房间设置哪些税。
谢谢
这是容易获得且容易的事情。
1°)您需要在 WooCommerce 税务设置中创建 2 个新的税务类别。在此示例中,我将该税收类别命名为“
Tax 12
”和“Tax 18
”。然后,对于每个人,您必须设置不同的 12%
和 18%
的百分比。
2°)现在这是一个挂在
woocommerce_before_calculate_totals
操作挂钩中的自定义函数,它将根据产品价格应用税级。我不使用税类名称,而是使用小写的税类名称,并且空格由连字符替换。
所以这是代码:
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+ 上运行