成功付款后woocommerce_thankyou挂钩无效

时间:2017-05-11 12:20:16

标签: php wordpress woocommerce hook-woocommerce

我正在为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调用来检查付款状态,而不是根据我想要更新订单状态的响应。

任何人都可以帮我解决这个问题。

2 个答案:

答案 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' ) );

}
相关问题