>백엔드 개발 >PHP 튜토리얼 >특정 결제 방법에 대한 WooCommerce 주문 완료를 자동화하는 방법은 무엇입니까?

특정 결제 방법에 대한 WooCommerce 주문 완료를 자동화하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-17 20:53:11956검색

How to Automate WooCommerce Order Completion for Specific Payment Methods?

특정 결제 방법에 대한 WooCommerce의 유료 주문 자동 완성

WooCommerce는 일반적으로 가상 제품 주문을 자동 완성합니다. 그러나 '은행 송금', '현금 지급', '수표' 등의 특정 결제 방법에는 조건부 접근 방식이 필요합니다.

woocommerce_paid_complete_order_status Filter Hook

이 문제에 대한 최적의 솔루션은 모든 결제 방법에서 사용되는 woocommerce_pay_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)
{
    // Check if the payment method is not "Bank wire," "Cash on delivery," or "Cheque."
    if (!in_array($order->get_payment_method(), array('bacs', 'cod', 'cheque'))) {
        // If not, change the order status to "completed."
        return 'completed';
    }

    // Otherwise, do not modify the order status.
    return $status;
}

이 필터 후크를 사용하면 여러 알림을 트리거하지 않고도 결제 방법을 기반으로 결제된 주문 상태를 효과적이고 정확하게 업데이트할 수 있습니다.

대체

코드 스니펫:

타겟팅하려는 결제 방법이 해당 결제 수단으로 제한되는 경우 기본적으로 자동 완성("은행 송금", "대금 상환" 및 "수표")이 실행되지 않습니다. 다음 코드를 사용할 수 있습니다:

add_action('woocommerce_thankyou', 'custom_woocommerce_auto_complete_paid_order', 10, 1);
function custom_woocommerce_auto_complete_paid_order($order_id)
{
    $order = wc_get_order($order_id);

    // Check if the payment method is not "Bank wire," "Cash on delivery," or "Cheque."
    if (!in_array($order->get_payment_method(), array('bacs', 'cod', 'cheque'))) {
        // If not, update the order status to "completed."
        $order->update_status('completed');
    }
}

플러그인:

"WooCommerce Autocomplete Orders" 플러그인은 특정 결제 방법에 대한 솔루션도 제공할 수 있습니다. 그러나 특정 신용카드 게이트웨이에서는 작동하지 않을 수 있습니다.

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

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