Magento Observer - Получаване на абонамент за бюлетин от Order Object

Какво мога да извикам от обект $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->data['is_newsletter'] от $this->_order(Mage_Sales_Model_Order) или $this->_address(Mage_Sales_Model_Order_Address), или да изтегля друг модел, който има тази информация чрез статични фабрични методи като Mage::getModel(), ако трябва


person DWils    schedule 20.03.2014    source източник


Отговори (1)


Разбрах го, трябваше да внеса модела newsletter/subscriber в уравнението. Следният код върна 1 или нула:

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

Въз основа на това успях да задам правилно флага за включване:

$this->data['is_newsletter'] = $isNewsletter;
person DWils    schedule 20.03.2014