Jak automatycznie zmienić status zamówienia w WooCommerce?
Opublikowany: 2021-07-31Chcesz zaktualizować status zamówienia w swoim sklepie? Trafiłeś we właściwe miejsce. W tym przewodniku pokażemy, jak automatycznie zmienić status zamówienia w WooCommerce za pomocą niektórych skryptów PHP. Nie martw się, jeśli nie masz zaawansowanych umiejętności kodowania, szczegółowo wyjaśnimy każdy skrypt.
WooCommerce oferuje wiele funkcji programistom, więc jeśli masz umiejętności kodowania, możesz dokonywać wszelkiego rodzaju dostosowań i ulepszać swój sklep eCommerce. W poniższym samouczku dowiesz się wszystkiego, co musisz wiedzieć o statusie zamówienia. Jest to funkcja WooCommerce, która może być bardzo przydatna podczas zarządzania dużą liczbą zamówień. Będzie to szczególnie przydatne na liście zamówień backendowych, gdzie kierownicy sklepów mogą łatwo wyszukiwać i podejmować określone działania na zamówieniach o określonym statusie.
Bez dalszych ceregieli przejdźmy od razu do tego.
Jaki jest status zamówienia w WooCommerce?
Status zamówienia to po prostu znacznik zamówienia, który reprezentuje aktualny stan zamówienia . Jest podobny do taksonomii dołączonej do posta, która opisuje konkretne informacje o aktualnym stanie tego posta. Na przykład, gdy klient kliknie przycisk „Złóż zamówienie”, składa zamówienie w naszym sklepie. Domyślnie status zamówienia jest ustawiony na „Oczekujące na płatność”.
Jeśli sklep jest zintegrowany z bramką płatniczą taką jak PayPal lub Stripe, poprzedni stan domyślny (oczekujący) zostanie zweryfikowany i zmieni się na „ Wstrzymany ” lub „ Nieudane ” w zależności od wyniku weryfikacji bramki płatniczej. Następnie, jeśli płatność zostanie zrealizowana, status zamówienia zmieni się automatycznie na „ Przetwarzanie ”, natomiast w przypadku niepowodzenia płatności status zamówienia na „ Nieudane ”.
Jak widać, każdy z tych statusów dostarcza nam istotnych informacji o zamówieniu. Ta automatyzacja pozwala nam wiedzieć, czy płatność za zamówienie została zrealizowana, czy też nie dostarczył naszego produktu do klienta.
Status zamówienia w WooCommerce
Oto wszystkie statusy zamówień dostępne w WooCommerce i znaczenie każdego z nich:
- Oczekująca płatność: Otrzymano zamówienie i nie zarejestrowano żadnej płatności. Czekamy na płatność
- Niepowodzenie: płatność z jakiegoś powodu nie powiodła się. Oznacza to, że został odrzucony z platformy płatniczej (np. PayPal) lub wymaga dalszego uwierzytelnienia (SCA)
- Realizacja : Sklep otrzymał płatność, stan magazynowy produktu został zaktualizowany, a zakup jest zgodny z harmonogramem dostawy
- Zrealizowane: Zamówienie zostało zrealizowane i zakończone. To ostatni stan porządku, w którym wszystko poszło dobrze
- Wstrzymane : Klient nie dokonał żadnej płatności, więc zamówienie wymaga potwierdzenia od kierownika sklepu
- Anulowane : albo administrator sklepu, albo użytkownik anulował zamówienie w pewnym momencie. Nie wymaga to dalszych działań, chociaż zalecamy skontaktowanie się z klientem, aby dowiedzieć się, dlaczego anulował zamówienie
- Zwrócono: zamówienie zostało zwrócone, nie są wymagane żadne dalsze działania
Teraz, gdy lepiej rozumiemy, czym jest status zamówienia i jego funkcję, zobaczmy, dlaczego warto go zaktualizować.
Po co zmieniać domyślną funkcję statusu zamówienia?
Każdy sklep eCommerce jest inny i ma określone wymagania. Niektóre sklepy internetowe mogą w ogóle nie używać statusu zamówienia lub mogą nie korzystać ze wszystkich. Na przykład, jeśli kupujący nie mogą zwrócić produktów, sklep może nie użyć statusu Zwrot pieniędzy .
Ponadto mogą wystąpić sytuacje, w których domyślna funkcja statusu zamówienia nie wystarczy i sklep potrzebuje niestandardowego statusu lub zautomatyzowanego rozwiązania do zarządzania statusem zamówień. W takich przypadkach dostosowanie zachowania statusu zamówienia jest doskonałym rozwiązaniem usprawniającym zarządzanie sklepem. W ten sposób sklep eCommerce nie będzie musiał ręcznie aktualizować statusu zamówienia w każdym przypadku.
Pomoże to właścicielom sklepów zaoszczędzić czas i skoncentrować się na ważniejszych rzeczach, aby usprawnić swój biznes.
Jak zmienia się status zamówienia w WooCommerce
W tym momencie ważne jest, aby zrozumieć, że status zamówienia zmienia się dynamicznie, gdy WooCommerce jest zintegrowany z bramką płatności, taką jak PayPal, Payoneer, Stripe i tak dalej. Pamiętaj, że jeśli ręcznie zaktualizujesz status, gdy nie jest to oczekiwane, możesz złamać metodę płatności oferowaną w Twoim sklepie, a klienci nie będą mogli śledzić procesu zakupu.
Aby lepiej zrozumieć, co zamierzamy zrobić, przyjrzyjmy się, jak działa przepływ statusu zamówienia:
Z dokumentacji WooCommerce
Jak widać na powyższej grafice, pierwszym etapem statusu zamówienia jest „ Oczekujące ”. Zaraz po tym bramka płatności sprawdza, czy użytkownik może dokończyć płatność i zmienia jej status na „ Wstrzymane ”, a następnie na „ Przetwarzanie ”, gdy płatność zostanie zakończona pomyślnie. W przeciwnym razie zmieni się na „ Niepowodzenie ”.
Po tym WooCommerce nie zrobi nic więcej. Kierownik sklepu powinien oznaczyć zamówienie jako „ Zakończone ” lub „ Anulowane ”. W tym momencie można bezpiecznie zmienić status zamówienia automatycznie (programowo), nawet jeśli jest zintegrowana bramka płatności.
Ponadto ważne jest, aby wiedzieć, że gdy status zmieni się na „ Przetwarzanie ” lub „ Zwrócono środki ”, zapas produktów objętych zamówieniem zostanie ponownie obliczony. To samo stanie się ze wszystkimi statystykami sklepu internetowego związanymi z tym zamówieniem.
Teraz, gdy mamy jasny obraz tego, jak zmienia się status zamówienia, zobaczmy, jak zaktualizować status zamówienia w WooCommerce .
Jak automatycznie zmienić status zamówienia w WooCommerce?
Przyjrzyjmy się przykładowym skryptom, które programowo zmieniają stan zamówienia w WooCommerce .
UWAGA : Zmodyfikujemy niektóre podstawowe pliki, więc zanim zaczniesz, upewnij się, że wykonałeś pełną kopię zapasową swojej witryny. Dodatkowo utwórz motyw podrzędny lub użyj dowolnej z tych wtyczek, jeśli jeszcze jej nie masz, aby zachować dostosowania nawet po zaktualizowaniu motywu.
Zmień status całego zamówienia po zakupie
Jeśli Twój sklep eCommerce nie jest zintegrowany z żadną bramką płatności korzystającą ze statusu zamówienia, możesz wstrzymać wszystkie zamówienia zaraz po złożeniu zamówienia przez klienta, zamiast pozostawiać je jako „Przetwarzanie”. Rzućmy okiem na ten skrypt:
function QuadLayers_change_order_status( $order_id ) { if (! $order_id) {return;} $zamówienie = wc_get_order( $order_id ); if( 'processing'== $order->get_status() ) { $order->update_status( 'wc-on-hold' ); } } add_action('woocommerce_thankyou','QuadLayers_change_order_status');
Używamy haka woocommerce_thankyou
, aby uruchomić naszą funkcję zaraz po złożeniu zamówienia i zmienić status za pomocą update_status()
.
Jak widać, status slug ma przedrostek (WC). Mimo że funkcja działa również bez prefiksu, zaleca się jej używanie.
Warto zauważyć, że możesz użyć dowolnego innego statusu, a nawet niestandardowego, zamiast „Wstrzymane”, dostosowując kod.
Zmień status zamówienia na podstawie identyfikatora zamówienia
Poniższy skrypt zmieni status pojedynczego zamówienia. Na przykład, aby zmienić status zamówienia 115, używamy następującego fragmentu kodu:
add_action('init',function(){ $zamówienie = nowe WC_Order(115); $order->update_status('przetwarzanie wc'); });
To jest krótki skrypt, więc użyliśmy funkcji anonimowej w haczyku WordPressa 'init'
.
Zwróć uwagę, że nie pozwoli to na wprowadzanie dalszych zmian w stanie, gdy skrypt jest włączony.
Zaktualizuj status zamówienia WooCommerce dla powracających klientów
To kolejny ciekawy przykład na automatyczną zmianę statusu zamówienia w WooCommerce. Poniższy skrypt zmieni status zamówienia na „Zrealizowane” tylko wtedy, gdy użytkownik ma dołączone poprzednie zamówienie ze statusem „Zrealizowane” lub „Przetwarzanie”.
function QuadLayers_order_status_returning( $order_id ) { // Zdobądź zamówienia tego klienta $ identyfikator_użytkownika = wp_get_current_user(); $customer_orders = []; foreach ( wc_get_is_paid_statuses() jako $paid_status ) { $customer_orders += wc_get_orders( [ 'type' => 'shop_order', 'limit' => - 1, 'customer_id' => $user_id->ID, 'status' => $paid_status, ] ); } # poprzednie zamówienie istnieje if(count($customer_orders)>0){ if (! $order_id) {return;} $zamówienie = wc_get_order( $order_id ); if( 'processing'== $order->get_status() ) { $order->update_status( 'wc-completed' ); } } } add_action( 'woocommerce_thankyou', 'QuadLayers_order_status_returning' );
Może to być dobry pomysł, aby dodać warstwę bezpieczeństwa i poprawić wrażenia z zakupów powracających klientów.
Zmień status zamówienia w parametrze adresu URL
Ten przykładowy skrypt zmieni się na określony stan zamówienia, gdy w przeglądarce pojawi się parametr URL. Ponieważ używamy haka init
WordPress, skrypt będzie działał na dowolnej stronie sklepu.
Dodatkowo edytuje status zamówienia dla najnowszego zamówienia aktualnie zalogowanego użytkownika. W tym przykładzie status zamówienia zmieni się na „Anulowane”, gdy dowolny adres URL ma parametr „revert” w następujący sposób: https://website.com/shop?st=revert
add_action('init',function(){ if(isset($_GET['st'])&&!empty($_GET['st']) ): $get_url = $_GET['st']; if($get_url=='przywróć'): $ identyfikator_użytkownika = wp_get_current_user(); $order = wc_get_customer_last_order($user_id->ID); $order->update_status( 'wc-anulowane' ); endif; endif; });
Utwórz niestandardowy status zamówienia
Zamiast zmieniać status zamówienia, w tym przykładzie utworzymy nowy niestandardowy status zamówienia, z którego będziemy mogli swobodnie korzystać. To dobry pomysł, jeśli istniejące statusy nie są wystarczające lub wolisz stworzyć nowy dla większej przejrzystości. Po utworzeniu niestandardowego statusu zamówienia możesz go używać z dowolnym z powyższych skryptów.
Poniższy skrypt zarejestruje się i doda nowy status do listy statusów zamówienia. W takim przypadku nowy status zamówienia niestandardowego nazwiemy „W toku ”, ale możesz użyć dowolnej nazwy, dostosowując kod.
// Zarejestruj nowy status funkcja register_in_progress_order_status() { register_post_status( 'wc-in-progress', tablica( 'label' => 'W toku', 'publiczny' => prawda, 'show_in_admin_status_list' => prawda, 'show_in_admin_all_list' => prawda, 'exclude_from_search' => fałsz, 'label_count' => _n_noop( 'W toku (%s) ', 'W toku (%s) ' ) ) ); } // Dodaj niestandardowy status do listy statusów zamówienia funkcja add_in_progress_to_order_statuses( $order_stauses ) { $nowe_statusy_zamówień = tablica(); foreach ( $statusy_zamówień jako $klucz => $status ) { $nowe_statusy_zamówień[ $klucz] = $status; if ( 'przetwarzanie wc' === $klucz) { $new_order_statuses['wc-in-progress'] = 'W toku'; } } zwróć $nowe_statusy_zamówień; } add_action( 'init', 'register_in_progress_order_status' ); add_filter( 'wc_order_statuses', 'add_in_progress_to_order_statuses' );
Inne sposoby zmiany statusu zamówienia WooCommerce
Jeśli szukasz alternatywnych sposobów aktualizacji domyślnego statusu zamówienia w WooCommerce, możesz wypróbować kilka wtyczek. Niestety, nie ma wielu darmowych narzędzi do tego, ale są to jedne z najlepszych:
- YITH Status zamówienia niestandardowego : doskonałe narzędzie do zarządzania statusami zamówień i tworzenia niestandardowych. To jedno z najlepszych narzędzi na rynku, ale nie jest tanie. Kosztuje to 79,99 € rocznie.
- WooCommerce Order Status Manager : Kolejna świetna wtyczka do dodawania, usuwania i edycji statusu zamówienia. Możesz także wyzwalać e-maile na podstawie statusu zamówień. Kosztuje 49 USD rocznie.
- Niestandardowy status zamówienia dla WooCommerce : Jedno z najlepszych narzędzi do zarządzania statusem zamówienia w WooCommerce. To wtyczka premium, która zaczyna się od 39 USD rocznie.
- Ni WooCommerce Custom Order Status : Jedna z niewielu niezawodnych darmowych wtyczek, które pozwalają z łatwością zarządzać statusem zamówienia.
Jak sprawdzić status zamówienia w swoim sklepie WooCommerce?
Najłatwiejszym sposobem sprawdzenia statusu zamówienia w Twoim sklepie jest otwarcie pulpitu WooCommerce i przejście do Zamówienia. Następnie otwórz dowolne zamówienie i w sekcji Ogólne kliknij menu rozwijane Status. Tam zobaczysz wszystkie zamówienia w Twoim sklepie.
Wniosek
Podsumowując, status zamówienia to tag, który reprezentuje aktualny stan zamówienia. Mimo że WooCommerce zawiera pewne domyślne statusy, dostosowanie ich może być dobrym pomysłem dla tych, którzy chcą usunąć lub dodać nowe. Może być również ciekawym rozwiązaniem dla firm, które potrzebują zautomatyzowanego rozwiązania do zarządzania statusem swoich zamówień.
W tym przewodniku widzieliśmy wszystkie domyślne statusy zamówień i różne przykłady automatycznej zmiany statusu zamówienia w WooCommerce. To tylko kilka pomysłów, ale możesz zrobić o wiele więcej. Zalecamy, abyś wziął te skrypty jako podstawę i pobawił się, aby dostosować je do swojego sklepu.
Aby uzyskać więcej informacji na temat dostosowywania sklepu, zapoznaj się z tymi samouczkami:
- Jak automatycznie aplikować kupony WooCommerce?
- Edytuj programowo stronę z podziękowaniami WooCommerce
- Jak dostosować formularz rejestracyjny WooCommerce
- 3 metody testowania zamówień WooCommerce
- Jak dodać filtry produktów WooCommerce AJAX
Czy zaktualizowałeś status zamówienia w swoim sklepie? Czy podczas korzystania z tego przewodnika wystąpiły jakieś problemy? Daj nam znać w komentarzach poniżej!