我有一个多商店网站,我需要根据商店更改国家/地区的顺序。就像我在以色列的商店一样,以色列必须在顶部,而对于美国商店来说,美国必须在顶部。
在magento中有什么可能的方法吗?我在 SO 上找到了答案,但国家/地区列表没有变化。有没有可能以这种方式对国家进行重新排序?
我有一个多商店网站,我需要根据商店更改国家/地区的顺序。就像我在以色列的商店一样,以色列必须在顶部,而对于美国商店来说,美国必须在顶部。
在magento中有什么可能的方法吗?我在 SO 上找到了答案,但国家/地区列表没有变化。有没有可能以这种方式对国家进行重新排序?
我也在寻找相同的答案,而Alex B的另一个答案在我的情况下不起作用。还有代码
$this->addOrder('country_id="US"','desc')
->addOrder('country_id', 'asc');
不会在国家/地区列表中进行任何更改。因此,而不是覆盖_initSelect()
我选择toOptionArray()
覆盖。这是我的代码
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;
}