You are here

function uc_roles_default_rules_configuration in Ubercart 7.3

Implements hook_default_rules_configuration().

File

uc_roles/uc_roles.rules_defaults.inc, line 11
Default Rules configurations for uc_roles.module.

Code

function uc_roles_default_rules_configuration() {
  $configs = array();

  // Renew all the roles on an order when the status matches what's set
  // in the roles admin settings.
  $rule = rules_reaction_rule();
  $rule->label = t('Grant or renew purchased roles');
  $rule->active = TRUE;
  $rule
    ->event('uc_order_status_update');
  $rule
    ->condition('data_is', array(
    'data:select' => 'updated_order:order-status',
    'value' => 'payment_received',
  ))
    ->action('uc_roles_order_renew', array(
    'order:select' => 'updated_order',
    'message' => FALSE,
  ));
  $configs['uc_role_renewal'] = $rule;
  $order_args = array(
    'order:select' => 'order',
    'expiration:select' => 'expiration',
  );
  $user_args = array(
    'account:select' => 'account',
    'expiration:select' => 'expiration',
  );

  // Notify the user when a role is granted.
  $rule = rules_reaction_rule();
  $rule->label = t('Notify customer when a role is granted');
  $rule->active = TRUE;
  $rule
    ->event('uc_roles_notify_grant');
  $rule
    ->action('uc_roles_order_email', array(
    'order:select' => 'order',
    'expiration:select' => 'expiration',
    'from' => uc_store_email_from(),
    'addresses' => '[order:email]',
    'subject' => uc_get_message('uc_roles_grant_subject'),
    'message' => uc_get_message('uc_roles_grant_message'),
    'format' => filter_default_format(),
  ));
  $configs['uc_role_notify_grant'] = $rule;

  // Notify the user when a role is revoked.
  $rule = rules_reaction_rule();
  $rule->label = t('Notify customer when a role is revoked');
  $rule->active = TRUE;
  $rule
    ->event('uc_roles_notify_revoke');
  $rule
    ->action('uc_roles_user_email', array(
    'account:select' => 'account',
    'expiration:select' => 'expiration',
    'from' => uc_store_email_from(),
    'addresses' => '[account:mail]',
    'subject' => uc_get_message('uc_roles_revoke_subject'),
    'message' => uc_get_message('uc_roles_revoke_message'),
    'format' => filter_default_format(),
  ));
  $configs['uc_role_notify_revoke'] = $rule;

  // Notify the user when a role is renewed.
  $rule = rules_reaction_rule();
  $rule->label = t('Notify customer when a role is renewed');
  $rule->active = TRUE;
  $rule
    ->event('uc_roles_notify_renew');
  $rule
    ->action('uc_roles_order_email', array(
    'order:select' => 'order',
    'expiration:select' => 'expiration',
    'from' => uc_store_email_from(),
    'addresses' => '[order:email]',
    'subject' => uc_get_message('uc_roles_renew_subject'),
    'message' => uc_get_message('uc_roles_renew_message'),
    'format' => filter_default_format(),
  ));
  $configs['uc_role_notify_renew'] = $rule;

  // Notify the user when a role is about to expire.
  $rule = rules_reaction_rule();
  $rule->label = t('Notify customer when a role is about to expire');
  $rule->active = TRUE;
  $rule
    ->event('uc_roles_notify_reminder');
  $rule
    ->action('uc_roles_user_email', array(
    'account:select' => 'account',
    'expiration:select' => 'expiration',
    'from' => uc_store_email_from(),
    'addresses' => '[account:mail]',
    'subject' => uc_get_message('uc_roles_reminder_subject'),
    'message' => uc_get_message('uc_roles_reminder_message'),
    'format' => filter_default_format(),
  ));
  $configs['uc_role_notify_reminder'] = $rule;
  return $configs;
}