Gravity Forms Helper Functions

Das beliebte Formular Plugin Gravity Forms lässt sich mit ein bisschen PHP Code stark erweitern. Doch manche Funktionen fehlen mir als Entwickler. Diese will ich hier sammeln.

Gravity Forms Feld nach Typ in Form finden

Gravity Forms ist so angelegt, dass man gesendete Daten z.B. über den action hook gform_after_submission per ID auslesen kann. Etwa so:

add_action("gform_after_submission_1", "wpdev_after_submission", 10, 2);

function wpdev_after_submission($entry, $form){
    $state = rgar($entry, '1.4'); 
}

Wenn man sich aber nicht von der ID abhängig machen will, sondern stattdessen nach dem Feldtyp suchen will, hilft diese Funktion:

/**
 * get field from field list by field type
 *
 * @param array $fields Array with Field Objects
 * @param string $type e.g. 'address'
 */
function wpdev_gforms_get_field_by_type($fields, $type){

	foreach($fields as $field){
		if($field->type == $type){
			return $field;
		}
	}
	return null;
}

Es ist zu beachten, dass hier immer das erste Feld des Typs zurückgegeben wird. Der State bzw. Bundesland wäre dann so auslesbar:

add_action("gform_after_submission_1", "wpdev_after_submission", 10, 2);

function wpdev_after_submission($entry, $form){
    $address_field = wpdev_gforms_get_field_by_type($form['fields'], 'address');
    $state = rgar($entry, $address_field->inputs[3]['id']);
}