You need to make a Zone Definition and set the DEFINE for who is allowed the Free Shipping Options freeoptions and set it on that shipping module with the Total >= 90 ...
Next, look at what the Zone Definition value is in the URL where you will see:
zID=XX
Now, say you wanted to customize the Flat Rate flat to turn off for this Zone Definition when the order is >= 90 ...
You can add the code in RED to do this:
Change the 92 to match your zID ...Code:if ( ($this->enabled == true) && ((int)MODULE_SHIPPING_FLAT_ZONE > 0) ) { $check_flag = false; $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_SHIPPING_FLAT_ZONE . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while (!$check->EOF) { if ($check->fields['zone_id'] < 1) { $check_flag = true; break; } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } $check->MoveNext(); } if ($check_flag == false) { $this->enabled = false; } } // bof: turn off for over 90 and zone 92 if ( ($this->enabled == true) ) { $check_flag = false; $check = $db->Execute("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . 92 . "' and zone_country_id = '" . $order->delivery['country']['id'] . "' order by zone_id"); while (!$check->EOF) { if ($check->fields['zone_id'] < 1) { $check_flag = true; break; } elseif ($check->fields['zone_id'] == $order->delivery['zone_id']) { $check_flag = true; break; } $check->MoveNext(); } if ($check_flag == true && ($order->info['total'] - $order->info['shipping_cost']) >= 90) { $this->enabled = false; } } // eof: turn off for over 90 and zone 92 } // class methods
Then adapt that to your other shipping modules ...


Reply With Quote
