微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。