I was also looking for the same and the other answer by Alex B was not working in my case. Also the code
$this->addOrder('country_id="US"','desc')
->addOrder('country_id', 'asc');
doesn't making any change in the country list. So instead on overriding the _initSelect()
I choose toOptionArray()
to override. and here's my code
public function toOptionArray($emptyLabel = '') {
$options = parent::toOptionArray($emptyLabel);
foreach ($options as $key => $option) {
if ($option['value'] == 'IN') { //check current country code
unset($options[$key]);
$options = addCountryToIndex($options, $option, 1);
}
}
return $options;
}
protected function addCountryToIndex($countries, $country, $index){
$options = array_slice($countries, 0, $index, true) +
array($index => $country) +
array_slice($countries, $index, count($countries) - 1, true);
return $options;
}