>백엔드 개발 >PHP 튜토리얼 >특정 결제 방법에 대한 WooCommerce 주문 완료를 어떻게 자동화할 수 있나요?

특정 결제 방법에 대한 WooCommerce 주문 완료를 어떻게 자동화할 수 있나요?

DDD
DDD원래의
2024-12-11 06:32:09717검색

How Can I Automate WooCommerce Order Completion for Specific Payment Methods?

WooCommerce 주문 자동 완성의 한계 극복

일반적으로 WooCommerce는 가상 상품에 대한 주문 완료를 자동화합니다. 다만, "은행송금", "현금결제", "수표" 등의 결제수단의 경우에는 해당 기능을 사용하지 못할 수 있습니다. 이 문제를 해결하고 결제 방법에 따라 주문 자동 완성을 조건부로 적용하려면 다음 솔루션을 구현할 수 있습니다.

woocommerce_paid_complete_order_status 필터 후크 사용

이 필터 후크는 다음과 같은 경우에 트리거됩니다. 결제 시 결제가 필요하며 모든 결제 수단에서 사용됩니다. 허용되는 유료 주문 상태를 수정하면 조건부 자동 완성을 달성할 수 있습니다.

add_filter( 'woocommerce_payment_complete_order_status', 'wc_auto_complete_paid_order', 10, 3 );
function wc_auto_complete_paid_order( $status, $order_id, $order ) {
    return 'completed';
}

wooCommerce_thankyou Action Hook 활용

WooCommerce 버전 3 이상의 경우 다음 코드 될 수 있다 사용됨:

add_action( 'woocommerce_thankyou', 'wc_auto_complete_paid_order', 20, 1 );
function wc_auto_complete_paid_order( $order_id ) {
    if ( ! $order_id )
        return;

    $order = wc_get_order( $order_id );

    if ( in_array( $order->get_payment_method(), array( 'bacs', 'cod', 'cheque', '' ) ) ) {
        return;
    } else {
        $order->update_status( 'completed' );
    }
}

원래 솔루션

모든 WooCommerce 버전에 대해 다음 코드를 사용할 수 있습니다.

add_action( 'woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1 );
function custom_woocommerce_auto_complete_paid_order( $order_id ) {
    if ( ! $order_id )
    return;

    $order = wc_get_order( $order_id );

    if ( 'bacs' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cod' == get_post_meta($order_id, '_payment_method', true) ) || ( 'cheque' == get_post_meta($order_id, '_payment_method', true) ) ) {
        return;
    } elseif( $order->get_status()  === 'processing' ) {
        $order->update_status( 'completed' );
    }
}

이러한 솔루션은 조건부 제공 지정된 결제 방법을 기반으로 유료 주문에 대한 주문 자동 완성을 통해 다양한 결제를 허용하는 WooCommerce 매장에서 효율적이고 정확한 주문 처리를 보장합니다. 옵션을 선택하세요.

위 내용은 특정 결제 방법에 대한 WooCommerce 주문 완료를 어떻게 자동화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.