Description
This filter can be used to modify the choices listed in the US states drop down.
Usage
add_filter( 'gform_us_states', 'your_function_name' );
Parameters
Parameter | Type | Description |
---|---|---|
$states | array | The array to be filtered. It contains the list of states in a standard array |
$states = array(
'Alabama',
'Alaska',
'Arizona',
'Arkansas',
'California'
// ... more states
);
Examples
1. Use State Code
This example demonstrates how to use the two letter state code as the choice value.
add_filter( 'gform_us_states', 'us_states' );
function us_states( $states ) {
$new_states = array();
foreach ( $states as $state ) {
$new_states[ GF_Fields::get( 'address' )->get_us_state_code( $state ) ] = $state;
}
return $new_states;
}
Note: This example does not change the display value, just the stored value. This will store the 2-letter state code in the entry and is required for some add-ons.
2. Remove States
add_filter( 'gform_us_states', 'filter_us_states' );
function filter_us_states( $states ) {
$omit_states = array(
'Alaska',
'Hawaii'
);
foreach ( $states as $key => $state ) {
if ( in_array( $state, $omit_states ) ) {
unset( $states[ $key ] );
}
}
return $states;
}
3. Add Outlying Territories to US State List
add_filter( 'gform_us_states', 'us_states' );
function us_states( $states ) {
$territories = array(
2 => 'American Samoa',
12 => 'Guam',
37 => 'Northern Mariana Islands',
42 => 'Puerto Rico',
48 => 'United States Minor Outlying Islands',
49 => 'U.S. Virgin Islands'
);
foreach ( $territories as $key => $t ) {
array_splice( $states, $key, 0, $t );
}
return $states;
}
Placement
This code can be used in the functions.php file of the active theme, a custom functions plugin, a custom add-on, or with a code snippets plugin.
See also the PHP section in this article: Where Do I Put This Code?
Source Code
This filter is located in GF_Field_Address::get_us_states() in includes/fields/class-gf-field-address.php.