Last active
March 27, 2019 03:10
-
-
Save maor/5998706 to your computer and use it in GitHub Desktop.
Ninja Forms countries dropdown select field
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Add a new <select> field, pre-populated with all countries in our tiny, tiny world. | |
* | |
* @author Maor Chasen | |
*/ | |
function aff_register_ninja_forms_fields() { | |
$args = array( | |
'name' => 'AFF Countries List', // This will be the label of the field button in the back-end editor. | |
'display_function' => 'aff_countries_dropdownlist', // This function will be called when the form is rendered on the front-end. | |
'sidebar' => 'template_fields', // This is the sidebar on the Field Settings tab that this field will show up in. | |
'display_label' => true, // Since we're adding a hidden form, we don't want to show the label on the front-end. | |
'display_wrap' => true, // Again, this is a hidden field, so we don't need the div wrapper that's normally output to the front-end. | |
); | |
if ( function_exists( 'ninja_forms_register_field' ) ) { | |
ninja_forms_register_field( 'aff_countries_dd', $args ); | |
} | |
} | |
add_action( 'init', 'aff_register_ninja_forms_fields' ); | |
/* | |
* This function only has to output the specific field element. The wrap is output automatically. | |
* | |
* $field_id is the id of the field currently being displayed. | |
* $data is an array the possibly modified field data for the current field. | |
* | |
*/ | |
function aff_countries_dropdownlist( $field_id, $data ) { | |
$country_list = array( | |
'AF' => 'Afghanistan', | |
'AL' => 'Albania', | |
'DZ' => 'Algeria', | |
'AS' => 'American Samoa', | |
'AD' => 'Andorra', | |
'AO' => 'Angola', | |
'AI' => 'Anguilla', | |
'AQ' => 'Antarctica', | |
'AG' => 'Antigua and Barbuda', | |
'AR' => 'Argentina', | |
'AM' => 'Armenia', | |
'AW' => 'Aruba', | |
'AU' => 'Australia', | |
'AT' => 'Austria', | |
'AZ' => 'Azerbaijan', | |
'BS' => 'Bahamas', | |
'BH' => 'Bahrain', | |
'BD' => 'Bangladesh', | |
'BB' => 'Barbados', | |
'BY' => 'Belarus', | |
'BE' => 'Belgium', | |
'BZ' => 'Belize', | |
'BJ' => 'Benin', | |
'BM' => 'Bermuda', | |
'BT' => 'Bhutan', | |
'BO' => 'Bolivia', | |
'BA' => 'Bosnia and Herzegovina', | |
'BW' => 'Botswana', | |
'BV' => 'Bouvet Island', | |
'BR' => 'Brazil', | |
'BQ' => 'British Antarctic Territory', | |
'IO' => 'British Indian Ocean Territory', | |
'VG' => 'British Virgin Islands', | |
'BN' => 'Brunei', | |
'BG' => 'Bulgaria', | |
'BF' => 'Burkina Faso', | |
'BI' => 'Burundi', | |
'KH' => 'Cambodia', | |
'CM' => 'Cameroon', | |
'CA' => 'Canada', | |
'CT' => 'Canton and Enderbury Islands', | |
'CV' => 'Cape Verde', | |
'KY' => 'Cayman Islands', | |
'CF' => 'Central African Republic', | |
'TD' => 'Chad', | |
'CL' => 'Chile', | |
'CN' => 'China', | |
'CX' => 'Christmas Island', | |
'CC' => 'Cocos [Keeling] Islands', | |
'CO' => 'Colombia', | |
'KM' => 'Comoros', | |
'CG' => 'Congo - Brazzaville', | |
'CD' => 'Congo - Kinshasa', | |
'CK' => 'Cook Islands', | |
'CR' => 'Costa Rica', | |
'HR' => 'Croatia', | |
'CU' => 'Cuba', | |
'CY' => 'Cyprus', | |
'CZ' => 'Czech Republic', | |
'CI' => 'Côte d’Ivoire', | |
'DK' => 'Denmark', | |
'DJ' => 'Djibouti', | |
'DM' => 'Dominica', | |
'DO' => 'Dominican Republic', | |
'NQ' => 'Dronning Maud Land', | |
'DD' => 'East Germany', | |
'EC' => 'Ecuador', | |
'EG' => 'Egypt', | |
'SV' => 'El Salvador', | |
'GQ' => 'Equatorial Guinea', | |
'ER' => 'Eritrea', | |
'EE' => 'Estonia', | |
'ET' => 'Ethiopia', | |
'FK' => 'Falkland Islands', | |
'FO' => 'Faroe Islands', | |
'FJ' => 'Fiji', | |
'FI' => 'Finland', | |
'FR' => 'France', | |
'GF' => 'French Guiana', | |
'PF' => 'French Polynesia', | |
'TF' => 'French Southern Territories', | |
'FQ' => 'French Southern and Antarctic Territories', | |
'GA' => 'Gabon', | |
'GM' => 'Gambia', | |
'GE' => 'Georgia', | |
'DE' => 'Germany', | |
'GH' => 'Ghana', | |
'GI' => 'Gibraltar', | |
'GR' => 'Greece', | |
'GL' => 'Greenland', | |
'GD' => 'Grenada', | |
'GP' => 'Guadeloupe', | |
'GU' => 'Guam', | |
'GT' => 'Guatemala', | |
'GG' => 'Guernsey', | |
'GN' => 'Guinea', | |
'GW' => 'Guinea-Bissau', | |
'GY' => 'Guyana', | |
'HT' => 'Haiti', | |
'HM' => 'Heard Island and McDonald Islands', | |
'HN' => 'Honduras', | |
'HK' => 'Hong Kong SAR China', | |
'HU' => 'Hungary', | |
'IS' => 'Iceland', | |
'IN' => 'India', | |
'ID' => 'Indonesia', | |
'IR' => 'Iran', | |
'IQ' => 'Iraq', | |
'IE' => 'Ireland', | |
'IM' => 'Isle of Man', | |
'IL' => 'Israel', | |
'IT' => 'Italy', | |
'JM' => 'Jamaica', | |
'JP' => 'Japan', | |
'JE' => 'Jersey', | |
'JT' => 'Johnston Island', | |
'JO' => 'Jordan', | |
'KZ' => 'Kazakhstan', | |
'KE' => 'Kenya', | |
'KI' => 'Kiribati', | |
'KW' => 'Kuwait', | |
'KG' => 'Kyrgyzstan', | |
'LA' => 'Laos', | |
'LV' => 'Latvia', | |
'LB' => 'Lebanon', | |
'LS' => 'Lesotho', | |
'LR' => 'Liberia', | |
'LY' => 'Libya', | |
'LI' => 'Liechtenstein', | |
'LT' => 'Lithuania', | |
'LU' => 'Luxembourg', | |
'MO' => 'Macau SAR China', | |
'MK' => 'Macedonia', | |
'MG' => 'Madagascar', | |
'MW' => 'Malawi', | |
'MY' => 'Malaysia', | |
'MV' => 'Maldives', | |
'ML' => 'Mali', | |
'MT' => 'Malta', | |
'MH' => 'Marshall Islands', | |
'MQ' => 'Martinique', | |
'MR' => 'Mauritania', | |
'MU' => 'Mauritius', | |
'YT' => 'Mayotte', | |
'FX' => 'Metropolitan France', | |
'MX' => 'Mexico', | |
'FM' => 'Micronesia', | |
'MI' => 'Midway Islands', | |
'MD' => 'Moldova', | |
'MC' => 'Monaco', | |
'MN' => 'Mongolia', | |
'ME' => 'Montenegro', | |
'MS' => 'Montserrat', | |
'MA' => 'Morocco', | |
'MZ' => 'Mozambique', | |
'MM' => 'Myanmar [Burma]', | |
'NA' => 'Namibia', | |
'NR' => 'Nauru', | |
'NP' => 'Nepal', | |
'NL' => 'Netherlands', | |
'AN' => 'Netherlands Antilles', | |
'NT' => 'Neutral Zone', | |
'NC' => 'New Caledonia', | |
'NZ' => 'New Zealand', | |
'NI' => 'Nicaragua', | |
'NE' => 'Niger', | |
'NG' => 'Nigeria', | |
'NU' => 'Niue', | |
'NF' => 'Norfolk Island', | |
'KP' => 'North Korea', | |
'VD' => 'North Vietnam', | |
'MP' => 'Northern Mariana Islands', | |
'NO' => 'Norway', | |
'OM' => 'Oman', | |
'PC' => 'Pacific Islands Trust Territory', | |
'PK' => 'Pakistan', | |
'PW' => 'Palau', | |
'PS' => 'Palestinian Territories', | |
'PA' => 'Panama', | |
'PZ' => 'Panama Canal Zone', | |
'PG' => 'Papua New Guinea', | |
'PY' => 'Paraguay', | |
'YD' => 'People\'s Democratic Republic of Yemen', | |
'PE' => 'Peru', | |
'PH' => 'Philippines', | |
'PN' => 'Pitcairn Islands', | |
'PL' => 'Poland', | |
'PT' => 'Portugal', | |
'PR' => 'Puerto Rico', | |
'QA' => 'Qatar', | |
'RO' => 'Romania', | |
'RU' => 'Russia', | |
'RW' => 'Rwanda', | |
'RE' => 'Réunion', | |
'BL' => 'Saint Barthélemy', | |
'SH' => 'Saint Helena', | |
'KN' => 'Saint Kitts and Nevis', | |
'LC' => 'Saint Lucia', | |
'MF' => 'Saint Martin', | |
'PM' => 'Saint Pierre and Miquelon', | |
'VC' => 'Saint Vincent and the Grenadines', | |
'WS' => 'Samoa', | |
'SM' => 'San Marino', | |
'SA' => 'Saudi Arabia', | |
'SN' => 'Senegal', | |
'RS' => 'Serbia', | |
'CS' => 'Serbia and Montenegro', | |
'SC' => 'Seychelles', | |
'SL' => 'Sierra Leone', | |
'SG' => 'Singapore', | |
'SK' => 'Slovakia', | |
'SI' => 'Slovenia', | |
'SB' => 'Solomon Islands', | |
'SO' => 'Somalia', | |
'ZA' => 'South Africa', | |
'GS' => 'South Georgia and the South Sandwich Islands', | |
'KR' => 'South Korea', | |
'ES' => 'Spain', | |
'LK' => 'Sri Lanka', | |
'SD' => 'Sudan', | |
'SR' => 'Suriname', | |
'SJ' => 'Svalbard and Jan Mayen', | |
'SZ' => 'Swaziland', | |
'SE' => 'Sweden', | |
'CH' => 'Switzerland', | |
'SY' => 'Syria', | |
'ST' => 'São Tomé and Príncipe', | |
'TW' => 'Taiwan', | |
'TJ' => 'Tajikistan', | |
'TZ' => 'Tanzania', | |
'TH' => 'Thailand', | |
'TL' => 'Timor-Leste', | |
'TG' => 'Togo', | |
'TK' => 'Tokelau', | |
'TO' => 'Tonga', | |
'TT' => 'Trinidad and Tobago', | |
'TN' => 'Tunisia', | |
'TR' => 'Turkey', | |
'TM' => 'Turkmenistan', | |
'TC' => 'Turks and Caicos Islands', | |
'TV' => 'Tuvalu', | |
'UM' => 'U.S. Minor Outlying Islands', | |
'PU' => 'U.S. Miscellaneous Pacific Islands', | |
'VI' => 'U.S. Virgin Islands', | |
'UG' => 'Uganda', | |
'UA' => 'Ukraine', | |
'SU' => 'Union of Soviet Socialist Republics', | |
'AE' => 'United Arab Emirates', | |
'GB' => 'United Kingdom', | |
'US' => 'United States', | |
'ZZ' => 'Unknown or Invalid Region', | |
'UY' => 'Uruguay', | |
'UZ' => 'Uzbekistan', | |
'VU' => 'Vanuatu', | |
'VA' => 'Vatican City', | |
'VE' => 'Venezuela', | |
'VN' => 'Vietnam', | |
'WK' => 'Wake Island', | |
'WF' => 'Wallis and Futuna', | |
'EH' => 'Western Sahara', | |
'YE' => 'Yemen', | |
'ZM' => 'Zambia', | |
'ZW' => 'Zimbabwe', | |
'AX' => 'Åland Islands', | |
); | |
$field_class = ninja_forms_get_field_class( $field_id ); | |
$default_value = isset( $data['default_value'] ) ? $data['default_value'] : ''; | |
?> | |
<select id="ninja_forms_field_<?php echo $field_id;?>" name="ninja_forms_field_<?php echo $field_id;?>" class="<?php echo esc_attr( $field_class ); ?>"> | |
<?php foreach ( $country_list as $prefix => $country ) : ?> | |
<option value="<?php echo esc_attr( $prefix ); ?>" <?php selected( $prefix, $default_value ); ?>><?php echo esc_html( $country ); ?></option> | |
<?php endforeach; ?> | |
</select> | |
<?php | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Would this code be editable to grab a custom taxonomy? For example I am using WP Job Manager and it creates a tax - job_categories. Would it be possible to create a Job Categories select?