You are here

function uc_recurring_subscription_ca_predicate 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.ca.inc \uc_recurring_subscription_ca_predicate()

Implementation of hook_ca_predicate().

File

modules/uc_recurring_subscription/uc_recurring_subscription.ca.inc, line 94

Code

function uc_recurring_subscription_ca_predicate() {
  $predicates = array();

  // Grant user roles to user when checkout is complete.
  $predicates['uc_recurring_subscription_grant_roles'] = array(
    '#title' => t('Grant user roles on subscription created.'),
    '#trigger' => 'uc_order_status_update',
    '#class' => 'roles',
    '#status' => 1,
    '#weight' => 1,
    '#conditions' => array(
      '#operator' => 'AND',
      '#conditions' => array(
        array(
          '#name' => 'uc_order_status_condition',
          '#title' => t('If order status is completes.'),
          '#argument_map' => array(
            'order' => 'updated_order',
          ),
          '#settings' => array(
            'negate' => FALSE,
            'order_status' => 'completed',
          ),
        ),
      ),
    ),
    '#actions' => array(
      array(
        '#name' => 'uc_recurring_subscription_grant_role',
        '#title' => t('Grant user role(s).'),
        '#argument_map' => array(
          'order' => 'order',
        ),
        '#settings' => array(
          'role_option' => 'subscribe_grant',
          'role' => array(),
        ),
      ),
    ),
  );

  // Grant user roles to user when subscription expires.
  $predicates['uc_recurring_subscription_expired_grant_roles'] = array(
    '#title' => t('Grant user roles on subscription expiration.'),
    '#trigger' => 'uc_recurring_renewal_expired',
    '#class' => 'roles',
    '#status' => 1,
    '#weight' => 1,
    '#conditions' => array(
      '#operator' => 'AND',
      '#conditions' => array(),
    ),
    '#actions' => array(
      array(
        '#name' => 'uc_recurring_subscription_grant_role',
        '#title' => t('Grant user role(s).'),
        '#argument_map' => array(
          'order' => 'order',
        ),
        '#settings' => array(
          'role_option' => 'expire_grant',
          'role' => array(),
        ),
      ),
    ),
  );

  // Revoke user roles to user when subscription expires.
  $predicates['uc_recurring_subscription_expired_revoke_roles'] = array(
    '#title' => t('Revoke user roles on subscription expiration.'),
    '#trigger' => 'uc_recurring_renewal_expired',
    '#class' => 'roles',
    '#status' => 1,
    '#weight' => 1,
    '#conditions' => array(
      '#operator' => 'AND',
      '#conditions' => array(),
    ),
    '#actions' => array(
      array(
        '#name' => 'uc_recurring_subscription_revoke_role',
        '#title' => t('Revoke user role(s).'),
        '#argument_map' => array(
          'order' => 'order',
        ),
        '#settings' => array(
          'role_option' => 'expire_revoke',
          'role' => array(),
        ),
      ),
    ),
  );

  // Grant organic groups to user when checkout is complete.
  if (module_exists('og_actions')) {
    $predicates['uc_recurring_subscription_grant_og'] = array(
      '#title' => t('Grant organic groups on subscription created.'),
      '#trigger' => 'uc_order_status_update',
      '#class' => 'og',
      '#status' => 1,
      '#weight' => 1,
      '#conditions' => array(
        '#operator' => 'AND',
        '#conditions' => array(
          array(
            '#name' => 'uc_order_status_condition',
            '#title' => t('If order status is completes.'),
            '#argument_map' => array(
              'order' => 'updated_order',
            ),
            '#settings' => array(
              'negate' => FALSE,
              'order_status' => 'completed',
            ),
          ),
        ),
      ),
      '#actions' => array(
        array(
          '#name' => 'uc_recurring_subscription_grant_og',
          '#title' => t('Grant groups on subscribe.'),
          '#argument_map' => array(
            'order' => 'order',
          ),
          '#settings' => array(
            'group_option' => 'subscribe_grant_og',
            'groups' => array(),
          ),
        ),
      ),
    );

    // Grant organic groups to user when subscription expires.
    $predicates['uc_recurring_subscription_expired_grant_og'] = array(
      '#title' => t('Grant organic groups on subscription expiration.'),
      '#trigger' => 'uc_recurring_renewal_expired',
      '#class' => 'og',
      '#status' => 1,
      '#weight' => 1,
      '#conditions' => array(
        '#operator' => 'AND',
        '#conditions' => array(),
      ),
      '#actions' => array(
        array(
          '#name' => 'uc_recurring_subscription_grant_og',
          '#title' => t('Grant groups on expire.'),
          '#argument_map' => array(
            'order' => 'order',
          ),
          '#settings' => array(
            'group_option' => '',
            'groups' => array(),
          ),
        ),
      ),
    );

    // Revoke user roles to user when subscription expires.
    $predicates['uc_recurring_subscription_expired_revoke_og'] = array(
      '#title' => t('Revoke organic groups on subscription expiration.'),
      '#trigger' => 'uc_recurring_renewal_expired',
      '#class' => 'og',
      '#status' => 1,
      '#weight' => 1,
      '#conditions' => array(
        '#operator' => 'AND',
        '#conditions' => array(),
      ),
      '#actions' => array(
        array(
          '#name' => 'uc_recurring_subscription_revoke_og',
          '#title' => t('Revoke groups on expire.'),
          '#argument_map' => array(
            'order' => 'order',
          ),
          '#settings' => array(
            'group_option' => 'expire_revoke_og',
            'groups' => array(),
          ),
        ),
      ),
    );
  }
  return $predicates;
}