2 回答
TA贡献1833条经验 获得超4个赞
“待处理”订单状态是客户进入支付网关之前订单的默认状态,就在订单创建之后。
因此,最好的方法是在创建订单后,在付款方式流程之前使用挂钩:
1)首先尝试woocommerce_checkout_order_processed动作钩子(3个参数):
add_action( 'woocommerce_checkout_order_processed', 'order_processed_with_pending_status', 10, 3 );
function order_processed_with_pending_status( $order_id, $posted_data, $order ) {
error_log('Triggered');
}
2)或者尝试woocommerce_checkout_update_order_meta动作钩子(2个参数):
add_action( 'woocommerce_checkout_update_order_meta', 'order_processed_with_pending_status', 10, 2 );
function order_processed_with_pending_status( $order_id, $data ) {
error_log('Triggered');
}
两者都应该工作......
TA贡献1936条经验 获得超6个赞
这是因为钩子仅在订单状态更改时触发,而不是在订单创建时触发,还有另一个钩子可用于检测新订单,您可以使用订单 ID 获取订单对象,您可以使用它来查找订单状态:
add_action( 'woocommerce_new_order', 'prefix_new_wc_order', 1, 1 );
function prefix_new_wc_order( $order_id ) {
$order = new WC_Order( $order_id );
}
上面的钩子只在结账过程中触发,所以在后端创建订单不会触发它。
- 2 回答
- 0 关注
- 203 浏览
添加回答
举报