Получить region_id из аббревиатуры штата - Magento 1.4.2 - PullRequest
12 голосов
/ 29 марта 2011

Как программно получить region_id в Magento из двухбуквенного сокращения состояния?Я использую Magento 1.4.2, если это вообще имеет значение.

Ответы [ 3 ]

26 голосов
/ 29 марта 2011
$regionModel = Mage::getModel('directory/region')->loadByCode($regionCode, $countryCode);
$regionId = $regionModel->getId();
1 голос
/ 29 марта 2011

Получить коллекцию всех штатов / регионов, связанных с конкретной страной.

/**
 * 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> 
0 голосов
/ 26 мая 2015

Это работает для меня.

<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>
...