我正在为woocommerce创建支付网关,但我面临一个问题,即成功付款后我会重定向到感谢页面,我的订单状态不会更新为“处理”或“已完成”。
我在我的插件主文件中使用了woocommerce_thankyou hook。
add_action( 'woocommerce_thankyou_epg', 'my_change_status_function', 10, 1 );
function my_change_status_function( $order_id ) {
$order = new WC_Order( $order_id );
$order->update_status( 'processing', __( 'Payment received.', 'wc-gateway-offline' ) );
}
实际上在更新状态之前的这个功能我想发送一个API调用来检查付款状态,而不是根据我想要更新订单状态的响应。
任何人都可以帮我解决这个问题。
答案 0 :(得分:0)
将钩子更改为:
add_action( 'woocommerce_thankyou', 'my_change_status_function', 20, 1 );
function my_change_status_function( $order_id ) {
$order = new WC_Order( $order_id );
$order_pay_method = get_post_meta( $order->id, '_payment_method', true );
if($order_pay_method == 'epg'){
$order->update_status( 'processing', __( 'Payment received.', 'wc-gateway-offline' ) );
}
}
更正了钩子。
答案 1 :(得分:0)
add_action( 'woocommerce_thankyou', 'my_change_status_function', 10, 1 );
function my_change_status_function( $order_id ) {
$order = new WC_Order( $order_id );
$order->update_status( 'processing', __( 'Payment received.', 'wc-gateway-offline' ) );
}