This topic has 2 replies, 3 voices, and was last updated 7 years by Radu.

  • Author
  • #122580
     Laura
    Moderator

    Hello everyone, this topic is for those who want to have an already populated country list to user xprofile fields instead of adding one by one.

    Just edit the child theme file “functions.php” and paste the following code:

    COPY CODE
    /*
    If you are using BP 2.1+, this will insert a Country selectbox.
    Add the function to bp-custom.php and then visit .../wp-admin/users.php?page=bp-profile-setup
    Remove this function after the field is created.
    */
    
    function bp_add_custom_country_list() {
     
      if ( !xprofile_get_field_id_from_name('Country') && 'bp-profile-setup' == $_GET['page'] ) {
     
    		$country_list_args = array(
    		       'field_group_id'  => 1,
    		       'name'            => 'Country',
    		       'description'	 => 'Please select your country',
    		       'can_delete'      => true,
    		       'field_order' 	 => 2,
    		       'is_required'     => false,
    		       'type'            => 'selectbox',
    		       'order_by'	 => 'custom'
     
    		);
     
    		$country_list_id = xprofile_insert_field( $country_list_args );
     
    		if ( $country_list_id ) {
     
    			$countries = array(
    				"United States",			
    				"Afghanistan",
    				"Albania",
    				"Algeria",
    				"Andorra",
    				"Angola",
    				"Antigua and Barbuda",
    				"Argentina",
    				"Armenia",
    				"Australia",
    				"Austria",
    				"Azerbaijan",
    				"Bahamas",
    				"Bahrain",
    				"Bangladesh",
    				"Barbados",
    				"Belarus",
    				"Belgium",
    				"Belize",
    				"Benin",
    				"Bhutan",
    				"Bolivia",
    				"Bosnia and Herzegovina",
    				"Botswana",
    				"Brazil",
    				"Brunei",
    				"Bulgaria",
    				"Burkina Faso",
    				"Burundi",
    				"Cambodia",
    				"Cameroon",
    				"Canada",
    				"Cape Verde",
    				"Central African Republic",
    				"Chad",
    				"Chile",
    				"China",
    				"Colombi",
    				"Comoros",
    				"Congo (Brazzaville)",
    				"Congo",
    				"Costa Rica",
    				"Cote d'Ivoire",
    				"Croatia",
    				"Cuba",
    				"Cyprus",
    				"Czech Republic",
    				"Denmark",
    				"Djibouti",
    				"Dominica",
    				"Dominican Republic",
    				"East Timor (Timor Timur)",
    				"Ecuador",
    				"Egypt",
    				"El Salvador",
    				"Equatorial Guinea",
    				"Eritrea",
    				"Estonia",
    				"Ethiopia",
    				"Fiji",
    				"Finland",
    				"France",
    				"Gabon",
    				"Gambia, The",
    				"Georgia",
    				"Germany",
    				"Ghana",
    				"Greece",
    				"Grenada",
    				"Guatemala",
    				"Guinea",
    				"Guinea-Bissau",
    				"Guyana",
    				"Haiti",
    				"Honduras",
    				"Hungary",
    				"Iceland",
    				"India",
    				"Indonesia",
    				"Iran",
    				"Iraq",
    				"Ireland",
    				"Israel",
    				"Italy",
    				"Jamaica",
    				"Japan",
    				"Jordan",
    				"Kazakhstan",
    				"Kenya",
    				"Kiribati",
    				"Korea, North",
    				"Korea, South",
    				"Kuwait",
    				"Kyrgyzstan",
    				"Laos",
    				"Latvia",
    				"Lebanon",
    				"Lesotho",
    				"Liberia",
    				"Libya",
    				"Liechtenstein",
    				"Lithuania",
    				"Luxembourg",
    				"Macedonia",
    				"Madagascar",
    				"Malawi",
    				"Malaysia",
    				"Maldives",
    				"Mali",
    				"Malta",
    				"Marshall Islands",
    				"Mauritania",
    				"Mauritius",
    				"Mexico",
    				"Micronesia",
    				"Moldova",
    				"Monaco",
    				"Mongolia",
    				"Morocco",
    				"Mozambique",
    				"Myanmar",
    				"Namibia",
    				"Nauru",
    				"Nepal",
    				"Netherlands",
    				"New Zealand",
    				"Nicaragua",
    				"Niger",
    				"Nigeria",
    				"Norway",
    				"Oman",
    				"Pakistan",
    				"Palau",
    				"Panama",
    				"Papua New Guinea",
    				"Paraguay",
    				"Peru",
    				"Philippines",
    				"Poland",
    				"Portugal",
    				"Qatar",
    				"Romania",
    				"Russia",
    				"Rwanda",
    				"Saint Kitts and Nevis",
    				"Saint Lucia",
    				"Saint Vincent",
    				"Samoa",
    				"San Marino",
    				"Sao Tome and Principe",
    				"Saudi Arabia",
    				"Senegal",
    				"Serbia and Montenegro",
    				"Seychelles",
    				"Sierra Leone",
    				"Singapore",
    				"Slovakia",
    				"Slovenia",
    				"Solomon Islands",
    				"Somalia",
    				"South Africa",
    				"Spain",
    				"Sri Lanka",
    				"Sudan",
    				"Suriname",
    				"Swaziland",
    				"Sweden",
    				"Switzerland",
    				"Syria",
    				"Taiwan",
    				"Tajikistan",
    				"Tanzania",
    				"Thailand",
    				"Togo",
    				"Tonga",
    				"Trinidad and Tobago",
    				"Tunisia",
    				"Turkey",
    				"Turkmenistan",
    				"Tuvalu",
    				"Uganda",
    				"Ukraine",
    				"United Arab Emirates",
    				"United Kingdom",
    				"Uruguay",
    				"Uzbekistan",
    				"Vanuatu",
    				"Vatican City",
    				"Venezuela",
    				"Vietnam",
    				"Yemen",
    				"Zambia",
    				"Zimbabwe"
    			);
    			
    			foreach (  $countries as $country ) {
    				
    				xprofile_insert_field( array(
    					'field_group_id'	=> 1,
    					'parent_id'		=> $country_list_id,
    					'type'			=> 'option',
    					'name'			=> $country,
    					'option_order'   	=> $i++
    				));
    				
    			}
     
    		}
    	}
    }
    add_action('bp_init', 'bp_add_custom_country_list');
    

     

    Laura Solanes - Graphic Designer and Web Designer

    Please be patient as I try to answer each topic as fast as i can.

    If you like the theme or the support you've received please consider leaving us a review on Themeforest!

    Always happy to help you 🙂

    #142008
     Kieran
    Participant

    Hi Laura,

    I really liked this snippet, saves a lot of time! I modified the above snippet to add US States should anyone be interested.

    COPY CODE
    /*
    If you are using BP 2.1+, this will insert a state selectbox.
    Add the function to bp-custom.php and then visit .../wp-admin/users.php?page=bp-profile-setup
    Remove this function after the field is created.
    */
     
    function bp_add_custom_state_list() {
     
      if ( !xprofile_get_field_id_from_name('state') && 'bp-profile-setup' == $_GET['page'] ) {
     
    		$state_list_args = array(
    		       'field_group_id'  => 1,
    		       'name'            => 'state',
    		       'description'	 => 'Please select your state',
    		       'can_delete'      => true,
    		       'field_order' 	 => 2,
    		       'is_required'     => false,
    		       'type'            => 'selectbox',
    		       'order_by'	 => 'custom'
     
    		);
     
    		$state_list_id = xprofile_insert_field( $state_list_args );
     
    		if ( $state_list_id ) {
     
    			$states = array(
    				"Alabama",
    "Alaska",
    "Arizona",
    "Arkansas",
    "California",
    "Colorado",
    "Connecticut",
    "Delaware",
    "Florida",
    "Georgia",
    "Hawaii",
    "Idaho",
    "Illinois",
    "Indiana",
    "Iowa",
    "Kansas",
    "Kentucky",
    "Louisiana",
    "Maine",
    "Maryland",
    "Massachusetts",
    "Michigan",
    "Minnesota",
    "Mississippi",
    "Missouri",
    "Montana",
    "Nebraska",
    "Nevada",
    "New Hampshire",
    "New Jersey",
    "New Mexico",
    "New York",
    "North Carolina",
    "North Dakota",
    "Ohio",
    "Oklahoma",
    "Oregon",
    "Pennsylvania",
    "Rhode Island",
    "South Carolina",
    "South Dakota",
    "Tennessee",
    "Texas",
    "Utah",
    "Vermont",
    "Virginia",
    "Washington",
    "West Virginia",
    "Wisconsin",
    "Wyoming"
    			);
    			
    			foreach (  $states as $state ) {
    				
    				xprofile_insert_field( array(
    					'field_group_id'	=> 1,
    					'parent_id'		=> $state_list_id,
    					'type'			=> 'option',
    					'name'			=> $state,
    					'option_order'   	=> $i++
    				));
    				
    			}
     
    		}
    	}
    }
    add_action('bp_init', 'bp_add_custom_state_list');
    #142032
     Radu
    Moderator

    Thanks you for providing your solution

    Have a nice week end

    Cheers
    R.

    Hi there!!! Help others from the community and mark any reply as solution if it solved your question. Mark as a solution
Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.

Log in with your credentials

Forgot your details?