Magento2 如何使用模块将自定义块添加到电子邮件模板

Magento2 如何使用模块将自定义块添加到电子邮件模板,magento2,Magento2,我正在尝试在订单确认电子邮件中创建一个自定义块,以添加有关自定义装运方法的一些信息 这是我到目前为止尝试的,但它没有在电子邮件中显示我的区块 在/app/code/moduleA/moduleB/view/frontend/layout文件夹中,我创建了sales\u order\u info\u links.xml 但我的代码不起作用,电子邮件中没有显示任何内容 如果可能,请指导我如何使用模块在订单确认电子邮件发货部分添加自定义块 提前谢谢 首先,您必须覆盖订单模板,或者只需在新订单模板中添加

我正在尝试在订单确认电子邮件中创建一个自定义块,以添加有关自定义装运方法的一些信息

这是我到目前为止尝试的,但它没有在电子邮件中显示我的区块

在/app/code/moduleA/moduleB/view/frontend/layout文件夹中,我创建了sales\u order\u info\u links.xml

但我的代码不起作用,电子邮件中没有显示任何内容

如果可能,请指导我如何使用模块在订单确认电子邮件发货部分添加自定义块


提前谢谢

首先,您必须覆盖订单模板,或者只需在新订单模板中添加句柄即可

创建文件vendor/modulename/etc/email_templates.xml

在电子邮件模板文件中添加处理程序,或者您可以直接从magento edit编辑电子邮件模板,并在电子邮件中添加以下内容

{{layout handle=sales\u order\u info\u links order=$order area=frontend}}

现在创建一个布局处理程序vendor/modulename/view/frontend/layout/sales\u order\u info\u links.xml

添加以下内容

创建块文件Vendor/ModuleName/block/Email/info.php

<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
   <body>
        <block class="moduleA\moduleB\Block\moduleApickuppointemail" name="moduleApickuppointemail" before="items" template="moduleA_moduleB::moduleApickuppointemail.phtml" />
   </body>
</page>
<?php
namespace moduleA\moduleB\Block;

class moduleApickuppointemail extends \Magento\Framework\View\Element\Template
{
    public function __construct(\Magento\Framework\View\Element\Template\Context $context)
    {
        parent::__construct($context);
    }
    public function sayHello()
    {
        return __('Hello World');
    }

}
<?php

/**
 * @var \moduleA\moduleB\Block\moduleApickuppointemail $block
 */

echo $block->sayHello();