Guest User

Untitled

a guest
Sep 5th, 2023
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.23 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.  
  9.         if ($obj->debugging == 'yes') {
  10.             wc_add_notice('Distance in KM: <br/>' . '<pre>' . print_r($distance_in_km, true) . '</pre>', 'notice');
  11.         }
  12.  
  13.         if($distance_in_km > 10 ){
  14.             $price_per_km = $rate['cost'] / $distance_in_km;
  15.             $cost_per_first_10km = 29;
  16.             $cost_per_remaining_kms = ( $distance_in_km - 10 ) * $price_per_km;
  17.             $rate['cost'] = $cost_per_first_10km + $cost_per_remaining_kms;
  18.  
  19.  
  20.             if ($obj->debugging == 'yes') {
  21.                 wc_add_notice('Price per KM: <br/>' . '<pre>' . print_r($price_per_km, true) . '</pre>', 'notice');
  22.                 wc_add_notice('Cost per remaining KMs: <br/>' . '<pre>' . print_r($cost_per_remaining_kms, true) . '</pre>', 'notice');
  23.             }
  24.  
  25.         }else{
  26.             $rate['label'] = 'Fixed distance rate';
  27.             $rate['cost'] = 29;
  28.         }
  29.     }
  30.     return $rate;
  31. }
Advertisement
Add Comment
Please, Sign In to add comment