我需要在收到新订单时发送电子邮件通知,并且我需要以与网站其他部分不同的方式格式化价格。
有没有办法向 oro_format_price 发送参数?
我试图用一个简单的 number_format 替换 oro_format_price 但它没有用......
谢谢
编辑:
挖掘代码(这里和这里)我发现有一些选项可以传递给 oro_format_price 过滤器,所以我把这段代码放在我的电子邮件模板中:
{{ item.price.value|oro_format_price({symbols: {decimal_separator_symbol: '.', grouping_separator: '' }}) }}
这没有向我显示任何错误,但我也没有收到任何电子邮件:(
我正在使用版本 3.1.17 BTW
编辑2:
我再次检查并发现我写错了一些东西,我当前的版本如下所示:
{{ item.price|oro_format_price({symbols: {decimal_separator_symbol: '.', grouping_separator_symbol: '', monetary_grouping_separator_symbol: '', currency_symbol:'' }}) }}
现在电子邮件已发送,但格式未更改:(
编辑3:
我再次更改它以尝试使用更简单的方法:
{{ item.price.value|number_format(2, '.','') }}
并在日志中发现了这些错误:
app.ERROR: An error occurred while processing notification {"exception":"[object] (Oro\\Bundle\\EmailBundle\\Exception\\EmailTemplateCompilationException(code: 0): Could not found one email template with \"order_confirmation_test\" name for \"Oro\\Bundle\\OrderBundle\\Entity\\Order\" entity at /usr/share/nginx/html/oroapp/vendor/oro/platform/src/Oro/Bundle/EmailBundle/Provider/EmailTemplateContentProvider.php:71)"} []
app.ERROR: An error occurred while sending "Oro\Bundle\NotificationBundle\Event\Handler\TemplateEmailNotificationAdapter" notification with email template "order_confirmation_test" for "Oro\Bundle\OrderBundle\Entity\Order" entity {"exception":"[object] (Oro\\Bundle\\NotificationBundle\\Exception\\NotificationSendException(code: 0): Could not send notification of type \"Oro\\Bundle\\NotificationBundle\\Event\\Handler\\TemplateEmailNotificationAdapter\" for email template \"order_confirmation_test\" for \"Oro\\Bundle\\OrderBundle\\Entity\\Order\" entity at /usr/share/nginx/html/oroapp/vendor/oro/platform/src/Oro/Bundle/NotificationBundle/Manager/EmailNotificationManager.php:125)"} []
我尝试通过常规模板(我的意思是在电子邮件之外)输出相同的内容,它工作正常。
查看 php error_log 文件,我发现了这条消息:
"NOTICE: PHP message: PHP Notice: Calling "getvalue" method on a "Oro\Bundle\CurrencyBundle\Entity\Price" object is not allowed in ...
我检查了类 Oro\Bundle\CurrencyBundle\Entity\Price 并且 getValue 方法是公开的,所以我不明白为什么会失败:(