billing_fields.phtmlには
<?php
$billingFields['country_id'] = '
<div class="input-box input-country'.((in_array('country', $formErrors)) ? ' input-error' : '').'">
<label for="billing:country_id">'.$this->__('Country').' <span class="required">*</span></label><br />
'.$this->getCountryHtmlSelect('billing').'
</div>';
?>
国が 1 つしかなく、レンダリングされたドロップダウンを使用した選択タグ$this->getCountryHtmlSelect('billing')は、それ以上のオプションがないため、ユーザーフレンドリーではありません。誤解を招き、時代遅れだと感じます。私の質問は:
上記のコードを変更して、単純な (編集不可の) 入力フィールドにデフォルトの国を表示するにはどうすればよいですか?
編集CBroes getCountryCollectionヒント の後にこれを思いつきました
<?php
$countryCollection = $this->getCountryCollection();
foreach($countryCollection as $country) {
$country_id = $country['country_id'];
$countryName = Mage::getModel('directory/country')->load($country_id)->getName();
$billingFields['country_id'] = '
<div class="input-box input-country'.((in_array('country', $formErrors)) ? ' input-error' : '').'">
<label for="billing:country_id">'.$this->__('Country').' </label><br />
<input type="text" name="billing[country_id]" id="billing:country_id" class="input-text" value="'.$countryName.'" style="width: 83%" readonly="readonly" />
</div>';
}
?>
フロントエンドは問題ないようです。バックエンドでさえ、指定された値を認識します。残念ながら、メールはそうではありません。国フィールドは空のままです。
何が欠けていますか、またはこの入力を合法にして、magento-emails がその値を受け入れるようにするにはどうすればよいですか?