function uc_recurring_subscription_uc_recurring_access_apply in UC Recurring Payments and Subscriptions 6.2
Same name and namespace in other branches
- 7.2 modules/uc_recurring_subscription/uc_recurring_subscription.module \uc_recurring_subscription_uc_recurring_access_apply()
Add access definitions for roles.
File
- modules/
uc_recurring_subscription/ uc_recurring_subscription.module, line 297 - Manage subscription/memberships.
Code
function uc_recurring_subscription_uc_recurring_access_apply($fee, $product) {
global $user;
$subscription = uc_recurring_subscription_load($product->nid);
if (empty($subscription->access['subscribe_grant'])) {
return;
}
// role rules
foreach ($subscription->access['subscribe_grant'] as $rid) {
$access = uc_recurring_access_user_load($fee->uid, 'role', $rid);
if (empty($access)) {
$access = new stdClass();
$access->uid = $fee->uid;
$access->created = time();
$access->access_type = 'role';
$access->id = $rid;
$access->new = TRUE;
$access->time_applied = 0;
$access->time_owed = 0;
}
$interval = $fee->next_charge - time();
$access->time_applied += min($interval, variable_get('uc_recurring_access_interval', '31536000'));
$access->time_owed += $interval;
uc_recurring_access_user_save($access);
uc_order_comment_save($fee->order_id, $user->uid, t('Applied recurring access to role id: @role.', array(
'@role' => $rid,
)));
}
}