Отправьте Конкретное Электронное Письмо В Зависимости От Способа Оплаты (т. Е. Укажите Банковские Реквизиты)
Мне нужно отправить конкретное электронное письмо, если клиент выберет способ оплаты.
Я буду использовать это для клиентов, которые хотят платить в автономном режиме (банковский перевод) По электронной почте они получат информацию о наших банковских реквизитах.
6 answers
Если вы можете изменить используемый вами конкретный способ оплаты/модуль, должно быть достаточно установить свойство $_infoBlockType
вашего класса платежей и создать блок, который отображает необходимую информацию.
В основном этот блок просто вызовет ->setTemplate()
в конструкторе, а затем сошлется на ваш пользовательский файл .phtml
с информацией.
Замечание: Что касается банковского перевода, есть также готовые и бесплатные расширения (я знаю о https://github.com/therouv/Magento-DebitPayment
и Phoenix_BankPayment
- но не использовал их так far), которые вы, возможно, захотите использовать напрямую, получить вдохновение или адаптировать их к вашим конкретным потребностям.
Как ранее заявлял Фабиан Блехшмидт, нет необходимости в наблюдателях, если кому-то нужно простое решение. Вставьте этот блок в нужный шаблон электронной почты в magento:
{{block type='core/template' area='frontend' template='email/order/sometext.phtml' order=$order}}
И создайте файл в приложении/дизайне/интерфейсе/ВАШЕЙ табличке/электронной почте/заказе/sometext.phtml.
Внутри файла простое "если", и мы уходим:
<?php $_order = $this -> getOrder(); ?>
<?php if ($_order->getPayment()->getMethod() == 'somepayment') ?>
<p>Some text for the specific payment</p>
Вы можете использовать метод события/наблюдателя magento, чтобы что-то сделать после размещения заказа.
Вы можете использовать это событие sales_order_place_after
Просто создайте один модуль для прослушивания наблюдателя/события magento.
В вашем /приложении/коде/локальном/{пространстве имен}/{вашем модуле}/etc/config.xml :
<config>
...
<frontend>
...
<events>
<sales_order_place_after>
<observers>
<unique_event_name>
<class>{{modulename}}/observer</class>
<method>your function name</method>
</unique_event_name>
</observers>
</sales_order_place_after>
</events>
...
</frontend>
...
</config>
, А затем создайте класс наблюдателя в /приложении/коде/локальном/{пространстве имен}/{yourmodule}/Model/Observer.php
class <namespace>_<modulename>_Model_Observer
{
public function your function name(Varien_Event_Observer $observer)
{
$observer->getEvent()->getOrder() will give you all order detail.
retrieve payment methods and customer email from this order object
}
}
Для получения настраиваемой электронной почты вы можете перейти по этой ссылке Ссылка
Вот как я решил свою проблему.
Я хотел отобразить другой текст в зависимости от разных способов оплаты.
В шаблоне транзакционной электронной почты, где я хотел отобразить нужный HTML, я добавил эту строку
{{block type='core/template' area='frontend' template='paymentstatus/orderemail.phtml' order=$order}}
Затем я создал файл orderemail.phtml в приложении/дизайне/интерфейсе/yourtheme/yoursubtheme/шаблоне/статусе платежей/
Добавлена логика php, которую я хотел:
<?php
//Get payment method code
$pMethod = $this->getData('order')->getPayment()->getMethodInstance()->getCode();
if ($pMethod == 'banktransfer') {
?>
<p>Bank Transfer payment method selected during checkout process</p>
<?php
}
if ($pMethod == 'cashondelivery') {
?>
<p><Cash On Delivery payment method selected during checkout process/p>
<?php
}
?>
И все, сделайте свой тестовый заказ и посмотрите изменения.
Надеюсь, это поможет кто-то:)
Здесь нет необходимости в наблюдателе, если вы спросите меня.
Вы можете включить блокировку в почту, ввести заказ, проверить способ оплаты и вставить "если", тогда платежные данные будут вставлены только в том случае, если используется правильный способ оплаты.
{{block type='core/template' area='frontend' template='email/order/mailtemplate.phtml' order=$order}}
Создайте для этого новое расширение и используйте наблюдателя для отправки электронного письма. Из объекта наблюдателя, проанализированного для модели, которая является вашим наблюдателем, вы можете получить заказ, а оттуда способ оплаты. Простого "если/иначе" будет достаточно, чтобы отправить электронное письмо только с определенным способом оплаты.
В Inchoo есть отличная статья о наблюдателе, который вам нужен: Пользовательские события Magento в Inchoo И отправке пользовательских электронных писем вы можете узнать здесь: Пользовательские электронные письма Inchoo Magento