首页>Magento>source

如果客户选择付款方式,我需要发送特定的电子邮件.

我会将此用于希望离线付款的客户(银行转帐)电子邮件将通知他们我们的银行详细信息。

最新回答
  • 2019-8-16
    1 #

    如果您可以修改您使用的特定付款方式/模块, 它应该足以设置属性 $_infoBlockType   您的付款类,并创建一个提供必要信息的块。

    基本上这个区块只会制作一个 ->setTemplate()   在构造函数中调用,然后引用您的自定义 .phtml   文件与信息。

    备注:关于银行转账,还有现成的& 免费扩展(我知道 https://github.com/therouv/Magento-DebitPayment   和 Phoenix_BankPayment   - 但到目前为止没有使用它们)你可能想直接使用它们,获得灵感或使它们适应你的特定需求。

  • 2019-8-16
    2 #

    如前所述Fabian Blechschmidt,不需要观察者 如果有人需要一个简单的解决方案.将此块插入magento中所需的电子邮件模板:

    {{block type='core/template' area='frontend' template='email/order/sometext.phtml' order=$order}}
    

    在app / design / frontend / yOURTEMPLATE / email / order / sometext.phtml中创建文件。

    在文件内部,一个简单的if和away我们去:

    <?php $_order = $this -> getOrder(); ?>
    <?php if ($_order->getPayment()->getMethod() == 'somepayment') ?>
    <p>Some text for the specific payment</p>
    

  • 2019-8-16
    3 #

    您可以使用magento的事件/观察者方法在下订单后执行某些操作。

    你可以使用这个事件 sales_order_place_after  

    只需创建一个模块来监听magento observer / event。

    在/ app / code / local / {namespace} / {yourmodule} /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>
    

    然后在/ app / code / local / {namespace} / {yourmodule} /Model/Observer.php

    创建一个Observer类
       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 
          }
       }
    

    对于自定义电子邮件,您可以参考此链接链接

  • 2019-8-16
    4 #

    以下是我解决问题的方法。

    我希望根据不同的付款方式显示不同的文字。

    在我想要显示所需HTML的交易电子邮件模板中,我添加了这一行

    {{block type='core/template' area='frontend' template='paymentstatus/orderemail.phtml' order=$order}}
    

    然后我在app / design / frontend / yourtheme / yoursubtheme / template / paymentstatus /

    中创建了orderemail.phtml文件

    添加了我想要的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
    }
    ?>
    

    就是这样,制作测试订单并查看更改.

    希望对某人有所帮助:)

  • 2019-8-16
    5 #

    如果你问我,不需要观察员。

    如果使用了正确的付款方式,您可以在邮件中包含一个块,注入订单,检查付款方式并插入if,然后只插入付款数据。

    {{block type='core/template' area='frontend' template='email/order/mailtemplate.phtml' order=$order}}
    

  • magento2:Magento 2 StoreManagerInterface已存在于编译中的上下文对象中
  • magento2:Magento 2 - 通过CLI导入产品csv