Set a Minimum Order amount per Zip Code

Here is a small snippet on how to set a minimum amount for for delivery per zip code

Just copy and paste the following code snippet your functions.php on your child theme.

add_action( 'woocommerce_checkout_process', 'woofood_custom_hook_minimum_per_zipcode', 9999999 );
 function woofood_custom_hook_minimum_per_zipcode() {
   global $woocommerce;

    $minimum = array();

    //add postal code to array with value the minimum amount without spances//
    $minimum["45565"] = 15;
    $minimum["56654"] = 20;
    $billing_postcode = isset($_POST["billing_postcode"]) ? str_replace(" ", "", $_POST["billing_postcode"]) : "";
    
   

    if ( (isset($_POST["woofood_order_type"]) && ($_POST["woofood_order_type"] == "delivery")  )) {


    if (array_key_exists($billing_postcode, $minimum) &&  ( WC()->cart->subtotal < $minimum[$billing_postcode])  )
    {
          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[$billing_postcode] ), 
                    wc_price( WC()->cart->subtotal )
                ), 'error' 
            );

    }
    else if(!array_key_exists($billing_postcode, $minimum))
    {
        wc_add_notice( 
                sprintf(  __( 'Sorry, but we are not deliving to postal code %s.', 'woofood-plugin' ) , 
                    $billing_postcode

                ), 'error' 
            );
    }

      

    }
}