Minimum Order Amount Based on Distance with WooFood

January 19, 2021

TutorialsWooFood
woocommerce food orderingwordpress food ordering plugin

Copy and paste the following snippet inside your functions.php to be able set a minimum order amount based on Distance on Checkout using WooFood .

add_action("wpslash_distance_check_checkout_completed", "wpslash_hook_add_minimum_order_based_on_distance", 10, 3);


function wpslash_hook_add_minimum_order_based_on_distance($distance_km, $store_address, $customer_full_address)
{
  global $woocommerce;

      $total_amount = $woocommerce->cart->cart_contents_total+$woocommerce->cart->tax_total;

       //key : up to km (distance), value: minimum order amount//
      $minimum_delivery = array();
      $minimum_delivery[2] = 10;
      $minimum_delivery[3] = 15;

      $minimum_amount_required = 0;
      $found = false;
      foreach($minimum_delivery as $up_to_km => $min_amount)
      {

        if($distance_km <= $up_to_km)
        {
          $minimum_amount_required = $min_amount;
          $found = true;
          break;
        }


      }
 
      if($found)
      {
              if ($total_amount <$minimum_amount_required )
    {
          wc_add_notice( 
                sprintf(  __( 'You must have an order with a minimum of %s to place your order, your current order total is %s.', 'woofood-plugin' ) , 
                    wc_price( $minimum_amount_required ), 
                    wc_price( $total_amount )
                ), 'error' 
            );

    }


      }
      else
      {

          wc_add_notice( 
                __( 'We are not delivering to your location', 'woofood-plugin' ), 'error' 
            );



      }






}