代码之家  ›  专栏  ›  技术社区  ›  Hemant Kumar

woomerce中Paypal支付成功的订单状态处理问题

  •  3
  • Hemant Kumar  · 技术社区  · 7 年前

    在此图像中,IPIN通知已收到,但仍处于处理阶段,是什么导致了此问题。我试图复制这个问题,但它没有在我的末端复制,它有时会发生。

    enter image description here

    以下是产品信息:

    1. 产品是虚拟产品
    2. 库存被禁用

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  0
  •   LoicTheAztec    7 年前

    如果您只销售虚拟产品,则可以强制Paypal的“支付完成”功能的订单状态为“完成”,方法如下:

    add_filter('woocommerce_payment_complete_order_status', 'paypal_payment_complete_order_status', 10, 2 );
    function paypal_payment_complete_order_status( $status, $order_id, $order ){
        if( $order->get_payment_method() === 'paypal' )
            $status = 'completed';
    
        return $status;
    }
    

    代码放在活动子主题(或活动主题)的function.php文件中。测试和工作。

    此挂钩仅在成功付款时触发,并且最初有两个可能的订单状态值“正在处理”或“已完成” (取决于是否需要“处理”) (用于虚拟产品) . This hook 位于 WC_Order payment_complete() 方法。
    所有支付网关使用 付款完成() 支付成功的方法和贝宝使用它 WC_Gateway_Paypal_Response 上课。

    推荐文章