function uc_recurring_subscription_subscriber_list in UC Recurring Payments and Subscriptions 7.2
Same name and namespace in other branches
- 6.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 - Implements hook_menu().
File
- modules/
uc_recurring_subscription/ uc_recurring_subscription.admin.inc, line 733 - Uc recurring subscription UI.
Code
function uc_recurring_subscription_subscriber_list($form, $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 <> :status\n GROUP BY n.nid", array(
':status' => UC_RECURRING_FEE_STATUS_EXPIRED,
));
$rows = array();
foreach ($result as $subscribers) {
if (!isset($subscribers->title)) {
$subscribers->title = t('Unknown product');
}
$row = array(
'title' => $subscribers->title,
'count' => $subscribers->num_users,
'ops' => isset($subscribers->nid) ? l('view 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(
'#type' => 'markup',
'#prefix' => theme('table', array(
'header' => $header,
'rows' => $rows,
)) . '<br />',
);
if (is_numeric(arg(4))) {
$product = node_load(arg(4));
$id = 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'),
),
);
$query = db_select('users', 'u');
$query = $query
->extend('TableSort');
$query = $query
->orderByHeader($header);
$query
->join('uc_recurring_users', 'ru', 'ru.uid = u.uid');
$query
->join('uc_order_products', 'p', 'p.order_product_id = ru.order_product_id');
$query
->join('uc_recurring_subscription', 's', 's.nid = p.nid');
$query
->join('node', 'n', 'n.nid = p.nid');
$query
->condition('ru.status', UC_RECURRING_FEE_STATUS_EXPIRED, '<>');
$query
->condition('n.nid', $id);
$query
->fields('u', array(
'uid',
'name',
));
$query
->fields('ru');
$query
->fields('p', array(
'nid',
));
$query
->addField('n', 'title', 'product_title');
$query = $query
->extend('PagerDefault');
$query
->limit(30);
$result = $query
->execute();
foreach ($result as $account) {
$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' => theme('uc_price', array(
'price' => $account->fee_amount,
)),
'status' => uc_recurring_fee_status_label($account->status),
'ops' => implode(' | ', uc_recurring_get_fee_ops('user', $account)),
);
}
$form['users'] = array(
'#type' => 'markup',
'#prefix' => '<h2>' . t('Subscribers to <a href="@product_url">@product</a>', array(
'@product_url' => url('node/' . $product->nid),
'@product' => $product->title,
)) . '</h2>' . theme('table', array(
'header' => $header,
'rows' => $user_rows,
)) . theme('pager', array(
'tags' => array(
'tags' => NULL,
'element' => 0,
),
)),
);
}
return $form;
}