I came across a situation where I needed to listen to events of subscription / unsubscription. I came across this question and thought that I would leave this solution for those who might need it:
By adding an observer to the newsletter_subscriber_save_before event in your 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>
You can then call getSubscriber() (in the context of $observer->getEvent() , see the following code block) in your observer to get the Mage_Newsletter_Model_Subscriber model, which allows you to receive subscriber data. This works for subscription and unsubscribe cases.
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) { //.. } }
It so happened that it is really easy. These model events are super powerful and allow you to do things like it's super easy. Impossible to refuse free features!
For quick reference: what data is provided by the model Mage_Newsletter_Model_Subscriber (1.7)
source share