/** * initialise instance * @param array $form */ public function __construct(&$form) { // check for last page $current_page = GFFormDisplay::get_source_page($form['id']); $target_page = GFFormDisplay::get_target_page($form, $current_page, rgpost('gform_field_values')); $this->isLastPageFlag = $target_page == 0; // load the form data $this->loadForm($form); }
function is_applicable_field($field, $form) { if ($field['pageNumber'] != GFFormDisplay::get_source_page($form['id'])) { return false; } if ($field['type'] != 'list' || RGFormsModel::is_field_hidden($form, $field, array())) { return false; } // if the field has already failed validation, we don't need to fail it again if (!$field['isRequired'] || $field['failed_validation']) { return false; } if (empty($this->field_ids)) { return true; } return in_array($field['id'], $this->field_ids); }
function should_field_be_validated($form, $field) { if ($field['pageNumber'] != GFFormDisplay::get_source_page($form['id'])) { return false; } // if no limits provided for this field if (!$this->get_field_limits($field['id'])) { return false; } // or if this field is not a checkbox if (RGFormsModel::get_input_type($field) != 'checkbox') { return false; } // or if this field is hidden if (RGFormsModel::is_field_hidden($form, $field, array())) { return false; } return true; }
public function validate_credit_card($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->get_stripe_js_error()) { $field['failed_validation'] = true; $field['validation_message'] = $this->get_stripe_js_error(); } else { // override validation in case user has marked field as required allowing stripe to handle cc validation $field['failed_validation'] = false; } // only one cc field per form, break once we've found it break; } // revalidate the validaiton result $validation_result['is_valid'] = true; foreach ($validation_result['form']['fields'] as &$field) { if ($field['failed_validation']) { $validation_result['is_valid'] = false; break; } } return $validation_result; }
private static function is_last_page($form) { $current_page = GFFormDisplay::get_source_page($form["id"]); $target_page = GFFormDisplay::get_target_page($form, $current_page, rgpost("gform_field_values")); return $target_page == 0; }