Capture Nested Form Field Label in Child Form
This snippet allows you to capture the label of the Nested Form field from which the child form has been opened.
This is useful when you have two or more Nested Form fields on the same parent form, using the same child form and need to identify to which Nested Form field the child entry belongs (e.g. Team Captains vs Players).
Instructions
Install the snippet. https://gravitywiz.com/documentation/managing-snippets/#where-do-i-put-snippets
Enable dynamic population on your desired field on the child form.
Set the dynamic population parameter to “gpnf_nested_form_field_label”.
Code
Filename: gpnf-capture-nested-form-field-label.php
<?php
/**
* Gravity Forms // Nested Forms // Capture Nested Form Field Label in Child Form
* https://gravitywiz.com/documentation/gravity-forms-nested-forms/
*
* Instruction Video: https://www.loom.com/share/1630b49c960441e8a5d13b0d5c2fa3e8
*
* This snippet allows you to capture the label of the Nested Form field from which the child
* form has been opened.
*
* This is useful when you have two or more Nested Form fields on the same parent form, using
* the same child form and need to identify to which Nested Form field the child entry belongs
* (e.g. Team Captains vs Players).
*
* Instructions:
*
* 1. Install the snippet.
* https://gravitywiz.com/documentation/managing-snippets/#where-do-i-put-snippets
*
* 2. Enable dynamic population on your desired field on the child form.
*
* 3. Set the dynamic population parameter to "gpnf_nested_form_field_label".
*/
add_filter( 'gform_field_value_gpnf_nested_form_field_label', function () {
// Get the parent form ID
$form_id = gp_nested_forms()->get_parent_form_id();
if ( ! $form_id ) {
return '';
}
// Retrieve the form object
$form = GFAPI::get_form( $form_id );
if ( ! $form ) {
return '';
}
// Get the posted Nested Form field ID
$nested_form_field_id = rgar( $_REQUEST, 'gpnf_nested_form_field_id' );
if ( ! $nested_form_field_id ) {
return '';
}
// Get the Nested Form field object
$nested_form_field = GFFormsModel::get_field( $form, $nested_form_field_id );
if ( ! $nested_form_field || ! is_object( $nested_form_field ) ) {
return '';
}
// Return the field label
return $nested_form_field->get_field_label( false, '' );
} );