2015-06-04 43 views
0

在我的WooCommerce订单中,用户选择一张图像上传到服务器。现在我需要在发送“新订单”电子邮件之前编辑此图像(使用ImageMagick调整大小,修剪等),因为我将此图像附加到这些电子邮件中。WooCommerce钩在“新订单”之前 - 发送邮件

我试过了payment_complete挂钩,但是这个太晚了,邮件已经发送了。我也考虑过在邮件模板中这样做,但它只需要做一次,所以在发送邮件之前尤其如此。

当然,它应该发生在“谢谢”页面之后的服务器上,用户不必等待这个处理。

编辑:挂钩应提供订单ID,因为我需要访问订单项目。

在哪里可以插入/挂钩我的代码来实现这一目标?

谢谢!

回答

2

那么新订单电子邮件会被触发在woocommerce_order_status_pending_to_processing_notificationwoocommerce_order_status_pending_to_on-hold_notification挂钩上运行,并具有默认优先级(10)。

因此,您应该能够在优先级较低(例如5)的相同挂钩上运行代码。

如果做不到这一点,你可以跳过通知,并只专注于订单状态变化,所以下面的挂钩:

woocommerce_order_status_pending_to_processingwoocommerce_order_status_pending_to_on-hold

+0

谢谢您的回答!用你的钩子,它实际上可以在电子邮件发送之前运行一些代码,问题仍然是页面等待它完成。我想要的是,“谢谢”屏幕上的订单已完成以运行我的代码,以便用户不必等待,但看起来电子邮件是在此页面到达之前发送的,对吗? – NthDegree

+0

这是真的,你将不得不等待,直到函数完成。为避免这种情况,您可以在上载后异步处理图像。 – helgatheviking

+0

是的,但是这会给我一个问题,就是不确定异步任务是否在用户完成新订单的时刻完成。看起来要走的路将是在处理图像的感谢页面上启动异步任务,然后触发电子邮件。 – NthDegree

相关问题