magento2 邮件模板中直接调用 block文件

有些邮件模板我们想直接写在phtml里面
好想法

示例
{{block class="Magento\Framework\View\Element\Template" order=$order name="order_sms" template="[vendor]_[module]::[filename].phtml" area="frontend"}}
介绍

class 必写 固定 Magento\Framework\View\Element\Template

template 文件模板 后面是文件的具体路径 Magento_Email::ces.phtml
Magento_Email/templates/ces.phtml
文件必须放在templates 文件夹下面
默认简写了 templates

area frontend 或者 adminhtml 前后端的意思

order name 是传递给phtml的数据
可以通过

$order = $this->getData('order');

在phtml获取

示例

{{block class="Magento\Framework\View\Element\Template"  name="order_sms" template="Magento_Email::ces.phtml" area="frontend"}}

注意

magento2 有的版本有bug
block 传值只能传 string类型 数组或者对象传递有问题 有的传不过去 获取的是NULL 例如上面的 order=$order
所以优化

{{block class="Magento\Framework\View\Element\Template" area='frontend' template='Magento_Email::order/new_order/us/new_header.phtml' order_id=$order_id }}

订单数据的话 可以只传递 order_id
然后再对应的phtml中使用一下方法获取数据

$blockData = $this->getData();
$orderId = $blockData["order_id"];
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$_order = $objectManager->create('Magento\Sales\Api\Data\OrderInterface')->load($orderId);
var_dump($_order->getData());

有讨论说更改 https://github.com/magento/magento2/issues/26882
email_template 数据表 对应的数据的 is_legacy 将0变成1
但是我是使用magento2.4 获取order 直接白屏了 没有效果
你们可以自己试下

官方邮件文档 https://devdocs.magento.com/guides/v2.4/frontend-dev-guide/templates/template-email.html
迁移自定义电子邮件模板 https://devdocs.magento.com/guides/v2.4/frontend-dev-guide/templates/template-email-migration.html
感谢 https://magento.stackexchange.com/questions/134947/magento-2-how-to-call-block-file-in-order-email-with-order-variable
感谢 https://gordonlesti.com/magento-2-email-template-block-directives/

magento2 邮件模板中直接调用 block文件相关推荐

  1. java jni dll路径_Java中Jni调用DLL文件试验

    Java中Jni调用DLL文件试验 下面是小编整理的Java中Jni调用DLL文件试验内容,希望可以为您带来帮助!更多内容请关注应届毕业生考试网! 所有文件均在E:\路径下. 安装jdk1.6.0_0 ...

  2. html邮件修改不了图片,邮件模板中的图片不显示,该怎么解决

    邮件模板中的图片不显示 这个是我邮件模板 html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  3. c语言如何调用外部文件的函数调用,keil 中如何调用其他文件的函数

    建立一个和这个C文件同名的H文件,把这个C文件中的函数都包含到这个H文件中就ok! 例如:有这样一个serial.C文件: /************************************* ...

  4. iis 中后台调用exe文件

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> asp.net程序中调用 ...

  5. 在 Android 系统中直接调用 SO文件(包含System.loadLibrary加载so的路径解释)

    Android虚拟机不能直接调用底层设备,如果要对底层设备进行调用,就需要用到so使 用 C语言或C++编写完成,利用NDK进行编译,直接运行在Linux内核中,按jni调用 so时, 基本类型可以直 ...

  6. CorelDRAWX4的VBA插件开发(三十一)使用C++制作动态连接库DLL辅助VBA构键强大功能-(5)在VBA中动态调用DLL文件

    我们先来看一下动态调用的截图 先上代码 '静态调用 Public Declare Function wodedll Lib "E:\VS-DLL\conglingkaishi\Debug\C ...

  7. 在C#中怎么调用Resources文件中的图片

    譬如资源中有名为myPic的图片,在代码中可以这么使用: this.BackgroundImage = Properties.Resources.myPic; 如有疑问,继续追问. 转载于:https ...

  8. 帝国cms模板嵌入php,帝国cms模板中php调用信息的例子

    php SQL输出某栏目下的一级栏目 $class_sql=$empire->query("select classid,classname,bname from {$dbtbpre} ...

  9. twig调用PHP函数,php – 如何在Symfony2 Twig模板中调用静态函数

    您无法在twig模板中直接调用PHP.您需要创建一个过滤器或函数来执行您正在查找的内容. $twig = new Twig_Environment($loader, $params); $twigFu ...

最新文章

  1. SVM讲的成体系的,自圆其说较好的一篇,上午没读完,KKT第二部分不等式有疑问没弄懂,复制后继续读完
  2. 基于Bootstrap的jQuery开关按钮插件
  3. NumPy (6)-结构化数据类型数组
  4. mysql 包含的那些文件
  5. 为什么栈的数组长度必须是一个常量?而堆的数组长度可以是变量。为什么栈的大小有限制?
  6. 5.23考前友情提醒
  7. 国内外优秀音视频博客
  8. visio2010安装
  9. ps2键盘测试软件,PS2键盘51测试程序1
  10. flash播放器代码
  11. 解决扫码枪中文输入法冲突问题
  12. Unity导入Goolgle.Protobuf.dll报错
  13. html p 标签文字换行与不换行以及文字隐藏
  14. win7修复计算机 报错6,Win7系统出现APPCRASH错误怎么解决
  15. python编程的线性/非线性规划问题求解
  16. 卧室.餐厅.客厅要选择挂什么油画?
  17. web网页设计期末课程大作业——汉中印象旅游景点介绍网页设计与实现19页面HTML+CSS+JavaScript
  18. Quantopian教程系列三
  19. OpenCV实现影像畸变矫正GPU
  20. 价值链-商业模式名词解释11

热门文章

  1. Python+OpenCV图像处理(五)——图像阈值和二值化
  2. 每天一个PS技巧(原理+实践)——制作熊猫人表情包
  3. 索爱SE8头戴蓝牙耳机,带上它外面的世界与我无关
  4. echarts 折现图和柱状图 样式修改 设置折线样式 背景(文末附带完整代码)
  5. linux nfs配置参数,NFS常用参数
  6. 打起来了,打起来了!!
  7. 错误集:smbclient访问Windows共享文件夹报错误:protocol negotiation failed: NT_STATUS_CONNECTION_RESET
  8. springboot开发微信小程序
  9. calendar获取本周一的日期_Swift - 获取本周(或指定日期所在周)的第一天、最后一天日期...
  10. ROS导航小车经验总结