php - 在 Woocommerce 中对超过 1000 美元的澳大利亚订单实行零税
问题描述
由于新的澳大利亚消费税规则,我需要能够对价值低于 1000 美元的澳大利亚客户的销售收取标准消费税,对超过 1000 美元的销售收取零税率的消费税(因为这些由澳大利亚海关处理)。
我想根据 Woocommerce 应答代码中的购物车商品价格有条件地使用设置不同的税率,该应答代码可以适应我的需求,定位具有澳大利亚送货地址的订单。
如果有人知道我该怎么做,请告诉我。
解决方案
使用与链接答案类似的代码,您可以尝试以下针对购物车小计最多的澳大利亚客户的操作$1000
:
add_action( 'woocommerce_before_calculate_totals', 'apply_conditionally_zero_tax_rate', 10, 1 );
function apply_conditionally_zero_tax_rate( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
// Targeting australia billing country only
if ( WC()->customer->get_billing_country() !== 'AU' )
return;
$defined_amount = 1000;
$subtotal = 0;
// Loop through cart items (1st loop - get cart subtotal)
foreach ( $cart->get_cart() as $cart_item ) {
$subtotal += $cart_item['line_total'];
}
// Targeting cart subtotal up to the "defined amount"
if ( $subtotal < $defined_amount )
return;
// Loop through cart items (2nd loop - Change tax rate)
foreach ( $cart->get_cart() as $cart_item ) {
$cart_item['data']->set_tax_class( 'zero-rate' );
}
}
代码位于您的活动子主题(或活动主题)的 function.php 文件中。测试和工作。
推荐阅读
- javascript - 类型“JSX.IntrinsicElements”上不存在属性。TS2339
- spring - 如何注释请求正文以描述示例
- angular - TS2322:类型“数字”不可分配给类型“字符串”
- android - 如何将矢量图像适合(或缩放)到手机/模拟器屏幕宽度(和高度,如果需要)?
- python - 在 Python 中使用循环向多个收件人发送自定义电子邮件
- android - android上的接近传感器提供数据太多次
- java - 当所有客户端断开连接时如何停止服务器(JAVA)
- python - 使用 pyautogui 或 python 按 windows 键
- python - 以降序返回字符串的子字符串
- ruby-on-rails - 如何将 mp4 文件的可选字段添加到现有模型