WooCommerce套餐价格(循环2次)产生倍增的价格成本
使用这个过滤器,woocommerce\u package\u rates,它开始工作,但是在加载结帐页面时,它似乎会多次加载这个过滤器 例如。 如果运费是20美元。我需要把这个乘以2,应该是40美元。 但它会再次循环,变成80美元。 当我第一次加载收银台时,它显示了正确的价格,但在2秒钟后,它再次将其调整为80美元 不知道该怎么办,也不知道该如何处理WooCommerce套餐价格(循环2次)产生倍增的价格成本,woocommerce,hook-woocommerce,woothemes,Woocommerce,Hook Woocommerce,Woothemes,使用这个过滤器,woocommerce\u package\u rates,它开始工作,但是在加载结帐页面时,它似乎会多次加载这个过滤器 例如。 如果运费是20美元。我需要把这个乘以2,应该是40美元。 但它会再次循环,变成80美元。 当我第一次加载收银台时,它显示了正确的价格,但在2秒钟后,它再次将其调整为80美元 不知道该怎么办,也不知道该如何处理 add_filter( 'woocommerce_package_rates', 'woocommerce_shipping_rates', 1
add_filter( 'woocommerce_package_rates', 'woocommerce_shipping_rates', 10, 2);
function woocommerce_shipping_rates($rates, $package) {
$multiplier = 2;
foreach ( $rates as $rate_key => $rate ){
if( 'canada_post' === $rate->method_id ) {
$has_taxes = false;
// Set the new cost
//echo "CALC:". $rate->cost ." * ". $multiplier ;
$rates[$rate_key]->cost = $rate->cost * $multiplier ;
// Taxes rate cost (if enabled)
foreach ($rates[$rate_key]->taxes as $key => $tax){
if( $tax > 0 ){
// New tax calculated cost
$taxes[$key] = $tax * $multiplier ;
$has_taxes = true;
}
}
// Set new taxes cost
if( $has_taxes )
$rates[$rate_key]->taxes = $taxes;
}
}
return $rates;
}