问题描述
我需要在收到付款时自动将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 (将#修改为@)