function uc_shipping_zones_get in Ubercart Global Quote 6
Same name and namespace in other branches
- 7 uc_shipping_zones/uc_shipping_zones.module \uc_shipping_zones_get()
Get shipping zones
Parameters
$country: country name or code (optional)
Return value
an array containing the shipping zones.
2 calls to uc_shipping_zones_get()
- uc_global_quote_quote in ./
uc_global_quote.module - Standard callback to return a shipping rate via the flat rate method.
- uc_shipping_zones_admin_validate in uc_shipping_zones/
uc_shipping_zones_admin.inc
File
- uc_shipping_zones/
uc_shipping_zones.module, line 48 - Provides zone definitions for uc_global_quote
Code
function uc_shipping_zones_get($country = NULL, $region = NULL) {
if (!$country) {
$r = db_query("SELECT * FROM {uc_shipping_zones} ORDER BY name");
}
else {
if (is_int($country)) {
$c->name = uc_country_get_by_id($country);
$c->id = $country;
}
else {
$c->name = $country;
$c->id = db_result(db_query("SELECT country_name FROM {uc_countries} WHERE country_name = '%s'", $country));
}
if (is_int($region)) {
$r->name = uc_zone_get_by_id($region);
$r->id = $region;
}
else {
$r->name = $region;
$r->id = db_result(db_query("SELECT zone_name FROM {uc_zones} WHERE zone_name = '%s'", $region));
}
// Willcard countries without regions
if ($region < 1 && !db_result(db_query("SELECT zone_id FROM {uc_zones} WHERE zone_country_id = %d", $c->id))) {
$row = db_query("SELECT * FROM {uc_shipping_zones} WHERE countries LIKE '%%%s%%'", $c->name . ',' . $c->id);
}
else {
$row = db_query("SELECT * FROM {uc_shipping_zones} WHERE countries LIKE '%%%s%%' AND (regions LIKE '%%%s%%' OR (regions IS NULL OR regions = '')) ORDER BY name", $c->name . ',' . $c->id, $r->name . ',' . $r->id);
}
return db_fetch_object($row);
}
$rows = array();
while ($row = db_fetch_object($r)) {
$rows[] = $row;
}
return $rows;
}