Как назначить группу пользователю программно при регистрации
Я хотел бы назначить роль пользователям при регистрации из моего модуля.
Я проверил метод createPostAction()
класса Mage_Customer_AccountController
, где я нашел эти строки:
$customer->save();
Mage::dispatchEvent('customer_register_success',
array('account_controller' => $this, 'customer' => $customer)
);
Могу ли я использовать событие/наблюдателя ['customer_register_success'] для назначения группы? Должен ли я создать класс наблюдателя событий в своем модуле или есть лучшие подходы?
1 answers
Вы можете сделать это из бэкэнда.
Перейдите к System > Configuration > Customers > customer configuration > Create new account options
и выберите группу, которую вы хотите назначить, в опции Default Group
Таким образом, вам не нужно менять какой-либо код. Однако, если вы все же хотите использовать код по какой-то определенной причине, то событие customer_register_success
- это правильный путь.
Ваш наблюдатель выглядел бы примерно так
class [Namespace]_[Module]_Model_Observer
{
public function set_group($observer)
{
try {
$customer = $observer->getEvent()->getCustomer();
$customer->setData('group_id', 2); // or whatever the group id should be
$customer->save();
} catch ( Exception $e ) {}
}
}