gpt4 book ai didi

php - 在 "woocommerce_package_rates"钩子(Hook)中自定义税额

转载 作者:行者123 更新时间:2023-12-05 01:44:26 27 4
gpt4 key购买 nike

我最近尝试使用钩子(Hook)修改我的所有运费以应用折扣。

这是我的代码:

add_filter( 'woocommerce_package_rates', 'woocommerce_package_rates' );
function woocommerce_package_rates( $rates ) {
$user_id = get_current_user_id();
if ( ! wc_memberships_is_user_active_member( $user_id, 'silver' ) ) { return $rates; }
$discount_amount = 30; // 30%

foreach($rates as $key => $rate ) {
$rates[$key]->cost = $rates[$key]->cost - ( $rates[$key]->cost * ( $discount_amount/100 ) );
}

return $rates;
}

但还有一步是税收!我弄错了税。
例如,我的运费为 3$。打折后,现在是 2,10$

我以 2$ 的价格购买一件商品,运费为 2.10$。我得到了 1 美元的税费(作为 3 美元的运费。看起来他没有接受零钱),通常是 0.82$

我需要什么才能获得正确的税收计算?

最佳答案

更新:与运输方式的税收成本计算有关

您的代码有一些小错误,您错过了税收计算折扣。我已经稍微重新访问了您的代码,您应该试试这个:

add_filter( 'woocommerce_package_rates', 'conditional_shipping_discount', 10, 2 );
function conditional_shipping_discount( $rates, $packages ) {

$user_id = get_current_user_id();
if ( ! wc_memberships_is_user_active_member( $user_id, 'silver' ) ) return $rates;

$percent = 30; // 30%
$discount = 1 - ($percent / 100);

foreach($rates as $rate_key => $rate_values ) {
// Get original cost
$original_cost = $rates[$rate_id]->cost;
// Calculate the discounted rate cost
$new_cost = $original_cost * $discount;
// Set the discounted rate cost
$rates[$rate_key]->cost = number_format(new_cost, 2);
// calculate the conversion rate (for taxes)
$conversion_rate = $new_cost / $original_cost;

// Taxes rate cost (if enabled)
$taxes = array();
foreach ($rate->taxes as $key => $tax){
if( $tax > 0 ){ // set the new tax cost
// set the new line tax cost in the taxes array
$taxes[$key] = number_format( $tax * $conversion_rate, 2 );
}
}
// Set the new taxes costs
$rates[$rate_key]->taxes = $taxes
}
return $rates;
}

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

此代码已经过测试并且可以工作。

You should need to refresh the shipping caches:

  1. 首先,此代码已保存在您的 function.php 文件中。
  2. 在运送设置中,输入运送区域并禁用运送方式并“保存”。然后重新启用该运输方式并“保存”。 大功告成。

关于php - 在 "woocommerce_package_rates"钩子(Hook)中自定义税额,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46038622/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com