Guest User

Shipping rate by distance, charge flat rate conditionally

a guest
Sep 5th, 2023
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.75 KB | None | 0 0
  1. add_filter('wpali_distance_shipping_rate', 'wpali_add_base_price_to_rate', 10, 2);
  2. function wpali_add_base_price_to_rate($rate, $obj)
  3. {
  4.     if (!empty($rate['meta_data']['value'])) {
  5.         $meters = $rate['meta_data']['value'];
  6.         $distance_in_km = $meters * 0.001;
  7.         $distance_in_km = round($distance, 2);
  8.         if($distance_in_km > 10 ){
  9.             $price_per_km = $rate['cost'] / $distance_in_km;
  10.             $cost_per_first_10km = 29;
  11.             $cost_per_remaining_kms = ( $distance_in_km - 10 ) * $price_per_km;
  12.             $rate['cost'] = $cost_per_first_10km + $cost_per_remaining_kms;
  13.         }else{
  14.             $rate['label'] = 'Fixed distance rate';
  15.             $rate['cost'] = 29;
  16.         }
  17.     }
  18.     return $rate;
  19. }
Advertisement
Add Comment
Please, Sign In to add comment