Senden Sie benutzerdefinierte E -Mails mit Variable über Skript
-
16-10-2019 - |
Frage
Ich möchte neue Register -Kunden -E -Mails mit einer vom Skript generierten Variablen senden.
Ich versuche es zu benutzen $customerObj->sendNewAccountEmail('confirmed');
Bitte erzähle
Wie kann ich eine benutzerdefinierte E -Mail -Vorlage mit Variable senden?
Ich habe eine benutzerdefinierte E -Mail -Vorlage erstellt 'new register email'
in Transaktions -E -Mails mit {{var myvar}}
Lösung
Mehr oder weniger ein paar Arrays, die eingerichtet werden müssen, würde ich empfehlen, ein Observer -Ereignis (oder ein Kernumschreiben zu veranlassen. In diesem Fall finden Sie die Sendungsfunktion für Kundenregistrierungen im Mage -Kern -Kundenordner!), Um Ihr benutzerdefiniertes Skript herauszufinden (Es gibt eine Liste der Beobachter, wenn Sie googeln!)
Deklarieren Sie den Absender als Array:
$sender = Array('name' => 'You',
'email' => 'you@domain.com');
Die Empfängeradresse muss nur buchstäblich eine Zeichenfolge sein, ähnlich wie das Mail -Thema.
$email = 'customer@customer.com';
Legen Sie Ihre Vorlagen -ID ein:
$templateId = 40;
Und deklarieren Sie schließlich, dass Ihre benutzerdefinierten Variablen an die Vorlage gesendet werden:
$vars = Array('nameOfCustomer' => $customerName,
'shippingDetails' => $shipping,
'storeName' => $store_name,
'storeURL' => $store_url,
'orderId' => $orderId);
Nachfolgend mit der Send -Funktion lasse ich den $ namens neue als Null -VAR:
$storeId = Mage::app()->getStore()->getId();
$translate = Mage::getSingleton('core/translate');
Mage::getModel('core/email_template')
->setTemplateSubject($mailSubject)
->sendTransactional($templateId, $sender, $email, $name, $vars, $storeId);
Rufen Sie dann in Ihrer Vorlage die VAR als buchstäblich an: zum Beispiel:
{{var storeName}}