Я столкнулся с ситуацией, когда мне нужно было прослушивать события подписки / отмены подписки.Я столкнулся с этим вопросом и подумал, что оставлю это решение здесь для всех, кому оно может понадобиться:
Добавив наблюдателя к событию newsletter_subscriber_save_before
в вашем config.xml:
<global>
....
<events>
....
<newsletter_subscriber_save_before>
<observers>
<your_unique_event_name>
<class>yourgroupname/observer</class>
<method>newsletterSubscriberChange</method>
</your_unique_event_name>
</observers>
</newsletter_subscriber_save_before>
</events>
</global>
Затем вы можете вызвать getSubscriber()
(в контексте $observer->getEvent()
, см. Следующий блок кода) в своем наблюдателе, чтобы получить модель Mage_Newsletter_Model_Subscriber
, которая позволяет вам получать данные об абоненте.Это работает для случаев подписки и отписки.
public function newsletterSubscriberChange(Varien_Event_Observer $observer) {
$subscriber = $observer->getEvent()->getSubscriber();
//now do whatever you want to do with the $subscriber
//for example
if($subscriber->isSubscribed()) {
//...
}
//or
if($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
//...
} elseif($subscriber->getStatus() == Mage_Newsletter_Model_Subscriber::STATUS_UNSUBSCRIBED) {
//..
}
}
Так что оказывается, что это действительно легко.Эти модельные события очень мощные и позволяют вам делать такие вещи очень легко.Не могу отключить бесплатную функциональность!
Для краткого справочника, вот , какие данные предоставляет модель Mage_Newsletter_Model_Subscriber
(1.7)