为了账号安全,请及时绑定邮箱和手机立即绑定

Woocommerce - woocommerce_order_status_pending

Woocommerce - woocommerce_order_status_pending

PHP
慕容森 2021-09-05 16:23:59
我在检查 woocommerce 订单的订单状态时遇到问题。我有一个正在创建的插件,我需要知道订单何时变为“待处理”然后“已完成”。但是只有当我在 wordpress admin 中手动设置订单状态时,所有挂钩才有效。function order_status_changed_clbk( $order_id ){    ...some code...}add_action( 'woocommerce_order_status_pending', 'order_status_changed_clbk' );
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

更新


我发现有一个小问题。如果用户取消付款,例如在 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!.


查看完整回答
反对 回复 2021-09-05
  • 1 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信