/**
  * 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);
 }
Exemplo n.º 3
0
 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;
 }
Exemplo n.º 4
0
 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;
 }
Exemplo n.º 5
0
 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;
 }