WooCommerce Paypal标准网关-更改订单状态

问题描述

我需要在收到付款时自动将woocommerce订单的订单状态从待处理更改为处理:

我使用此功能:

add_action( 'valid-paypal-standard-ipn-request','handle_paypal_ipn_response',50,1 );
function handle_paypal_ipn_response( $formdata ) {

    if ( !empty( $formdata['invoice'] ) && !empty( $formdata['custom'] ) ) {

        if( $formdata['payment_status'] == 'Completed' ) {
            // decode data
            $order_data = json_decode($formdata['custom'],true);
            // get order
            $order_id = ($order_data) ? $order_data['order_id'] : '';
            $order = new WC_Order( $order_id );
            // got something to work with?
            if ( $order ) {
                if ($order->post->post_status == 'wc-pending'){
                    // Status success
                    WC_Gateway_Paypal::log( 'Changing order #' . $order->id . ' status from waiting payment to processing');
                      $order->update_status( 'processing' );
                } else {
                    // Status fail
                        WC_Gateway_Paypal::log( 'Status fail,order #' . $order->id . ' status is set to ' . $order->post->post_status . ',not processing');
                }
            } else {
                // Order fail
                    WC_Gateway_Paypal::log( 'Fail,no order found');
            }
        } else {
            // Payment fail
                WC_Gateway_Paypal::log( 'Payment status fail,not completed');
        }
    }
}

在日志中,我收到以下消息:

2020-10-13T08:01:15+00:00 INFO Received valid response from PayPal IPN
2020-10-13T08:01:15+00:00 INFO Found order #XXX
2020-10-13T08:01:15+00:00 INFO Payment status: completed
2020-10-13T08:01:15+00:00 INFO Aborting,Order #XXX is already complete.

但是顺序没有改变。

一些帮助,拜托!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...