首页 > 解决方案 > 付款 IPN 失败时防止 Woocommerce 订单自动完成

问题描述

即使支付网关的 IPN 响应失败,Woocommerce 订单状态也会变为“已完成”。我正在尝试添加一个全局规则来检查订单元以及 IPN 响应是否设置为失败。将订单标记为待付款(即使标记为已完成,也需要检查所有订单)。抱歉,我是 woocommerce 编码的新手。这就是我正在尝试的方式

add_action( 'woocommerce_thankyou', 'check_ipn_response' );
function check_ipn_response( $order_id ) { 
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order_ipn = $order->get_meta('pt_paytriot_ipn_resonse');

    if( strpos( $order_ipn, 'fail' ) !== false ) {
        $order->update_status( 'pending payment' );
    }
}

在此处输入图像描述

在此处输入图像描述

标签: wordpresswoocommercehook-woocommerce

解决方案


推荐阅读