Woocommerce - woocommerce_order_status_pending

我在检查 woocommerce 订单的订单状态时遇到问题。


我有一个正在创建的插件,我需要知道订单何时变为“待处理”然后“已完成”。但是只有当我在 wordpress admin 中手动设置订单状态时,所有挂钩才有效。


function order_status_changed_clbk( $order_id ){

    ...some code...

}

add_action( 'woocommerce_order_status_pending', 'order_status_changed_clbk' );


慕容森
浏览 155回答 1
1回答

噜噜哒

更新我发现有一个小问题。如果用户取消付款,例如在 PayPal,他可能会再次重定向到结帐。现在让我们期待他再次重复结帐。在这种情况下,钩子 get 被第二次调用,这可能会出现问题。所以我自己实现了一个payment_counter:add_action('woocommerce_checkout_order_processed', 'order_status_changed_clbk'); 函数 order_status_changed_clbk( $order_id ) { $payment_counter = (int) get_post_meta( $order_id, 'payment_counter', true );if ( empty( $payment_counter ) ) {    update_post_meta( $order_id, 'payment_counter', 1 );    error_log( 'Function works!' ); //Get's called only once} else {    update_post_meta( $order_id, 'payment_counter', ++ $payment_counter ); //Cool thing for statistics maybe, but not really needed}}也许这个钩子适合你:function order_status_changed_clbk( $order_id ){    error_log( 'Function works!' );}add_action( 'woocommerce_checkout_order_processed', 'order_status_changed_clbk' );我在我的插件中使用它。如果订单已处理,它也处于“待处理”状态,所以这可能是您正在寻找的解决方案。尝试一下并检查您的 debug.log 中的Function works!.
打开App,查看更多内容
随时随地看视频慕课网APP