【问题标题】:WooCommerce Hook before "New Order"-Mail is sent“新订单”之前的 WooCommerce 钩子 - 发送邮件
【发布时间】:2015-08-19 12:22:31
【问题描述】:

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

我尝试了 payment_complete 钩子,但是这个钩子太晚了,邮件已经发送了。我也想过在邮件模板里做,但是只需要做一次,所以特别要在邮件发出之前做。

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

编辑:钩子应该传递订单 ID,因为我需要访问订单项目。

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

谢谢!

【问题讨论】:

    标签: php wordpress email woocommerce


    【解决方案1】:

    好吧,新订单电子邮件被触发以在 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

    【讨论】:

    • 感谢您的回答!使用您的钩子,它实际上可以在发送电子邮件之前运行一些代码,问题仍然是页面等待它完成。我想要的是有一个“谢谢”屏幕,订单已完成运行我的代码,因此用户不必等待,但看起来电子邮件是在到达此页面之前发送的,对吧?
    • 是的,你必须等到函数完成。为避免这种情况,您可以在上传图片后对其进行异步处理。
    • 是的,但是这会给我一个问题,即不确定异步任务是否在用户完成新订单的那一刻完成。看起来要走的路是在感谢页面上启动一个异步任务,该任务处理图像,然后触发电子邮件..
    猜你喜欢
    • 2018-10-24
    • 2017-04-20
    • 1970-01-01
    • 2017-08-08
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 2016-02-23
    • 2016-10-26
    相关资源
    最近更新 更多