Используя фильтр woocommerce_package_rates, он сначала работает, но при загрузке страницы оформления заказа кажется, что этот фильтр загружается несколько раз.
Пример. Если стоимость доставки составляет 20 долларов. Мне нужно умножить это на 2, что должно быть 40 долларов. Но это снова l oop, и он станет $ 80. Когда я впервые загружаю кассу, она показывает правильную цену, но через 2 секунды она снова устанавливает ее на $ 80.
Не уверен, что здесь делать, или как с этим справиться.
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;
}