The gform_chained_selects_input_choices filter is used to modify the choices that appear in each drop down of a Chained Select field.
Usage
To filter all chained selects for all forms:
add_filter('gform_chained_selects_input_choices', 'your_function_name');
To filter all chained selects for a specific form:
add_filter('gform_chained_selects_input_choices_6', 'your_function_name');
To filter chained selects for a specific form and specific field:
add_filter('gform_chained_selects_input_choices_6_2', 'your_function_name');
To filter a specific chained select for a specific form and field:
add_filter('gform_chained_selects_input_choices_6_2_1', 'your_function_name');
Parameters
- $input_choices (array) – An array of Choices that populate the current drop down.
- $form_id (integer) – The form ID for the current form.
- $field (Field Object) – The current field object.
- $input_id (float) – The input ID of the current input (i.e. drop down) being processed. Example: 3.1.
- $full_chain_value (array) – An array of values representing the selected value for each input in the chain of selects. Example:
array(
'3.1' => 'Toyota',
'3.2' => 'Matrix',
'3.3' => 2013
);
- $value (string) – The value of the current chained select.
- $index (int) – The index of the specific chained select.
More information
See Gravity Forms Docs: gform_chained_selects_input_choices Important: This filter will not work properly when the page where your form is embedded is cached. This is not a Gravity Forms limitation but a consequence of using caching.
Examples
Define the default choice
Set the second choice as the default choice in the third drop down of field 1 on form 123:
add_filter('gform_chained_selects_input_choices_123_1_3', function($choices) {
$choices[1]['isSelected'] = true;
return $choices;
});
Populate a drop down based on previous selections
Populate a chained select drop down based on the selected values in the previous drop downs. This example uses an API to get the data.
// Populate the "Category" drop down of our Chained Select
add_filter('gform_chained_selects_input_choices_5_3_1', 'gf_populate_categories', 10, 7);
function gf_populate_categories($input_choices, $form_id, $field, $input_id, $chain_value, $value, $index) {
// Your custom code to fetch the categories
// e.g. $categories = your_api_get_categories();
// Add each category to the choices array
$choices = array();
foreach ($categories as $category) {
$choices[] = array(
'text' => $category['name'],
'value' => $category['id'],
'isSelected' => false
);
}
return $choices;
}
// Populate the "Subcategory" drop down of our Chained Select
add_filter('gform_chained_selects_input_choices_5_3_2', 'gf_populate_subcategories', 10, 7);
function gf_populate_subcategories($input_choices, $form_id, $field, $input_id, $chain_value, $value, $index) {
// Get the selected category from the previous drop down
$selected_category = $chain_value["{$field->id}.1"];
if (!$selected_category) {
return $input_choices;
}
// Your custom code to fetch the subcategories based on the selected category
// e.g. $subcategories = your_api_get_subcategories($selected_category);
// Add each subcategory to the choices array
$choices = array();
foreach ($subcategories as $subcategory) {
$choices[] = array(
'text' => $subcategory['name'],
'value' => $subcategory['id'],
'isSelected' => false
);
}
return $choices;
}
// Populate the "Item" drop down of our Chained Select
add_filter('gform_chained_selects_input_choices_5_3_3', 'gf_populate_items', 10, 7);
function gf_populate_items($input_choices, $form_id, $field, $input_id, $chain_value, $value, $index) {
// Get the selected subcategory from the previous drop down
$selected_subcategory = $chain_value["{$field->id}.2"];
if (!$selected_subcategory) {
return $input_choices;
}
// Your custom code to fetch the items based on the selected subcategory
// e.g. $items = your_api_get_items($selected_subcategory);
// Add each item to the choices array
$choices = array();
foreach ($items as $item) {
$choices[] = array(
'text' => $item['name'],
'value' => $item['id'],
'isSelected' => false
);
}
return $choices;
}
Change the text and value of a drop down choice
Change the text and value of the first choice in the second drop down of field 4 on form 7:
add_filter('gform_chained_selects_input_choices_7_4_2', function($choices) {
$choices[0]['text'] = 'New Choice Text';
$choices[0]['value'] = 'new_choice_value';
return $choices;
});
Remove a specific choice from a drop down
Remove the choice with the value “not_needed” from the first drop down of field 2 on form 8:
add_filter('gform_chained_selects_input_choices_8_2_1', function($choices) {
foreach ($choices as $key => $choice) {
if ($choice['value'] === 'not_needed') {
unset($choices[$key]);
break;
}
}
return $choices;
});
Add a custom choice to a drop down
Add a custom choice to the third drop down of field 6 on form 9:
add_filter('gform_chained_selects_input_choices_9_6_3', function($choices) {
$choices[] = array(
'text' => 'Custom Choice',
'value' => 'custom_choice',
'isSelected' => false
);
return $choices;
});