function _uc_extra_field_pane_get_order_addresses in Extra Fields Checkout Pane 6.2
_get_order_addresses() Returns addresses using the order table
Parameters
int $uid:
string $type:
Return value
array
1 call to _uc_extra_field_pane_get_order_addresses()
- uc_extra_fields_pane_get_addresses in includes/
address_select.inc  - get_addresses() Similar to uc_get_addresses() in uc_store.module
 
File
- includes/
address_select.inc, line 82  - This file contains code for getting all addresses for one user
 
Code
function _uc_extra_field_pane_get_order_addresses($uid, $type) {
  $fields = UCXF_FieldList::getFieldsFromPane('extra_' . $type);
  $element_type = $type == 'delivery' ? UCXF_VALUE_ORDER_DELIVERY : UCXF_VALUE_ORDER_BILLING;
  // Make queryparts
  $queryparts = _uc_extra_field_pane_get_addresses_queryparts($fields, 'uc_orders', 'order_id', $element_type);
  $select = array(
    $type . "_first_name AS first_name",
    $type . "_last_name AS last_name",
    $type . "_phone AS phone",
    $type . "_company AS company",
    $type . "_street1 AS street1",
    $type . "_street2 AS street2",
    $type . "_city AS city",
    $type . "_zone AS zone",
    $type . "_postal_code AS postal_code",
    $type . "_country AS country",
  );
  $select = array_merge($select, $queryparts['select']);
  $joins = $queryparts['joins'];
  // Set ORDER BY
  // See uc_store.module, function uc_get_addresses() for more information about this behaviour
  switch ($GLOBALS['db_type']) {
    case 'mysqli':
    case 'mysql':
      $order_by = "ORDER BY created DESC";
    case 'pgsql':
      $order_by = "ORDER BY " . $type . "_street1 DESC";
      break;
  }
  // Load addresses from Ubercart
  $query = "SELECT DISTINCT " . implode(", ", $select) . "\n   FROM {uc_orders}\n  " . implode(" ", $joins) . "\n   WHERE uid = %d AND order_status IN " . uc_order_status_list('general', TRUE) . $order_by;
  $result = db_query($query, $uid);
  $addresses = array();
  while ($address = db_fetch_object($result)) {
    if (!empty($address->street1) || !empty($address->postal_code)) {
      $addresses[] = $address;
    }
  }
  return $addresses;
}