Задайте группу клиентов с помощью поля настраиваемой формы регистрации


Я читал другие вопросы по этой проблеме. Я сделал то, что люди предлагали в качестве решения, но это не работает. На самом деле кажется, что код вообще не выполняется.

Я создал модуль. Вот файлы модуля:

CustomX_GroupRegister.xml

<?xml version="1.0"?>
<config>
  <modules>
    <CustomX_GroupRegister>
      <codePool>local</codePool>
      <active>true</active>
    </CustomX_GroupRegister>
  </modules>
</config> 

App/code/local/CustomX/GroupRegister/etc/config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <CustomX_GroupRegister>
            <version>0.1.0</version>
        </CustomX_GroupRegister>
    </modules>
    <global>
        <models>
            <groupregister>
                <class>CustomX_GroupRegister_Model</class>
            </groupregister>
        </models>
        <events>
            <customer_register_success>
                <observers>
                   <CustomX_Groupregister_Model_Observer>
                      <type>singleton</type>
                        <class>CustomX_Groupregister_Model_Observer</class>
                        <method>CustomerRegister</method>
                   </CustomX_Groupregister_Model_Observer>
               </observers>
            </customer_register_success>    
        </events>
    </global>
</config> 

App/code/local/CustomX/GroupRegister/Model/Observer.php

    Class CustomX_Groupregister_Model_Observer
    {
        public function CustomerRegister($observer){
            $data = Mage::getSingleton('core/app')->getRequest();
            $customer = $observer->getCustomer();

            //'customer_type' is a custom field in register form
            $customer_type = $data->getParam('customer_type');

            if($customer_type == 'wholesale'){
                $customer->setData('group_id',2);  
            }else{
                $customer->setData('group_id',3);  
            }   
            $customer->save();
        }
    }

Я также пытался использовать пользователь_сохранение_перед событием. Это тоже не сработало.

Есть идеи?

Author: Qaisar Satti, 2016-04-27

2 answers

Ваше имя класса неверно в xml, а также наблюдатель GroupRegister

<class>CustomX_GroupRegister_Model_Observer</class>

И то же самое в наблюдателе

App/code/local/CustomX/GroupRegister/Model/Observer.php

Class CustomX_GroupRegister_Model_Observer
{
 1
Author: Qaisar Satti, 2016-04-27 11:47:33

Попробуйте customer_save_after событие вместо customer_register_success

 1
Author: user3436157, 2016-04-27 11:12:33