diff --git a/uc_roles/uc_roles.module b/uc_roles/uc_roles.module index b85a3e7..754c1fc 100644 --- a/uc_roles/uc_roles.module +++ b/uc_roles/uc_roles.module @@ -61,11 +61,6 @@ function uc_roles_cron() { // Remind the user about an upcoming expiration. elseif ($reminder_granularity != 'never') { rules_invoke_event('uc_roles_notify_reminder', $account, $expiration); - db_update('uc_roles_expirations') - ->fields(array('notified' => 1)) - ->condition('uid', $account->uid) - ->condition('rid', $expiration->rid) - ->execute(); } } } diff --git a/uc_roles/uc_roles.rules.inc b/uc_roles/uc_roles.rules.inc index bccbab2..0162cfc 100644 --- a/uc_roles/uc_roles.rules.inc +++ b/uc_roles/uc_roles.rules.inc @@ -153,6 +153,22 @@ function uc_roles_rules_action_info() { ) + $email_args, ); + // Mark an expiration has being reminded + $actions['uc_roles_mark_expiration_reminded'] = array( + 'label' => t('Mark an upcoming expiration as reminded'), + 'group' => t('Notification'), + 'parameter' => array( + 'account' => array( + 'type' => 'user', + 'label' => t('User') + ), + 'expiration' => array( + 'type' => 'uc_roles_expiration', + 'label' => t('Role expiration'), + ), + ), + ); + return $actions; } @@ -381,3 +397,19 @@ function uc_roles_action_order_renew($order, $message) { } } } + +/** + * Mark an expiration as reminded. + * + * @param $account + * A user stdClass object + * @param $expiration + * A UC roles expiration stdClass object + */ +function uc_roles_mark_expiration_reminded($account, $expiration) { + db_update('uc_roles_expirations') + ->fields(array('notified' => 1)) + ->condition('uid', $account->uid) + ->condition('rid', $expiration->rid) + ->execute(); +} diff --git a/uc_roles/uc_roles.rules_defaults.inc b/uc_roles/uc_roles.rules_defaults.inc index a08932b..ad7f037 100644 --- a/uc_roles/uc_roles.rules_defaults.inc +++ b/uc_roles/uc_roles.rules_defaults.inc @@ -93,6 +93,10 @@ function uc_roles_default_rules_configuration() { 'message' => uc_get_message('uc_roles_reminder_message'), 'format' => filter_default_format(), )); + $rule->action('uc_roles_mark_expiration_reminded', array( + 'account:select' => 'account', + 'expiration:select' => 'expiration', + )); $configs['uc_role_notify_reminder'] = $rule; return $configs;