public static function formRule($fields, $files, $self) {
$errors = array();
$amount = self::computeAmount($fields, $self->_values);
+ if (CRM_Utils_Array::value('auto_renew', $fields) &&
+ CRM_Utils_Array::value('payment_processor_id', $fields) == 0
+ ) {
+ $errors['auto_renew'] = ts('You cannot have auto-renewal on if you are paying later.');
+ }
if ((!empty($fields['selectMembership']) &&
$fields['selectMembership'] != 'no_thanks'
$allowAutoRenewOpt = (int) $memType['auto_renew'];
if (is_array($this->_paymentProcessors)) {
foreach ($this->_paymentProcessors as $id => $val) {
- if (!$val['is_recur']) {
+ if ($id && !$val['is_recur']) {
$allowAutoRenewOpt = 0;
continue;
}
$this->assign('autoRenewOption', $autoRenewOption);
}
- if (!$this->_values['is_pay_later'] && is_array($this->_paymentProcessors) && ($allowAutoRenewMembership || $autoRenewOption)) {
+ if ((!$this->_values['is_pay_later'] || is_array($this->_paymentProcessors)) && ($allowAutoRenewMembership || $autoRenewOption)) {
$this->addElement('checkbox', 'auto_renew', ts('Please renew my membership automatically.'));
}