программно пометить почтовое сообщение как отправленное - PullRequest
0 голосов
/ 24 января 2012

Я настроил наблюдателя для отправки электронного письма, как только к отгрузке добавлен номер отслеживания, но мне нужно иметь возможность показать, как администратор отправил электронное письмо вместо отображения "электронное письмо с отправкой не отправлено. "

Вот код, который я сейчас использую.Есть проблема с ним, потому что он каким-то образом в конечном итоге отправляет тонну электронных писем, как если бы он был каким-то образом застрял в цикле.Я мог бы действительно использовать некоторую помощь, чтобы выяснить, почему это происходит.

class WR_TrackingEmail_Model_Observer
{
    public function sendTrackEmail($observer)
    {
        $track = $observer->getEvent()->getTrack();
        $shipment = $track->getShipment(true);
        $shipment->sendEmail();
        $shipment->setEmailSent(true);

        $saveTransaction = Mage::getModel('core/resource_transaction')
                       ->addObject($shipment)
                       ->addObject($shipment->getOrder())
                       ->save();
    }
}

1 Ответ

1 голос
/ 24 января 2012

Вы звоните save() на объект отгрузки.Класс отгрузки имеет функцию _afterSave(), которая запускает сохранение на объектах отслеживания.Поскольку вы создаете наблюдателя для track_save_after, вы, скорее всего, вызовете цикл.

...