public function validation($validation_result) { if (!$this->has_feed($validation_result['form']['id'], true)) { return $validation_result; } foreach ($validation_result['form']['fields'] as $field) { $current_page = GFFormDisplay::get_source_page($validation_result['form']['id']); $field_on_curent_page = $current_page > 0 && $field['pageNumber'] == $current_page; if (GFFormsModel::get_input_type($field) != 'creditcard' || !$field_on_curent_page) { continue; } if ($this->getSecureSubmitJsError() && $this->hasPayment($validation_result)) { $field['failed_validation'] = true; $field['validation_message'] = $this->getSecureSubmitJsError(); } else { // override validation in case user has marked field as required allowing securesubmit to handle cc validation $field['failed_validation'] = false; } // only one cc field per form, break once we've found it break; } // revalidate the validation result $validation_result['is_valid'] = true; foreach ($validation_result['form']['fields'] as $field) { if ($field['failed_validation']) { $validation_result['is_valid'] = false; break; } } return parent::validation($validation_result); }