Symfony Shopware5订单确认电子邮件事件

Symfony Shopware5订单确认电子邮件事件,symfony,email,events,shopware,Symfony,Email,Events,Shopware,经过长时间的调查,在发送订单确认电子邮件之前,我无法找到要使用的正确事件 我需要在s_order_attributes表中添加一个值,该表将包含在电子邮件模板中 我尝试了许多事件(例如结帐),但它们都是在电子邮件事件之后触发的 谢谢 看看这些,我想你可以尝试两种活动。您可以尝试Shopware\u Modules\u Order\u SendMail\u FilterVariables或sOrder::SendMail::before。这些都是在发送之前执行的。如果此时不再从数据库加载属性,则可

经过长时间的调查,在发送订单确认电子邮件之前,我无法找到要使用的正确事件

我需要在s_order_attributes表中添加一个值,该表将包含在电子邮件模板中

我尝试了许多事件(例如结帐),但它们都是在电子邮件事件之后触发的


谢谢

看看这些,我想你可以尝试两种活动。您可以尝试
Shopware\u Modules\u Order\u SendMail\u FilterVariables
sOrder::SendMail::before
。这些都是在发送之前执行的。如果此时不再从数据库加载属性,则可以在sOrder中设置公共变量以更改进入邮件的值。这可能也会对您有所帮助,但我更喜欢
FilterVariables
事件,因为它可以让您直接访问变量。

在下单时设置此值合适吗?这是一个什么样的值?@JoshuaBehrens这是一个来自我的一个资源文件的值(它是一个数字),并且它在每次订购时都会增加。唯一的问题是,在电子邮件发送给买家之前,我不知道如何添加此值。过去,我在“sOrder::setPaymentStatus::after”和“sOrder::sSaveOrder::after”中添加了这个值,但这两个事件显然是在电子邮件之后触发的。因为email字段为空,但当我进入s_order_attributes表时,该字段已正确填充。感谢您的回复!我做了一些测试,我将使用sOrder::sendMail::before。我还有最后一个问题,我需要在发生此事件时调用的函数中获取orderId。我尝试使用$args->get('id')$args->get('orderId');但是没有得到我想要的。而且我无法var_dump($args)那么我如何才能获取orderId?在这个事件中,您应该能够执行
$args->getArgs()[0]['ordernumber']
来获取ordernumber。此时不存在订单id,但订单号也是唯一的,可以帮助您查询订单id。