Hallo,
ich schreibe gerade ein Plugin, zur Darstellung von Urlaubsmeldungen in der Bestellbestätigungsmail.
In der Bootstrap.php Datei habe ich mich in das “Shopware_Modules_Order_SendMail_BeforeSend” event eingeklemmt:
//call before sending email
$this->subscribeEvent(
'Shopware_Modules_Order_SendMail_BeforeSend',
'onFrontendPostDispatch'
);
In der Funktion onFrontendPostDispatch schreibe ich dann in den View Controller mit $view->assign meine Smarty Variablen zur
Verwendung im Email Text:
//callback function
public function onFrontendPostDispatch(Enlight_Event_EventArgs $args)
{
/** @var \Enlight_Controller_Action $controller */
$controller = $args->get('subject');
$view = $controller->View();
$view->addTemplateDir($this->Path() . 'Views/');
$view->assign('vacation_state', 'announce');
$view->assign('vacation_end', $this->Config()->get('date_end_vacation'));
$view->assign('vacation_message', $this->Config()->get('text_announce'));
}
Im Backend habe ich dann unter “Email Vorlagen” in der sOrder Vorlage den Smarty Code eingefügt, der auf meine eigenen
Variablen zugreift:
{if $vacation_state == "announce"}
{$vacation_message}
{/if}
Aber leider bekomme ich in der Email nichts angezeigt. Es funktioniert nicht und es ist extrem schwer zu debuggen.
Hat jemand eine Ahnung, wo das Problem liegt?
Danke,
Jens