Jak automatycznie zatwierdzać zamówienia w WooCommerce
Opublikowany: 2020-09-25Jeśli prowadzisz sklep eCommerce, wiesz, że strona wymaga śledzenia i zarządzania zamówieniami. Może to być jednak uciążliwe zadanie dla administratora, zwłaszcza jeśli w Twoim sklepie internetowym panuje duży ruch, co skutkuje dużą liczbą zamówień w ciągu dnia.
Dodatkowo wiesz, że zamówienie jest tworzone zaraz po zakończeniu procesu realizacji transakcji. Zamówieniu przypisywany jest status w zależności od tego, gdzie zamówienie znajduje się w łańcuchu od płatności do dostawy.
Ponadto statusy ustawiają lub zmieniają WooCommerce, Bramka Płatności oraz administrator sklepu w zależności od tego, gdzie inicjowane jest zamówienie.
Po zrealizowaniu płatności za zamówienie, jeśli użytkownik nie wybrał opcji płatności za pobraniem. Po zrealizowaniu zamówienia jego status jest ustawiany na „Przetwarzanie”, dopóki właściciel sklepu nie zmieni go ręcznie na „Zrealizowane”. Będzie to trudne zadanie dla właściciela sklepu lub administratora.
Automatyczne zatwierdzanie zamówień WooCommerce
W tym krótkim samouczku podzielę się z Tobą niestandardowym kodem PHP, który pomoże Ci automatycznie ustawić status zamówienia jako Ukończone po pomyślnym dokonaniu płatności. Oznacza to, że nawet jeśli użytkownik wybierze opcję Gotówka przy odbiorze, status zamówienia automatycznie zmieni się na Zakończone.
Ponadto podzielę się z Tobą rozwiązaniem, które automatycznie ustawi status zamówienia WooCommerce jako Zakończone dla produktów wirtualnych. Produkty te nie są namacalne ani nie można ich pobrać.
Dzieje się tak, ponieważ subskrypcja członkostwa może nie mieć namacalnej formy, ale zamiast tego ma datę wygaśnięcia. Jeśli masz do czynienia z produktami do pobrania, opcja płatności za pobraniem nie powinna być uwzględniana, ale zamiast tego należy dodać tylko warunek, aby sprawdzić, czy wszystkie produkty w zamówieniu są wirtualne.
Teraz, gdy wiesz już, jak ustawiane są statusy zamówień, oto szczegółowy przewodnik, jak:
- Automatycznie ustaw status zamówienia WooCommerce jako Zakończone na podstawie metody płatności.
- Automatycznie ustaw status zamówienia WooCommerce jako Zakończone dla produktów wirtualnych.
a) Kroki, aby automatycznie ustawić status zamówienia WooCommerce jako zakończony na podstawie metody płatności
Oto proste kroki, które musisz wykonać:
- Zaloguj się do swojej witryny WordPress i uzyskaj dostęp do pulpitu nawigacyjnego jako administrator.
- Z menu Dashboard kliknij menu Wygląd > Menu edytora motywów . Po otwarciu strony Theme Editor poszukaj pliku funkcji motywu, w którym dodamy funkcję, która automatycznie ustawi status zamówienia woocommerce jako zakończony w oparciu o metodę płatności.
- Dodaj następujący kod do pliku php :
/** Snippet, aby automatycznie ustawić status zamówienia woocommerce jako zakończony na podstawie metody płatności */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method'); funkcja njengah_auto_complete_by_payment_method($order_id) { if (! $id_zamówienia) { powrót; } globalny produkt; $zamówienie = wc_get_order( $order_id ); if ($order->data['status'] == 'przetwarzanie') { $payment_method=$order->get_payment_method(); jeśli ($payment_method!="bacs") { $order->update_status( 'zakończone' ); } } }
- Aby zobaczyć wynik, przejdź do pulpitu nawigacyjnego WordPress i kliknij WooCommerce > Zamówienia . Zobaczysz, że zamówienie zostało ustawione na Ukończone , jak pokazano poniżej:
Jak działa kod
W powyższym kodzie użyłem haka woocommerce_order_status_changed do wywołania funkcji w przypadku zmiany statusu zamówienia. Sprawdza, czy zamówienie ma status Przetwarzanie i zmienia je na Zrealizowane.
Domyślnie WooCommerce ma cztery domyślne metody płatności, którymi są bezpośredni przelew bankowy (bacs), płatności czekiem (czek), za pobraniem (za pobraniem) i PayPal (PayPal). Musisz jednak określić metodę płatności, dla której ustalasz warunek.
b) Kroki, aby automatycznie ustawić status zamówienia WooCommerce jako zakończony dla produktów wirtualnych
Oto kroki, które musisz wykonać:
- Zaloguj się do swojej witryny WordPress i uzyskaj dostęp do pulpitu nawigacyjnego jako administrator.
- Z menu Dashboard kliknij menu Wygląd > Menu edytora motywów . Po otwarciu strony Theme Editor poszukaj pliku funkcji motywu, w którym dodamy funkcję, która automatycznie ustawi status zamówienia woocommerce jako zakończony dla produktów wirtualnych.
- Dodaj następujący kod do pliku php :
/** Snippet, aby automatycznie ustawić status zamówienia woocommerce jako zakończony dla produktów wirtualnych */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual'); funkcja njengah_auto_complete_virtual($order_id) { if (! $id_zamówienia) { powrót; } globalny produkt; $zamówienie = wc_get_order( $order_id ); if ($order->data['status'] == 'przetwarzanie') { $virtual_order = null; if ( count( $order->get_items() ) > 0 ) { foreach( $order->get_items() as $item ) { if ( 'line_item' == $item['type'] ) { $_product = $order->get_product_from_item( $item ); if ( ! $_product->is_virtual() ) { // gdy znajdziemy jeden niewirtualny produkt, wyrwij się z pętli $virtual_order = false; złamać; } w przeciwnym razie { $wirtualne_zamówienie = prawda; } } } } // jeśli wszystkie są produktami wirtualnymi, oznacz jako zakończone if ( $virtual_order ) { $order->update_status( 'zakończone' ); } } }
- Wynik będzie taki sam jak w pierwszym przykładzie, ponieważ zamówienie zostanie automatycznie ustawione jako Zrealizowane .
Jak działa kod
W powyższym kodzie użyłem tego samego haka do wywołania funkcji njengah_auto_complete_virtual. Po sprawdzeniu, czy jest w stanie Przetwarzanie, kod przechodzi przez każdą pozycję w zamówieniu, aby sprawdzić, czy istnieje produkt wirtualny.
Line_item odnosi się do produktu i tylko produkty muszą być pobierane jeden po drugim, aby sprawdzić, czy są wirtualne. W przypadku braku wirtualnego produktu status zamówienia nie zostanie oznaczony jako Zakończone.
Wniosek
W tym krótkim samouczku podzieliłem się, w jaki sposób możesz automatycznie ustawić status zamówienia WooCommerce jako Zakończone. Zrobiłem to w oparciu o metodę płatności i za wirtualne produkty.
Jednak w zależności od wymagań, jakich potrzebujesz dla swojego sklepu, korzystając z pierwszego fragmentu kodu, możesz dodać więcej warunków, aby oznaczyć status zamówienia jako Zrealizowane. Na przykład, jeśli dokonano płatności, możesz oznaczyć status zamówienia jako zrealizowany nawet w przypadku produktów niewirtualnych, dodając czek na metodę płatności po sprawdzeniu, czy jest to produkt wirtualny.
Jednak za pomocą tego fragmentu kodu status zamówienia zostanie ustawiony jako Zakończone tylko wtedy, gdy wszystkie produkty w zamówieniu są produktami wirtualnymi. Mam nadzieję, że ten post dostarczył rozwiązania do automatycznego zatwierdzania zamówień w WooCommerce.
Podobne artykuły
- Jak usunąć menu pobierania Moje konto Strona WooCommerce
- Jak dodać dodatkowe pole w formularzu kasowym WooCommerce?
- Jak wyłączyć opcję wysyłki pod inny adres
- Jak uzyskać metody płatności w WooCommerce » Przykład kodu
- Jak ukryć przycisk Dodaj do koszyka w WooCommerce?
- Jak dodać niestandardową metodę wysyłki w WooCommerce?
- Ukryj lub usuń pole ilości na stronie produktu WooCommerce
- Jak korzystać z atrybutów produktów WooCommerce krok po kroku [Kompletny przewodnik]
- Jak wyświetlać produkty WooCommerce według kategorii?
- Jak ukryć pole kodu kuponu WooCommerce?
- Jak umieścić koszyk WooCommerce i kasę na jednej stronie?
- Jak zmienić nazwę wiadomości o stanie zamówienia w WooCommerce?
- Jak dodać obraz produktu stronę kasy WooCommerce
- Jak sprawić, by komentarze do zamówień WooCommerce były wymagane?
- Jak dodawać kategorie do produktów WooCommerce
- Jak ukryć wszystkie produkty ze strony sklepu w WooCommerce?
- Jak wyłączyć metodę płatności dla określonej kategorii?