根据 Woocommerce 中的购物车商品价格有条件地设置不同的税率
Set different Tax rates conditionally based on cart item prices in Woocommerce
在我的 Wordpress 电子商务网站中,我使用 WP Hotel Booking,一个用于酒店房间预订的插件。使用 WooCommerce.
完成结帐过程
问题:我们有不同的房间,有不同的 pricing.For 示例:
- A房价格 - 1500
- B 房价格 - 2700
- c房价格 - 2200
价格低于 2500 的房间征收 12% 的消费税,高于 2500 的房间征收 18%。
因为我正在使用 WP Hotel Booking 这个自定义产品(房间管理),所以我无法使用 附加税 类 woocommerce 中设置不同税费的选项 类。
我需要你帮助我编写一个函数来检查房间价值,然后决定需要为给定房间设置什么税。
谢谢
这是一种易于访问和简单的东西。
1°) 您需要在 WooCommerce 税收设置中创建 2 个新税收 classes。在这个例子中,我将该税命名为 classes“Tax 12
”和“Tax 18
”。然后,对于它们中的每一个,您都必须设置 12%
和 18%
.[=16= 的不同百分比]
2°) 现在这是一个挂钩在 woocommerce_before_calculate_totals
操作挂钩中的自定义函数,它将根据产品价格应用税 class .我不使用税 class 名称, 但税 class slugs,小写和空格被连字符替换。
所以这是代码:
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+
在我的 Wordpress 电子商务网站中,我使用 WP Hotel Booking,一个用于酒店房间预订的插件。使用 WooCommerce.
完成结帐过程问题:我们有不同的房间,有不同的 pricing.For 示例:
- A房价格 - 1500
- B 房价格 - 2700
- c房价格 - 2200
价格低于 2500 的房间征收 12% 的消费税,高于 2500 的房间征收 18%。
因为我正在使用 WP Hotel Booking 这个自定义产品(房间管理),所以我无法使用 附加税 类 woocommerce 中设置不同税费的选项 类。
我需要你帮助我编写一个函数来检查房间价值,然后决定需要为给定房间设置什么税。
谢谢
这是一种易于访问和简单的东西。
1°) 您需要在 WooCommerce 税收设置中创建 2 个新税收 classes。在这个例子中,我将该税命名为 classes“Tax 12
”和“Tax 18
”。然后,对于它们中的每一个,您都必须设置 12%
和 18%
.[=16= 的不同百分比]
2°) 现在这是一个挂钩在 woocommerce_before_calculate_totals
操作挂钩中的自定义函数,它将根据产品价格应用税 class .我不使用税 class 名称, 但税 class slugs,小写和空格被连字符替换。
所以这是代码:
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+