我已经设置了一个观察员,只要将一个跟踪号码添加到货件中就会发送一封电子邮件,但我需要能够在管理员中显示电子邮件已发送的一些信息,而不是显示“发送邮件不会发送。“
这是我目前使用的代码。它有一个问题,因为它最终会发送大量的电子邮件,好像它是一些陷入循环的东西。我真的可以帮助弄清楚为什么会发生这种情况。
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();
}
}
答案 0 :(得分:1)
您正在货件对象上调用save()
。货件类具有_afterSave()
功能,可触发对轨道对象的保存。由于您正在为track_save_after创建一个观察者,因此很可能会导致循环。