Magento: Wählen Sie Kundengruppe bei der Registrierung
Der Versuch, eine hinzuzufügenGruppen-ID Optionsfeld aktiviertMagento Pro v1.11
Folgen zusammen mit
http://phpmagento.blogspot.com/2012/01/how-to-show-customer-group-selecter-in.html und
http://developersindia.info/magento/magento-override-frontend-controller.html,
Das funktioniert bis zu einem gewissen Punkt, aber die group_id wird nicht in die db geschrieben.
Mein bisheriges Modul:
Verzeichnisaufbau
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
}
}
Thema ../ 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>
Die Optionsfelder mit den Gruppen werden bei der Registrierung gut angezeigt, aber die Daten werden nicht in die Datenbank geschrieben, da die Gruppe in der Datenbank immer noch als "Allgemein" angezeigt wirdadmin/manage customers
accountController
Klasse (Vielleicht gibt es einen besseren Weg, dies zu tun?)Was mache ich falsch?