Добавить local_pickup flat_rate в один код, но с разными значениями
Сделал расчет процентов стоимости доставки от суммы корзины без привязки к плагину, добавил local_pickup (самовывоз) и flat_rate (Единая ставка) Считает доставку в двух методах, но показывает естественно одинаковое значение.
А как сделать что-бы для local_pickup считает проценты, а flat_rate проценты + 300(адресная доставка)? Такое возможно в данном случае?
add_filter( 'woocommerce_package_rates', 'custom_package_rates', 10, 2 );
function custom_package_rates( $rates, $packages ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) ) return;
$cart_total = WC()->cart->cart_contents_total;
$cart_1_percent = $cart_total * 0.01;
$flat_rate_value = 200;
foreach($rates as $rate_key => $rate_values ) {
$method_id = $rate_values->method_id;
$rate_id = $rate_values->id;
if( $method_id == 'local_pickup' || 'flat_rate' ){
if( $cart_total < 2000 )
$cart_10_percent = 0;
elseif( $cart_total > 2001 && $cart_total <= 50000 )
$flat_rate_value = $cart_total * 0.1;
elseif( $cart_total > 50001 && $cart_total <= 200000 )
$flat_rate_value = $cart_total * 0.09;
elseif( $cart_total > 200001 && $cart_total <= 500000 )
$flat_rate_value = $cart_total * 0.08;
$rate_cost = $flat_rate_value > $cart_1_percent ? $flat_rate_value - $cart_1_percent : 0;
$rates[$rate_id]->cost = (int)( $rates[$rate_id]->cost * $rate_cost);
}
}
return $rates;
}