Guest User

Untitled

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