/**
  * Retrieves $entry object from class if it has already been created; otherwise creates a new $entry object.
  */
 public static function create_lead($form)
 {
     if (empty(self::$entry)) {
         if (isset($_GET['gf_token'])) {
             $incomplete_submission_info = GFFormsModel::get_incomplete_submission_values($_GET['gf_token']);
             if ($incomplete_submission_info['form_id'] == $form['id']) {
                 $submission_details_json = $incomplete_submission_info['submission'];
                 $submission_details = json_decode($submission_details_json, true);
                 $entry = $submission_details['partial_entry'];
             }
         }
         self::$entry = isset($entry) ? $entry : GFFormsModel::create_lead($form);
         self::clear_field_value_cache($form);
         foreach ($form['fields'] as $field) {
             $input_type = GFFormsModel::get_input_type($field);
             switch ($input_type) {
                 case 'signature':
                     if (empty(self::$entry[$field['id']])) {
                         self::$entry[$field['id']] = rgpost("input_{$form['id']}_{$field['id']}_signature_filename");
                     }
                     break;
             }
         }
     }
     return self::$entry;
 }
Пример #2
0
 public static function handle_save_email_confirmation($form, $ajax)
 {
     $resume_email = $_POST['gform_resume_email'];
     if (!GFCommon::is_valid_email($resume_email)) {
         GFCommon::log_debug('GFFormDisplay::handle_save_email_confirmation(): Invalid email address: ' . $resume_email);
         return new WP_Error('invalid_email');
     }
     $resume_token = $_POST['gform_resume_token'];
     $submission_details = GFFormsModel::get_incomplete_submission_values($resume_token);
     $submission_json = $submission_details['submission'];
     $submission = json_decode($submission_json, true);
     $entry = $submission['partial_entry'];
     $form = self::update_confirmation($form, $entry, 'form_save_email_sent');
     $confirmation = '<div class="form_saved_message_sent"><span>' . rgar($form['confirmation'], 'message') . '</span></div>';
     $nl2br = rgar($form['confirmation'], 'disableAutoformat') ? false : true;
     $save_email_confirmation = self::replace_save_variables($confirmation, $form, $resume_token, $resume_email);
     $save_email_confirmation = GFCommon::replace_variables($save_email_confirmation, $form, $entry, false, true, $nl2br);
     $save_email_confirmation = GFCommon::gform_do_shortcode($save_email_confirmation);
     $form_id = absint($form['id']);
     $has_pages = self::has_pages($form);
     $default_anchor = $has_pages || $ajax ? true : false;
     $use_anchor = gf_apply_filters(array('gform_confirmation_anchor', $form_id), $default_anchor);
     if ($use_anchor !== false) {
         $save_email_confirmation = "<a id='gf_{$form_id}' class='gform_anchor' ></a>" . $save_email_confirmation;
     }
     if ($ajax) {
         $save_email_confirmation = "<!DOCTYPE html><html><head><meta charset='UTF-8' /></head><body class='GF_AJAX_POSTBACK'>" . $save_email_confirmation . '</body></html>';
     }
     GFCommon::log_debug('GFFormDisplay::handle_save_email_confirmation(): Confirmation => ' . print_r($save_email_confirmation, true));
     return $save_email_confirmation;
 }
Пример #3
0
 public function get_field_value($field)
 {
     $field_values = $submitted_values = false;
     if (isset($_GET['gf_token'])) {
         $incomplete_submission_info = GFFormsModel::get_incomplete_submission_values($_GET['gf_token']);
         if ($incomplete_submission_info['form_id'] == $field['formId']) {
             $submission_details_json = $incomplete_submission_info['submission'];
             $submission_details = json_decode($submission_details_json, true);
             $submitted_values = $submission_details['submitted_values'];
             $field_values = $submission_details['field_values'];
         }
     }
     if (is_array($submitted_values)) {
         $value = $submitted_values[$field->id];
     } else {
         $value = GFFormsModel::get_field_value($field, $field_values);
     }
     $choices = (array) rgar($field, 'choices');
     // if value is not available from post or prepop, check the choices (if field has choices)
     if (!$value && !empty($choices)) {
         $values = array();
         $index = 1;
         foreach ($choices as $choice) {
             if ($index % 10 == 0) {
                 $index++;
             }
             if ($choice['isSelected']) {
                 $full_input_id = sprintf('%d.%d', $field['id'], $index);
                 $price = rgempty('price', $choice) ? 0 : GFCommon::to_number(rgar($choice, 'price'));
                 $choice_value = $field['type'] == 'product' ? sprintf('%s|%s', $choice['value'], $price) : $choice['value'];
                 $values[$full_input_id] = $choice_value;
             }
             $index++;
         }
         $input_type = GFFormsModel::get_input_type($field);
         // if no choice is preselected and this is a select, get the first choice's value since it will be selected by default in the browser
         if (empty($values) && $input_type == 'select') {
             $values[] = rgars($choices, '0/value');
         }
         switch ($input_type) {
             case 'multiselect':
                 $value = implode(',', $values);
                 break;
             case 'checkbox':
                 $value = $values;
                 break;
             default:
                 $value = reset($values);
                 break;
         }
     }
     return $value;
 }