/** * 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; }
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; }
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; }