Как я могу программно получить region_id в Magento из 2-символьной аббревиатуры состояния? Я использую Magento 1.4.2, если это вообще имеет значение.
Получить region_id От аббревиатуры положения - Magento 1.4.2
Ответ 1
$regionModel = Mage::getModel('directory/region')->loadByCode($regionCode, $countryCode);
$regionId = $regionModel->getId();
Ответ 2
Получить коллекцию всех состояний/регионов, относящихся к определенной стране.
/**
* Get region collection
* @param string $countryCode
* @return array
*/
public function getRegionCollection($countryCode)
{
$regionCollection = Mage::getModel('directory/region_api')->items($countryCode);
return $regionCollection;
}
Заполнить список регионов областью. Код страны (например, NL, NP, EN) передается как параметр функции getRegionCollection.
$regionCollection = $this->getRegionCollection($countryCode);
<select name='customer[region]' id='customer:region' class="validate-select" >
<option>Please select region, state or province</option>
<?php
foreach($regionCollection as $region) {
?>
<option value="<?php echo $region['name'] ?>" ><?php echo $region['name'] ?></option>
<?php
}
?>
</select>
Ответ 3
Это сработало для меня.
<div class="field">
<label for="region_id" class="required"><em>*</em><?php echo $this->__('State/Province') ?></label>
<div class="input-box">
<select id="region_id" name="region_id" title="<?php echo $this->__('State/Province') ?>" class="validate-select">
<option value=""><?php echo $this->__('Please select region, state or province') ?></option>
<?php
$regions = Mage::getModel('directory/country')->load('US')->getRegions();
foreach($regions as $region)
{
echo "<option value=$region[name]>".$region['name'] . "</option>";
}
?>
</select>
</div>
</div>