为什么在客户或新闻通讯模块中的新闻通讯订阅/取消订阅过程中或周围没有调度任何事件。
我目前面临的唯一选择是使用订阅者模型的重写来适应这里的一些代码。
有没有其他人有一个好的替代方案 - 或者我错过了什么
我遇到了需要监听订阅/取消订阅事件的情况。我遇到了这个问题,并认为我会将这个解决方案留在这里供任何可能需要它的人使用:
通过向事件添加观察者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模型提供 http://php.r3dcode.com/files/Magento/1.7/0.2/app/code/core/Mage/Newsletter/Model/Subscriber.php#n28 (1.7)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)