function uc_recurring_subscription_action_grant_role in UC Recurring Payments and Subscriptions 7.2
Same name and namespace in other branches
- 6.2 modules/uc_recurring_subscription/uc_recurring_subscription.ca.inc \uc_recurring_subscription_action_grant_role()
Grant a role.
1 string reference to 'uc_recurring_subscription_action_grant_role'
- uc_recurring_subscription_ca_action in modules/
uc_recurring_subscription/ uc_recurring_subscription.ca.inc - Implementation of hook_ca_action().
File
- modules/
uc_recurring_subscription/ uc_recurring_subscription.ca.inc, line 289
Code
function uc_recurring_subscription_action_grant_role($order, $settings) {
// TODO Convert "user_load" to "user_load_multiple" if "$order->uid" is other than a uid.
// To return a single user object, wrap "user_load_multiple" with "array_shift" or equivalent.
// Example: array_shift(user_load_multiple(array(), $order->uid))
// TODO Convert "user_load" to "user_load_multiple" if "$order->uid" is other than a uid.
// To return a single user object, wrap "user_load_multiple" with "array_shift" or equivalent.
// Example: array_shift(user_load_multiple(array(), $order->uid))
$account = user_load($order->uid);
$roles = user_roles(TRUE);
if ($settings['role_option'] == 'custom') {
$account->roles += $settings['role'];
watchdog('uc_recurring', 'Granted !role role to !user', array(
'!role' => $roles[$rid],
'!user' => $account->name,
));
}
else {
foreach ($order->products as $pid => $product) {
$subscription = uc_recurring_subscription_load($product->nid);
if (!empty($subscription->access[$settings['role_option']])) {
$account->roles += $subscription->access[$settings['role_option']];
}
}
}
user_save($account, array(
'roles' => $account->roles,
));
}