【问题标题】:Magento Observer - Getting Newsletter Subscribtion from Order ObjectMagento Observer - 从订单对象获取时事通讯订阅
【发布时间】:2014-03-20 19:20:59
【问题描述】:

我可以从$observer 对象调用什么来确定客人或客户是否在结账时点击了订阅复选框?到目前为止,我有这个:

public function collectCustomerData($observer)
{
    $this->observer = $observer;
    $this->_order = $this->observer->getEvent()->getOrder();
    $this->_address = $this->_order->getShippingAddress();
    $this->data['first_name'] = $this->_address->getFirstname();
    $this->data['last_name'] = $this->_address->getLastname();
    $this->data['city'] = $this->_address->getCity();
    $this->data['email'] = $this->_order->getCustomerEmail();
}

但我需要从$this->_order(Mage_Sales_Model_Order) 或$this->_address(Mage_Sales_Model_Order_Address) 添加$this->data['is_newsletter'],或者如果我通过静态工厂方法(例如 Mage::getModel())拉入另一个具有该信息的模型需要

【问题讨论】:

    标签: magento checkout newsletter observers


    【解决方案1】:

    我想通了,我必须将newsletter/subscriber 模型带入方程。以下代码返回 1 或 null:

    $email = $this->_order->getCustomerEmail();
    $isNewsletter = Mage::getModel('newsletter/subscriber')
        ->loadByEmail($email)
        ->getSubscriberStatus();
    

    基于此,我能够适当地设置 opt in 标志:

    $this->data['is_newsletter'] = $isNewsletter;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-06
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 2015-08-25
      相关资源
      最近更新 更多