function uc_recurring_subscription_grant_role in UC Recurring Payments and Subscriptions 7.2
Grant user roles.
2 string references to 'uc_recurring_subscription_grant_role'
- uc_recurring_subscription_ca_predicate in modules/
uc_recurring_subscription/ uc_recurring_subscription.ca.inc - Implementation of hook_ca_predicate().
- uc_recurring_subscription_default_rules_configuration in modules/
uc_recurring_subscription/ uc_recurring_subscription.rules_defaults.inc - Implements hook_default_rules_configuration().
File
- modules/
uc_recurring_subscription/ uc_recurring_subscription.rules.inc, line 159 - Rules definitions.
Code
function uc_recurring_subscription_grant_role($order, $role_option, $roles) {
$account = user_load($order->uid);
$role_names = user_roles(TRUE);
if ($role_option == 'custom') {
foreach ($roles as $rid => $role) {
$account->roles[$rid] = $role_names[$rid];
watchdog('uc_recurring', 'Granted !role role to !user', array(
'!role' => $role_names[$rid],
'!user' => $account->name,
));
}
}
else {
foreach ($order->products as $pid => $product) {
$subscription = uc_recurring_subscription_load($product->nid);
if (!empty($subscription->access[$role_option])) {
$account->roles += $subscription->access[$role_option];
}
}
}
$account = user_save($account, array(
'roles' => $account->roles,
));
}