uc_store_customers

Versions
5 – 6
uc_store_customers($message = NULL, $query = NULL, $count_query = NULL, $page_length = 25)

Display customer administration page.

Code

contributions/ubercart/uc_store/uc_store.module, line 625

<?php
function uc_store_customers($message = NULL, $query = NULL, $count_query = NULL, $page_length = 25) {
  if (!module_exists('uc_order')) {
    return t('You must enable the order module to track customers.');
  }

  if (is_null($query)) {
    $query = "SELECT DISTINCT o.uid, u.mail, o.billing_first_name, "
            ."o.billing_last_name, o.billing_city, o.billing_zone, "
            ."o.billing_country FROM {uc_orders} AS o LEFT JOIN "
            ."{users} AS u ON o.uid = u.uid WHERE o.uid > 0 AND "
            ."o.order_status IN ". uc_order_status_list('general', TRUE);

    $count_query = "";
    switch ($GLOBALS['db_type']) {
      case 'mysql':
      case 'mysqli':
        $count_query = "SELECT COUNT(DISTINCT o.uid, o.billing_first_name, "
                      ."o.billing_last_name, u.mail) FROM {uc_orders} AS o "
                      ."LEFT JOIN {users} AS u ON o.uid = u.uid WHERE o.uid > 0 "
                      ."AND o.order_status IN ". uc_order_status_list('general', TRUE);
        break;
      case 'pgsql':
        $count_query = "SELECT DISTINCT o.uid, o.billing_last_name, o.billing_first_name, "
                      ."COUNT(*) "
                      ."FROM {uc_orders} AS o "
                      ."LEFT JOIN {users} AS u ON o.uid = u.uid WHERE o.uid > 0 "
                      ."AND o.order_status IN ". uc_order_status_list('general', TRUE)
                      ." GROUP BY o.uid, o.billing_last_name, o.billing_first_name ";
        break;
    }

    $message = t('The following users on your site have placed orders:');
  }

  $header = array(
    t('View'),
    array('data' => t('Name'), 'field' => 'o.billing_last_name', 'sort' => 'asc'),
    array('data' => t('E-mail'), 'field' => 'u.mail'),
    array('data' => t('City'), 'field' => 'o.billing_city'),
    array('data' => t('ID'), 'field' => 'o.uid'),
  );

  $query .= tablesort_sql($header);
  $count_query .= tablesort_sql($header);

  $address = variable_get('uc_customer_list_address', 'billing');
  if ($address == 'shipping') {
    $query = str_replace('billing', 'delivery', $query);
    $count_query = str_replace('billing', 'delivery', $count_query);
  }
  else {
    $address = 'billing';
  }

  $result = pager_query($query, $page_length, 0, $count_query);

  while ($customer = db_fetch_object($result)) {
    $icons = l(uc_store_get_icon('admin/store/customers', TRUE),
               'user/'. $customer->uid, array('title' => t('View user details.')),
               NULL, NULL, FALSE, TRUE)
           . l(uc_store_get_icon('admin/store/orders', TRUE),
               'admin/store/customers/orders/'. $customer->uid,
               array('title' => t("View customer's order.")), NULL, NULL, FALSE, TRUE);
    if ($address == 'shipping') {
      $name = ucfirst($customer->delivery_last_name) .', '
            . ucfirst($customer->delivery_first_name);
      $city = ucfirst($customer->delivery_city) .', '
            . uc_get_zone_code($customer->delivery_zone);
    }
    else {
      $name = ucfirst($customer->billing_last_name) .', '
            . ucfirst($customer->billing_first_name);
      $city = ucfirst($customer->billing_city) .', '
            . uc_get_zone_code($customer->billing_zone);
    }
    if ($name == ', ') {
      $name = db_result(db_query("SELECT name FROM {users} WHERE uid = %d", $customer->uid));
      $name = t('User: !name', array('!name' => $name));
    }
    $rows[] = array(
      'data' => array(
        array('data' => $icons),
        array('data' => check_plain($name)),
        array('data' => check_plain($customer->mail)),
        array('data' => check_plain($city)),
        array('data' => $customer->uid)),
      'id' => 'customer-'. $customer->uid,
    );
  }

  uc_add_js(drupal_get_path('module', 'uc_store') .'/uc_store.js');

  $output = '<p>'. $message .'</p>'
          . theme('table', $header, $rows, array('width' => '100%', 'class' => 'uc-customer-table'))
           .'<br />'. theme_pager(NULL, $page_length);

  return $output;
}
?>

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.