首页 > 解决方案 > 消息信息 WooCommerce

问题描述

将 WooCommerce 用于数字产品,众所周知,对于此类产品或付款状态,它始终处于处理状态。要解决此问题,请使用以下代码解决此问题,但“成功收到付款”通知消息未同步。有谁知道如何解决它?

add_action( 'woocommerce_order_status_changed', 'ts_auto_complete_by_payment_method' );

function ts_auto_complete_by_payment_method( $order_id ) {

    if ( !$order_id ) {

        return;
    }

    global $product;

    $order = wc_get_order( $order_id );

    if ( $order->data[ 'status' ] == 'processing' ) {

        $payment_method = $order->get_payment_method();

        if ( $payment_method != "cod" ) {

            $order->update_status( 'completed' );
        }
    }
}

标签: phpwordpresswoocommercehook-woocommerceorders

解决方案


add_action( 'woocommerce_before_thankyou', 'update_order_status_and_show_info' );

function update_order_status_and_show_info( $order_id ) {
    if ( !$order_id ) {

        return;
    }


    $order = wc_get_order( $order_id );

    if ( $order->get_status() == 'processing' ) {

        $payment_method = $order->get_payment_method();

        if ( $payment_method != "cod" ) {

            $order->update_status( 'completed' );
            echo "<span>Payment received successfully.</span>";
        }
    }

}

试试这个代码


推荐阅读