You are here

function uc_recurring_subscription_uc_recurring_access_apply in UC Recurring Payments and Subscriptions 7.2

Same name and namespace in other branches
  1. 6.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 311
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 = REQUEST_TIME;
      $access->access_type = 'role';
      $access->id = $rid;
      $access->new = TRUE;
      $access->time_applied = 0;
      $access->time_owed = 0;
    }
    $interval = $fee->next_charge - REQUEST_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,
    )));
  }
}