0

顧客アカウント登録に、顧客が提携している米国の学校をデータベースから選択できる追加のフィールドがあります。顧客アカウントの作成時に、学校の住所を顧客データに入力したいと考えています。

local.xml の次の xml を使用して、顧客アカウントの作成で住所フィールドを有効にしました。register.phtml テンプレートのフィールドを一時的にコメントアウトします。このように住所を投稿しますが、顧客アカウントに追加したい住所が複数ある場合、登録投稿中にどのように追加すればよいですか?

<customer_account_create>
        <reference name="customer_form_register">
            <action method="setShowAddressFields"><value>true</value></action>
        </reference>
</customer_account_create>

ajax 呼び出しを実行して学校の住所を取得し、次の非表示フィールドに該当する値を追加します。繰り返しますが、複数のアドレスを投稿する必要があることがよくあります。

<?php if($this->getShowAddressFields()): ?>
        <input type="hidden" name="create_address" value="1" />
        <input type="hidden" name="company" id="company" value="" title="<?php echo $this->__('Company') ?>" />
        <input type="hidden" name="telephone" id="telephone" value="" title="<?php echo $this->__('Telephone') ?>" />
        <input type="hidden" name="street[]" value="" title="<?php echo $this->__('Street Address') ?>" id="street_1" />
        <input type="hidden" name="street[]" value="" title="<?php echo $this->__('Street Address 2') ?>" id="street_2" />
        <input type="hidden" name="city" value="" title="<?php echo $this->__('City') ?>" id="city" />
        <input type="hidden" id="region_customer_id" name="region_cait_id" title="<?php echo $this->__('State/Province') ?>">
        <input type="hidden" id="region" name="region" value="" title="<?php echo $this->__('State/Province') ?>" class="input-text <?php echo $this->helper('customer/address')->getAttributeValidationClass('region') ?>" style="display:none;" />
        <input type="hidden" name="postcode" value="<?php echo $this->escapeHtml($this->getFormData()->getPostcode()) ?>" title="<?php echo $this->__('Zip/Postal Code') ?>" id="zip" class="input-text validate-zip-international <?php echo $this->helper('customer/address')->getAttributeValidationClass('postcode') ?>" />
        <input type="hidden" name="default_billing" value="1" />
        <input type="hidden" name="default_shipping" value="1" />
    <?php endif; ?>

代わりにモジュールを作成する必要がある場合:どのイベントにフックする必要がありますか? 住所を顧客データに保存するにはどうすればよいですか? 顧客アカウント作成フォームに投稿された値が必要です。

4

1 に答える 1