Note to self for Magento and EC

Monday, October 17, 2011

フリガナ対応 2

フリガナ対応 1 でフリガナの項目を追加する方法を記載しましたが、まだ不十分なところがありました。そのひとつに、ユーザーが情報登録する画面によってフリガナが登録されない、というものがあります。

カナはアカウント情報用と住所情報用の2種類存在します。
そのため、登録画面によっては片方しか登録されない場合があります。


1. アカウントの新規登録画面
ログインメニューから新規登録する場合、デフォルトでは住所を入力するフォームがありません。そこで、下記のファイルを編集します。

/app/design/frontend/<theme>/default/template/customer/form/register.phtml

<?php if($this->getShowAddressFields()): ?>
の上に、下記を追加
<?php $this->setShowAddressFields(true); ?>

これで住所フォームが表示され、登録できるようになります。また、住所情報にもフリガナが登録されるようになります。



2.  チェックアウト時の新規登録画面(Onepage checkout)
カートからチェックアウトに進んでからアカウント登録を行う場合、今のままでは住所情報にだけカナが登録されます。そのため、下記の修正を行いました。

/app/code/core/Mage/Checkout/Model/Type/Onepage.php
を下記にコピーします。
/app/code/local/Mage/Checkout/Model/Type/Onepage.php

    protected function _prepareNewCustomerQuote()
    {
        .....
        $customer->setPassword($customer->decryptPassword($quote->getPasswordHash()));
        $customer->setPasswordHash($customer->hashPassword($customer->getPassword()));
        //ここに追加
        .....
    }
上記に下記のコードを追加します。
$customer->setData('firstnamekana', $billing->getData('firstnamekana'));
$customer->setData('lastnamekana', $billing->getData('lastnamekana'));


これでチェックアウト時のアカウント登録でもアカウント情報と住所情報の両方にフリガナが登録されます。


0 comments:

Post a Comment