0

我有一个多商店网站,我需要根据商店更改国家/地区的顺序。就像我在以色列的商店一样,以色列必须在顶部,而对于美国商店来说,美国必须在顶部。

在magento中有什么可能的方法吗?我在 SO 上找到了答案,但国家/地区列表没有变化。有没有可能以这种方式对国家进行重新排序?

4

1 回答 1

0

我也在寻找相同的答案,而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;
}
于 2014-03-14T05:35:07.900 回答