Попытка добавления переключателя group_id , установленного в Magento Pro v1.11
Следуя вместе с
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 не записывается в db.
мой модуль, до сих пор:
Структура каталога
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 } }
на<?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 } }
на<?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 } }
Тема ../ настойчивый / клиент / форма / 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>
Таким образом, переключатели с группами отображаются хорошо при регистрации, но данные не записываются в db, так как группа по-прежнему отображается как общая в admin/manage customers
accountController
(возможно, лучший способ сделать это?) Что я делаю?
Проверьте свой файл config.xml:
<frontend> <routers> <customer> <args> <modules> <WACI_Customer before="Mage_Customer_AccountController"> WACI_Customer </WACI_Customer> </modules> </args> </customer> </routers> </frontend>
Должно быть:
<frontend> <routers> <customer> <args> <modules> <WACI_Customer before="Mage_Customer">WACI_Customer</WACI_Customer> </modules> </args> </customer> </routers> </frontend>
Вы также должны обратить внимание на:
<WACI_Customer before="Mage_Customer">WACI_Customer</WACI_Customer>
а также
<WACI_Customer before="Mage_Customer"> WACI_Customer </WACI_Customer>
Вы должны убедиться, что пустое пространство между <tag>
и content
и </tag>
См. Ниже URL Я думаю, что это очень помогает вам.
Как разрешить клиенту выбрать группу клиентов при регистрации
http://www.magentocommerce.com/boards/viewthread/24208/
выбор группы клиентов при регистрации в magento
http://sabujcse.wordpress.com/2010/03/09/selecting-customer-group-during-registration-in-magento/
Как добавить поле группы клиентов во время регистрации в magento
http://xhtmlandcsshelp.blogspot.in/2010/12/add-customer-group-while-register-in.html
Как добавить группу в регистрационную форму
http://sapnandu-magento.blogspot.in/2011/07/how-to-add-group-in-register-form.html