Hwg Attribute manager extension (Manage Category、Customer、Customer Address Attributes) を使用して、カスタム属性を顧客住所に追加しました (住所タイプを商用または住宅から選択します)。バックエンドで動作しています。しかし、問題はフロントエンドでは機能していません。だから私はこのコードを
app/design/frontend/base/default/template/customer/address/edit.phtml に追加しました
<li class="fields">
<label for="billing:addresstype" class="required"><em>*</em><?php echo $this->__('Address Type') ?></label>
<div class="input-box">
<select name="billingaddresstype" id="billingaddresstype">
<?php $collection = Mage::getResourceModel('eav/entity_attribute_option_collection');
$collection->setAttributeFilter(174);
$collection->setStoreFilter();
$collection->load();
$options = $collection->toOptionArray();
foreach ($options as $option) {
echo "<option value='".$option['value']."'>".$option['label']."</option>";
}
?>
</select><?php //var_dump($options); ?>
</div>
</li>
コンボボックスがフロントエンドに表示されるようになりました。しかし、それはデータを保存しません。次に、AddressController で送信フォームの値を確認します
$addressForm = Mage::getModel('customer/form');
$addressForm->setFormCode('customer_address_edit')
->setEntity($address);
$addressData = $addressForm->extractData($this->getRequest());
var_dump($addressData);
break;
カスタム属性値が含まれていません。
array(11) { ["firstname"]=> string(8) "thushara"
["lastname"]=> string(11) "Mannaperuma"
["company"]=> string(3) "flt"
["street"]=> array(2)
{ [0]=> string(17) "1234 Heartwood Dr" [1]=> string(0) "" }
["city"]=> string(10) "Beltsville"
["country_id"]=> string(2) "US"
["region"]=> string(0) ""
["region_id"]=> string(2) "31"
["postcode"]=> string(5) "20705"
["telephone"]=> string(12) "548-789-6548"
["fax"]=> string(0) "" }
私はこの時点で立ち往生しています。