
在 magento 2.4.3 (以及从 2.4.1 升级后) 环境中,部分用户可能会遇到一个令人困扰的问题:尽管订单确认邮件模板中明确包含了用于渲染商品列表的标准布局句柄,例如:
{{layout handle="sales_email_order_items" order_id=$order_id area="frontend"}}然而,当客户收到订单确认邮件时,邮件内容中却未能正常显示任何商品详情。此问题并非由自定义主题引起,即使切换到 Magento 默认的 Luma 主题,问题依然存在。这表明问题根源在于 Magento 核心系统对邮件模板渲染机制的处理。
Magento 在不同版本中可能对邮件模板的渲染机制进行过调整或优化。在某些特定版本中,尤其是在处理通过 {{layout}} 指令加载的复杂内容块时,系统可能需要一种兼容模式来正确解析和渲染这些内容。当这种兼容模式未被激活时,即使模板语法正确,也可能导致内容无法正常显示。本教程所描述的问题,正是由于 Magento 邮件系统在处理 sales_email_order_items 布局句柄时,未能正确启用所需的“遗留模板处理”模式所致。
解决此问题的核心方法是激活 Magento 系统配置中的“遗留模板处理”模式。这可以通过命令行或直接修改数据库来实现。
这是最安全和推荐的方法,因为它通过 Magento 的配置管理系统进行操作。
打开您的 Magento 项目根目录下的终端,执行以下命令:
bin/magento config:set system/email_settings/legacy_template_processing 1
命令解释:
如果您无法使用命令行,或者需要直接在数据库中进行操作,可以通过 SQL 语句来修改配置。
重要提示:在执行任何直接数据库操作之前,请务必备份您的数据库,以防意外发生。
连接到您的 Magento 数据库,执行以下 SQL 语句:
UPDATE core_config_data SET value = '1' WHERE path = 'system/email_settings/legacy_template_processing';
SQL 语句解释:
在修改任何系统配置后,清除 Magento 缓存是至关重要的,以确保新的配置生效。
在终端中执行以下命令:
bin/magento cache:clean bin/magento cache:flush
命令解释:
完成上述步骤后,请在您的 Magento 商店中下一个测试订单。待订单创建成功后,检查您收到的订单确认邮件。现在,邮件内容中应该能够正常显示所有商品详情,包括商品名称、数量、价格等信息。
通过激活 Magento 系统配置中的 system/email_settings/legacy_template_processing 选项,可以有效解决 Magento 2.4.3 及更高版本中订单确认邮件商品不显示的问题。这一解决方案确保了邮件模板能够正确渲染 sales_email_order_items 布局句柄所包含的商品详情,从而保证了订单确认邮件内容的完整性和准确性,提升了用户体验。务必遵循操作步骤,并在进行任何系统修改前做好数据备份。
以上就是Magento 2.4.3 订单确认邮件商品不显示问题及解决方案的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号