function uc_shipping_zones_get in Ubercart Global Quote 7
Same name and namespace in other branches
- 6 uc_shipping_zones/uc_shipping_zones.module \uc_shipping_zones_get()
Get shipping zones
Parameters
$country: country name or code (optional)
$region: region name or id (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 52 - 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")
->fetchAll();
}
else {
// Get country name or id
$c = new stdClass();
if (is_int($country)) {
$c->name = uc_country_get_by_id($country);
$c->id = $country;
}
else {
$c->name = $country;
$c->id = db_query("SELECT country_id FROM {uc_countries} WHERE country_name = :country", array(
':country' => $country,
))
->fetchObject()->country_id;
}
// Get region name or id
if (is_int($region)) {
$r = new stdClass();
$r->name = uc_zone_get_by_id($region);
$r->id = $region;
}
else {
$r->name = $region;
$r->id = db_query("SELECT zone_id FROM {uc_zones} WHERE zone_name = :region", array(
':region' => $region,
))
->fetchObject()->zone_id;
}
// Name + id
$cnid = '%' . $c->name . ',' . $c->id . '%';
$rnid = '%' . $r->name . ',' . $r->id . '%';
// Willcard countries without regions
if ($region < 1 && !db_query("SELECT zone_id FROM {uc_zones} WHERE zone_country_id = :cid", array(
':cid' => $c->id,
))
->rowCount()) {
$row = db_query("SELECT * FROM {uc_shipping_zones} WHERE countries LIKE :cnid", array(
':cnid' => $cnid,
))
->fetchObject();
}
else {
$row = db_query("SELECT * FROM {uc_shipping_zones} WHERE countries LIKE :cnid AND (regions LIKE :rnid OR (regions IS NULL OR regions = ''))\n ORDER BY name", array(
':cnid' => $cnid,
':rnid' => $rnid,
))
->fetchObject();
}
return $row;
}
return $r;
}