Próbuję dodać przycisk opcji group_id w Magento Pro v1.11
Śledzenie wraz z
http://phpmagento.blogspot.com/2012/01/ how-to-show-customer-group-selecter-in.html i
http://developersindia.info/magento/magento-override-frontend-controller.html,
który działa do pewnego momentu, ale group_id nie jest zapisywana do bazy danych.
Mój moduł do tej pory:
Struktura katalogów
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
}
}
.
theme../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>
Tak więc przyciski opcji z grupami pokazują się dobrze podczas rejestracji, ale dane nie są zapisywane do bazy danych, ponieważ grupa nadal jest wyświetlana jako ogólna w admin/manage customers
- Tak naprawdę nie chcę modyfikować plików podstawowych, jak opisuje artykuł,
- Nie jestem pewien, czy poprawnie nadpisuję maga
accountController
klasa (może jest lepszy sposób na zrobienie tego?)
Co ja psuję?
2 odpowiedzi
Sprawdź swój plik config.xml:
<frontend>
<routers>
<customer>
<args>
<modules>
<WACI_Customer before="Mage_Customer_AccountController">
WACI_Customer
</WACI_Customer>
</modules>
</args>
</customer>
</routers>
</frontend>
Powinien być:
<frontend>
<routers>
<customer>
<args>
<modules>
<WACI_Customer before="Mage_Customer">WACI_Customer</WACI_Customer>
</modules>
</args>
</customer>
</routers>
</frontend>
Musisz także zwrócić uwagę na:
<WACI_Customer before="Mage_Customer">WACI_Customer</WACI_Customer>
I
<WACI_Customer before="Mage_Customer">
WACI_Customer
</WACI_Customer>
Musisz upewnić się, że nie ma pustych spacji między <tag>
a content
i </tag>
Zobacz poniższy adres URL. Myślę, że jest to dla ciebie bardzo pomocne.
Jak pozwolić klientowi wybrać grupę klientów podczas rejestracji
http://www.magentocommerce.com/boards/viewthread/24208/
wybieranie grupy klientów podczas rejestracji w magento
http://sabujcse.wordpress.com/2010/03/09/selecting-customer-group-during-registration-in-magento/
Jak dodać pole grupy klientów podczas rejestracji w magento
http://xhtmlandcsshelp.blogspot.in/2010/12/add-customer-group-while-register-in.html
Jak dodać grupę w formularzu rejestracji
http://sapnandu-magento.blogspot.in/2011/07/how-to-add-group-in-register-form.html
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.