i want to edit gravity form entry in frontend. in gravity form one field has another nested form when user add entry from nested form it will display in table. i want it to show previous added entry in nested form when we edit gravity form from frontend. i used below code but it not working in function when i get nested form entry it found. but i don't know how to set it in table to display previous added entry. i usd below code but it not working
add_filter('gform_pre_render_11', 'prefill_parent_form_data'); // Only for Form ID 11
add_filter('gform_pre_validation_11', 'prefill_parent_form_data');
add_filter('gform_pre_submission_filter_11', 'prefill_parent_form_data');
add_filter('gform_pre_render_12', 'prefill_nested_form_data'); // Only for Nested Form (Form 12)
add_filter('gform_pre_validation_12', 'prefill_nested_form_data');
add_filter('gform_pre_submission_filter_12', 'prefill_nested_form_data');
function prefill_parent_form_data($form) {
if (isset($_GET['entry']) && !empty($_GET['entry'])) {
$entry_id = absint($_GET['entry']);
$entry = GFAPI::get_entry($entry_id);
if (is_wp_error($entry) || $entry['form_id'] != 11) {
return $form; // Skip if wrong form
}
/*echo "<pre>";
print_r($entry);
echo "=============================";
print_r($form);*/
foreach ($form['fields'] as &$field) {
if ($field->type === 'name' && !empty($field->inputs)) {
foreach ($field->inputs as &$input) {
$sub_field_id = (string) $input['id'];
if (isset($entry[$sub_field_id])) {
$input['defaultValue'] = $entry[$sub_field_id];
}
}
}else if ($field->type === 'form' && isset($entry[$field->id])) {
$nested_form_field_id = 74;
$nested_form_entry_id = rgar($entry, $nested_form_field_id);
if ($nested_form_entry_id) {
$nested_form_entry = GFAPI::get_entry($nested_form_entry_id);
echo "<pre>";
print_r($nested_form_entry);exit;
if (!is_wp_error($nested_form_entry)) {
// Assuming nested form data is in fields 1 and 6 in nested form
$nested_field_1 = rgar($nested_form_entry, '1');
$nested_field_6 = rgar($nested_form_entry, '6');
// Create a table row with nested form data
$field->content = '<table class="nested-form-data">
<tr>
<th>Nested Field 1</th>
<td>' . esc_html($nested_field_1) . '</td>
</tr>
<tr>
<th>Nested Field 6</th>
<td>' . esc_html($nested_field_6) . '</td>
</tr>
</table>';
}
}
//$field->defaultValue = json_encode(array($nested_form_entry_ids));
}else if($field->type === 'checkbox'){
if ($field->type === 'checkbox' && isset($entry[$field->id])) {
$selected_inputs = maybe_unserialize($entry[$field->id]); // Get the selected options from entry
// If the entry has selected checkboxes
if (is_array($selected_inputs)) {
foreach ($field->inputs as $ky=>&$input) {
// Check if the input's ID is in the selected values from the entry
if (in_array($input['id'], $selected_inputs)) {
$field->choices[$ky]['isSelected'] = true; // Mark the checkbox as selected
} else {
$field->choices[$ky]['isSelected'] = false; // Mark the checkbox as not selected
}
}
}
} else {
foreach ($field->inputs as $ky=>&$input) {
if (isset($entry[$input['id']]) && $entry[$input['id']] != '') {
$field->choices[$ky]['isSelected'] = true;
} else {
$field->choices[$ky]['isSelected'] = false;
}
}
}
} else {
$value = rgar($entry, $field->id);
if (!empty($value)) {
$field->defaultValue = $value;
}
}
}
}
return $form;
}
function prefill_nested_form_data($form) {
if (isset($_GET['entry']) && !empty($_GET['entry'])) {
$parent_entry_id = absint($_GET['entry']);
$parent_entry = GFAPI::get_entry($parent_entry_id);
if (is_wp_error($parent_entry) || $parent_entry['form_id'] != 11) {
return $form;
}
// Find Nested Form Field in Parent Entry
foreach ($parent_entry as $field_id => $value) {
if (is_serialized($value)) {
$nested_entry_ids = maybe_unserialize($value);
if (is_array($nested_entry_ids)) {
foreach ($nested_entry_ids as $nested_entry_id) {
$nested_entry = GFAPI::get_entry($nested_entry_id);
if ($nested_entry && $nested_entry['form_id'] == 12) {
foreach ($form['fields'] as &$field) {
$field_id = $field->id;
if (isset($nested_entry[$field_id])) {
$field->defaultValue = $nested_entry[$field_id];
}
}
}
}
}
}
}
}
return $form;
}
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745293182a4620985.html
评论列表(0条)