function uc_recurring_subscription_subscriber_list in UC Recurring Payments and Subscriptions 6.2
Same name and namespace in other branches
- 7.2 modules/uc_recurring_subscription/uc_recurring_subscription.admin.inc \uc_recurring_subscription_subscriber_list()
1 string reference to 'uc_recurring_subscription_subscriber_list'
- uc_recurring_subscription_menu in modules/
uc_recurring_subscription/ uc_recurring_subscription.module - Implementation of hook_menu().
File
- modules/
uc_recurring_subscription/ uc_recurring_subscription.admin.inc, line 668 - Uc recurring subscription UI.
Code
function uc_recurring_subscription_subscriber_list($form_state, $product_id = -1) {
$form = array();
$header = array(
t('Product'),
t('Subscribers'),
'',
);
$result = db_query("SELECT count(u.uid) AS num_users, n.title, n.nid\n FROM {uc_recurring_users} u\n LEFT JOIN {uc_order_products} p ON p.order_product_id = u.order_product_id\n LEFT JOIN {uc_recurring_subscription} s ON s.nid = p.nid\n LEFT JOIN {node} n ON n.nid = p.nid\n WHERE u.status <> %d\n GROUP BY n.nid", UC_RECURRING_FEE_STATUS_EXPIRED);
while ($subscribers = db_fetch_object($result)) {
if (!isset($subscribers->title)) {
$subscribers->title = t('Unknown product');
}
$row = array(
'title' => $subscribers->title,
'count' => $subscribers->num_users,
'ops' => isset($subscribers->nid) ? l('subscribers', 'admin/store/subscriptions/subscribers/' . $subscribers->nid) : '',
);
$rows[] = $row;
}
if (count($rows) <= 0) {
$rows[] = array(
array(
'data' => t('No subscribers to any subscription products.'),
'colspan' => count($header),
),
);
}
$form['list'] = array(
'#value' => theme('table', $header, $rows) . '<br />',
);
if (is_numeric(arg(4))) {
$product = node_load(arg(4));
$header = array(
array(
'data' => t('Order'),
),
array(
'data' => t('User'),
'field' => 'u.name',
),
array(
'data' => t('Subscription Started'),
'field' => 'ru.created',
),
array(
'data' => t('Next Renewal'),
'field' => 'ru.next_charge',
),
array(
'data' => t('Price'),
),
array(
'data' => t('Status'),
),
array(
'data' => t('Operations'),
),
);
$sql = "SELECT u.uid, u.name, ru.*, p.nid, p.title as product_title\n FROM {users} u\n LEFT JOIN {uc_recurring_users} ru ON ru.uid = u.uid\n LEFT JOIN {uc_order_products} p ON p.order_product_id = ru.order_product_id\n LEFT JOIN {uc_recurring_subscription} s ON s.nid = p.nid\n LEFT JOIN {node} n ON n.nid = p.nid\n WHERE ru.status <> " . UC_RECURRING_FEE_STATUS_EXPIRED . " AND n.nid = %d";
$sql .= tablesort_sql($header);
$result = pager_query($sql, 20, 0, NULL, $product->nid);
while ($account = db_fetch_object($result)) {
$user_rows[] = array(
'order' => l($account->order_id, 'admin/store/orders/' . $account->order_id),
'user' => l($account->name, 'user/' . $account->uid),
'start' => format_date($account->created, 'small'),
'next' => format_date($account->next_charge, 'small'),
'price' => uc_price($account->fee_amount, array()),
'status' => uc_recurring_fee_status_label($account->status),
'ops' => implode(' | ', uc_recurring_get_fee_ops('user', $account)),
);
}
$form['users'] = array(
'#value' => '<h2>' . t('Subscribers to <a href="@product_url">@product</a>', array(
'@product_url' => url('node/' . $product->nid),
'@product' => $product->title,
)) . '</h2>' . theme('table', $header, $user_rows) . theme('pager', NULL, 20, 0),
);
}
return $form;
}