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

  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”.

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, '' );
} );

Leave a Reply

Your email address will not be published. Required fields are marked *

  • Trouble installing this snippet? See our troubleshooting tips.
  • Need to include code? Create a gist and link to it in your comment.
  • Reporting a bug? Provide a URL where this issue can be recreated.

By commenting, I understand that I may receive emails related to Gravity Wiz and can unsubscribe at any time.