【问题标题】:woocommerce_thankyou hook is not working after successful payment成功付款后 woocommerce_thankyou 挂钩不起作用
【发布时间】:2017-10-10 10:42:02
【问题描述】:

我正在为 woocommerce 创建支付网关,但我遇到了一个问题,即在成功支付后我重定向到感谢页面并且我的订单状态没有更新为“处理中”或“已完成”。

我在我的插件主文件中使用了 woocommerce_thankyou 钩子。

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调用来检查支付状态,然后根据响应我想更新订单状态。

谁能帮我解决这个问题。

【问题讨论】:

    标签: php wordpress woocommerce hook-woocommerce


    【解决方案1】:

    把钩子改成:

    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' ) );
            }
        }
    

    修正了钩子。

    【讨论】:

    • 我认为 woocommerce_thankyou_{$payment_method} 和 woocommerce_thankyou 挂钩是相同的,只是第一个挂钩适用于特定的付款方式。我都试过了,但都没有。
    【解决方案2】:
    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' ) );
    
    }
    

    【讨论】:

    • 我认为 woocommerce_thankyou_{$payment_method} 和 woocommerce_thankyou 挂钩是相同的,除了第一个挂钩适用于特定的付款方式。我都试过了,但都没有。
    • @Max 你是否覆盖了模板文件?
    • 不,我没有覆盖任何文件。只需将此代码放在我的插件主文件中即可。
    • 你能在你的 woocommerce/templates/checkout/thankyou.php 中签入吗 do_action('woocommerce_thankyou', $order->id );在那里放一个骰子,检查执行是否到达那里!
    • 是的,我检查了,不幸的是,执行没有到达钩子,因为 $order_id 没有进入感谢页面,所以如果条件为假。仍在寻找为什么 order_id 没有出现在感谢页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    • 2015-03-28
    • 2013-07-31
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多