특정 결제 방법에 대한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!