2014-02-18 1 views
0

Следуя учебному пособию, я пытаюсь сделать наблюдателя, который изменяет группу клиентов при регистрации/редактировании на основе настраиваемого значения поля. Я не могу заставить наблюдателя событий работать, я думаю, что это синтаксис, поскольку учебник рассчитан на 1.4, а я на 1.7. Любая помощь будет apreciated:Magento 1.7 customer_save_before observer

/app/etc/modules/Nonsintetic_All.xml

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <modules> 
     <Nonsintetic_Membership> 
      <active>true</active> 
      <codePool>local</codePool> 
     </Nonsintetic_Membership> 
    </modules> 
</config> 

/app/code/local/Nonsintetic/Membership/etc/config.xml

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Nonsintetic_Membership> 
      <version>1.0</version> 
     </Nonsintetic_Membership> 
    </modules> 
    <global> 
     <events> 
      <customer_save_before> 
       <observers> 
        <nonsintetic_membership_save_observer> 
         <type>singleton</type> 
         <class>Nonsintetic_Membership_Model_Observer</class> 
         <method>customer_save_before</method> 
        </nonsintetic_membership_save_observer> 
       </observers> 
      </customer_save_before> 
     </events> 
    </global> 
</config> 

/app/code/local/Nonsintetic/Membership/Model/Observer.php

<?php 

class Nonsintetic_Membership_Model_Observer extends Mage_Core_Model_Abstract 
{ 
    /* 
    * observer for the customer saved event 
    */ 
    public function customer_save_before($observer) 
    { 
     try { 
      $customer = $observer->getCustomer(); 
        Mage::log("customer_save_before TRIGGERED"); 
      if($customer->getCardmembru() == "TEST123") { 
       $customer->setData('group_id', 4); // Set the new customer group 
      } else { 
       $customer->setData('group_id', 1); // Set to the default customer group 
      } 
     } catch (Exception $e) { 
      Mage::log("customer_save_before observer failed: " . $e->getMessage()); 
     } 
    } 
} 

?> 

ответ

0

Пожалуйста, измените в config.xml

<?xml version="1.0"?> 
<config> 
    <modules> 
     <Nonsintetic_Membership> 
      <version>1.0</version> 
     </Nonsintetic_Membership> 
    </modules> 
    <global> 
     <models> 
      <membership> 
     <class>Nonsintetic_Membership_Model</class> 
     </membership> 
     </models> 
     <events> 
      <customer_save_before> 
       <observers> 
        <nonsintetic_membership_save_observer> 
         <type>singleton</type> 
         <class>membership/Observer</class> 
         <method>customer_save_before</method> 
        </nonsintetic_membership_save_observer> 
       </observers> 
      </customer_save_before> 
     </events> 
</global> 
</config> 

Кроме того, я изменил код в Observer.php

class Nonsintetic_Membership_Model_Observer 
{ 
    /* 
    * observer for the customer saved event 
    */ 
    public function customer_save_before($observer) 
    { 



     try { 
      $customer = $observer->getCustomer(); 
//please check code in if condition 
      if($customer->getCardmembru() == "TEST123") { 
       $customer->setData('group_id', 4); // Set the new customer group 
      } else { 
       $customer->setData('group_id', 1); // Set to the default customer group 
      } 
     } catch (Exception $e) { 
      Mage::log("customer_save_before observer failed: " . $e->getMessage()); 
     } 
    } 
} 
+0

скажите мне khow, у вас есть вопрос ... –

+0

еще не везение , Я добавил строку для регистрации, если функция запускается вообще, а это не так. –

+0

вы можете обеспечить, чтобы наблюдатель попал в customer_save_before() ... –

 Смежные вопросы

  • Нет связанных вопросов^_^