MagentoProv1.11で設定されたgroup_idラジオボタンを追加しようとしています
http://phpmagento.blogspot.com/2012/01/how-to-show-customer-group-selecter-in.htmlおよび
http://developersindia.info/magento/magento-override-frontend-controllerに沿ってフォローします.htmlは
ある程度機能していますが、group_idがデータベースに書き込まれていません。
これまでの私のモジュール:
ディレクトリ構造
app/code/local
- WACI
-- Customer
--- controllers
---- AccountController.php
--- etc
---- config.xml
config.xml
<config>
<modules>
<WACI_Customer>
<version>0.1.0</version>
</WACI_Customer>
</modules>
<global>
<fieldsets>
<customer_account>
<group_id><create>1</create></group_id>
</customer_account>
</fieldsets>
</global>
<frontend>
<routers>
<customer>
<args>
<modules>
<WACI_Customer before="Mage_Customer_AccountController">
WACI_Customer
</WACI_Customer>
</modules>
</args>
</customer>
</routers>
</frontend>
</config>
AccountController.php
<?php
/**
*Customer account controller
*
* @package WACI_Customer
*/
require_once Mage::getModuleDir('controllers', 'Mage_Customer').DS.'AccountController.php';
class WACI_Customer_AccountController extends Mage_Customer_AccountController
{
/**
* Create customer account action
*/
public function createPostAction()
{
// contents of createPostAction(), with some extra logic
/**
* Initialize customer group id
*/
/* catch groupid at account creation */
if($this->getRequest()->getPost('group_id')){
$customer->setGroupId($this->getRequest()->getPost('group_id'));
} else {
$customer->getGroupId();
}
// rest of method
}
}
テーマ../persistent/customer/form/register.phtml
<div class="input-box">
<label for="group_id"><?php echo $this->__('Select your customer group') ?></label><br />
<?php
$groups = Mage::helper('customer')->getGroups()->toOptionArray();
foreach ($groups as $group){
echo '<input type="radio" name="group_id" value="'.$group['value'].'" class="validate-radio" >'.$group['label'].'</input><br/>';
}
?>
</div>
したがって、グループのラジオボタンは登録時に正常に表示されますが、データはデータベースに書き込まれていません。これは、グループがまだ一般的なものとして表示されているためです。admin/manage customers
- 記事で説明されているように、コアファイルを変更したくありません。
- メイジ
accountController
クラスを適切に上書きしているかどうかはわかりません(おそらくこれを行うためのより良い方法がありますか?)
私は何をいじくりまわしているのですか?