function uc_get_addresses in Ubercart 7.3
Same name and namespace in other branches
- 8.4 uc_store/uc_store.module \uc_get_addresses()
- 5 uc_store/uc_store.module \uc_get_addresses()
- 6.2 uc_store/uc_store.module \uc_get_addresses()
Loads a customer's previously given addresses.
2 calls to uc_get_addresses()
- uc_select_address in uc_store/
uc_store.module - Creates an address select box based on a user's previous orders.
- uc_select_addresses in uc_store/
uc_store.module - Creates an address select box based on a user's previous orders.
File
- uc_store/
uc_store.module, line 1520 - Contains global Ubercart functions and store administration functionality.
Code
function uc_get_addresses($uid, $type = 'billing') {
if ($uid == 0) {
return NULL;
}
if ($type == 'delivery') {
$type = 'delivery';
}
else {
$type = 'billing';
}
$query = db_select('uc_orders', 'o')
->distinct();
$alias = array();
$alias['first_name'] = $query
->addField('o', $type . '_first_name', 'first_name');
$alias['last_name'] = $query
->addField('o', $type . '_last_name', 'last_name');
$alias['phone'] = $query
->addField('o', $type . '_phone', 'phone');
$alias['company'] = $query
->addField('o', $type . '_company', 'company');
$alias['street1'] = $query
->addField('o', $type . '_street1', 'street1');
$alias['street2'] = $query
->addField('o', $type . '_street2', 'street2');
$alias['city'] = $query
->addField('o', $type . '_city', 'city');
$alias['zone'] = $query
->addField('o', $type . '_zone', 'zone');
$alias['postal_code'] = $query
->addField('o', $type . '_postal_code', 'postal_code');
$alias['country'] = $query
->addField('o', $type . '_country', 'country');
// In pgsql, ORDER BY requires the field being sorted by to be in the SELECT
// list. But if we have the 'created' column in the SELECT list, the DISTINCT
// is rather useless. So we will just sort addresses alphabetically.
$query
->condition('uid', $uid)
->condition('order_status', uc_order_status_list('general', TRUE), 'IN')
->orderBy($alias['street1']);
$result = $query
->execute();
$addresses = array();
while ($address = $result
->fetchAssoc()) {
if (!empty($address['street1']) || !empty($address['postal_code'])) {
$addresses[] = $address;
}
}
return $addresses;
}