在 Woocommerce 中触发订单自定义状态更改的电子邮件

Trigger email on order custom status change in Woocommerce

我创建了一个自定义电子邮件 class 并将其添加到 WooCommerce。当我转到 WooCommerce 中的电子邮件设置时,我可以在那里看到我的模板,当我手动触发它时,电子邮件会到达目标电子邮件帐户。现在我遇到了一个问题,我已经向我的 class 添加了一个操作,它应该检测订单状态更改并在订单设置为我的自定义状态时执行我的触发功能:

add_action( 'woocommerce_order_status_wc-test-in-progress', array( $this, 'trigger' ), 10, 10 );

但是当我将订单更改为此状态时,我没有收到任何电子邮件。这里有什么问题吗?

https://github.com/woocommerce/woocommerce/blob/master/includes/emails/class-wc-email-customer-on-hold-order.php

您可以签出此文件。我在这个文件中做了完全相同的操作,但是在订单状态更改时用我的自定义触发器替换了所有触发器。

在使用 woocommerce_order_status_{$status_transition[to]} 复合钩子时,您只需要从状态块中删除 wc-,例如:

add_action( 'woocommerce_order_status_test-in-progress', array( $this, 'trigger' ), 10, 10 );

它应该可以工作。