我在我的网上store 安装了WooCommerce 8.0.3.简而言之,假设我有一个ID为123的订单,状态为processing
.在特定情况下,我运行以下代码:
// Make sure e-mails are initialized.
WC()->mailer();
// Set order status to completed.
$order = wc_get_order( 123 );
$order->update_status( "completed", "", true );
我需要一封customer_completed_order
的邮箱才能发送.有时有用,但有时不行.我在WooCommerce管理员中启用了邮箱.
我发现在woocommerce_order_status_completed_notification
钩子上触发了一封邮箱,所以我try 修改代码:
WC()->mailer();
$order = wc_get_order( 123 );
$order->update_status( "completed", "", true );
var_dump( did_action( "woocommerce_order_status_completed" ) );
var_dump( did_action( "woocommerce_order_status_completed_notification" ) );
结果:
int(1)
int(0)
这意味着woocommerce_order_status_completed
个虎克被处决了,但woocommerce_order_status_completed_notification
个没有被处决.
我的问题是:
- 在WooCommerce代码中,像
woocommerce_order_status_completed_notification
这样的钩子是在哪里执行的? - 当
woocommerce_order_status_completed
执行时,钩子woocommerce_order_status_completed_notification
没有执行的原因可能是什么?
如有任何帮助,我们不胜感激.