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
- $states array
The array to be filtered. It contains the list of states in a standard array (see sample below).
$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 should be placed in the functions.php file of your active theme.
Source Code
This filter is located in GF_Field_Address::get_us_states() in includes/fields/class-gf-field-address.php.