Zamiast tego przeczytaj te dwa artykuły:
– Jak przenieść produkty i klientów WooCommerce z witryny produkcyjnej na Staging
– Jak wykluczyć zamówienia WooCommerce z kopiowania na produkcję z HPOS
Jak zapobiec nadpisywaniu zamówień i produktów WooCommerce podczas pushowania
Za każdym razem, gdy używasz WP STAGING do pushowania danych z witryny Staging na produkcję, musisz mieć pewność, że zamówienia WooCommerce, klienci i produkty na produkcji nie zostaną w żaden sposób naruszone.
Contents
Jaki więc jest najlepszy sposób, by zapobiec nadpisaniu tych danych podczas pushu?
Krótka odpowiedź: nie da się wykluczyć tego, że te dane zostaną skopiowane na twoją witrynę Staging, i nie można automatycznie scalić zamówień oraz produktów WooCommerce z witryny produkcyjnej i Staging. Na szczęście istnieje sposób, by nie stracić zamówień i produktów na produkcji, ale wymaga to pracy ręcznej.
Co gorsza, niektóre pluginy deklarują, że potrafią wykonać takie scalanie, a okazuje się, że zamówienia i produkty zostały nadpisane bez żadnego ostrzeżenia. Może to zniszczyć integralność danych, a nawet nie zauważysz tego, jeśli po takim scaleniu nie sprawdzisz każdego zamówienia i produktu.
Najpierw musimy zrozumieć, gdzie WooCommerce i WordPress przechowują zamówienia, produkty, dane użytkowników (np. adresy klientów) oraz wszystkie inne dane, takie jak wpisy i strony:
- Zamówienia i produkty są przechowywane w tabelach
wp_postsiwp_postmeta, oddzielone polem niestandardowego typu wpisu o nazwie „orders”. - Sam WordPress również przechowuje większość swoich danych — strony, wpisy, a nawet wpisy menu i całą resztę — w tych samych tabelach
wp_postsiwp_postmeta. - Użytkownicy są przechowywani w
wp_usersiwp_usermeta.
Wiele innych niestandardowych tabel WooCommerce zawiera dane takie jak stawki podatkowe, pozycje zamówień i ogólne ustawienia WooCommerce.
Nazwa każdej tabeli witryny Staging zaczyna się od prefiksu wpstg(x)_.
Nazwy tabel WooCommerce zaczynają się od tego samego prefiksu, ale dodatkowo od _woocommerce, np. wpstg(x)_woocommerce_.
x w prefiksie tabeli to numer twojej witryny Staging. Jeśli masz wiele witryn Staging, ten numer rośnie kolejno: wpstg1_, wpstg2_ itd.
Jeśli chcesz zmigrować konkretne dane z witryny Staging na produkcję bez wpływu na żadne dane transakcyjne, masz trzy opcje:
Opcja 1) Wyeksportuj zamówienia, dane użytkowników i inne dane transakcyjne z witryny produkcyjnej i zaimportuj je na Staging przed migracją Staging na produkcję.
To pozwala skopiować całą witrynę Staging.
Zalecana droga, jeśli nie znasz wewnętrznej struktury bazy danych. Poniżej wyjaśniamy, jak to zrobić.
Opcja 2) Wyklucz wszystkie tabele bazy danych z wyjątkiem _options i zaznacz tylko foldery pluginów i motywów, które chcesz pushować na Staging. Tą drogą masz pewność, że nigdy nie nadpiszesz ani nie stracisz danych na produkcji powstałych po utworzeniu witryny Staging. Większość pluginów przechowuje też swoje ustawienia w tabeli _options, więc to przeniesie ustawienia pluginów również na produkcję.
Ważne: wszelkie inne brakujące dane zawarte w tabelach _posts i _postmeta trzeba odtworzyć na produkcji ręcznie po pushu.
Opcja 3) Wyklucz z procesu pushu wszystkie zmodyfikowane tabele bazy danych. Wybierając tę drogę, nie zmigrujesz całej witryny Staging wraz z jej danymi!
W zależności od wykluczonych tabel (np. _posts, _postmeta) może to prowadzić do brakujących obrazów, a nawet elementów układu na produkcji. Dzieje się tak głównie, jeśli używasz edytora wizualnego, takiego jak WPBakery (wcześniej znany jako visual composer) lub Elementor, ponieważ te edytory przechowują swoje projekty w tabelach _posts i _postmeta.
Uwaga: opcja 1 jest zalecaną drogą.
Eksport i import zamówień WooCommerce (zalecana opcja)
Najlepszą opcją jest wyeksportowanie zamówień i danych produktów oddzielnym pluginem eksportu/importu na produkcji, a następnie zaimportowanie ich z powrotem na Staging zanim wykonasz push.
Zanim wyeksportujesz i zaimportujesz jakiekolwiek zamówienia, mocno zalecamy utworzenie kolejnej witryny Staging i przetestowanie całego procesu, zanim wykonasz import/eksport na głównej witrynie Staging!
Szybki przewodnik:
- Włącz tryb konserwacji na swojej witrynie.
- Zainstaluj plugin „WooCommerce Sequential Order Numbers” na produkcji i Staging.
- Zainstaluj plugin „Order Export & Order Import for WooCommerce” na produkcji i Staging.
- Wyeksportuj zamówienia WooCommerce z witryny produkcyjnej.
- Usuń wszystkie zamówienia na witrynie Staging.
- Zaimportuj zamówienia na witrynę Staging.
- Wykonaj push witryny Staging na produkcję.
Przewodnik krok po kroku
Zanim przejdziesz dalej, musisz zainstalować dwa pluginy zewnętrzne:
Plugin „WooCommerce Sequential Order Numbers” trzeba zainstalować, aby numery zamówień nie zmieniały się podczas importu.
Eksport i import zamówień mogą zmienić ID importowanych zamówień, ponieważ ID zamówienia WooCommerce opiera się na ID wpisu WordPressa, które jest unikalne. Jeśli zatem ID wpisu na witrynie Staging jest już zajęte przez inny wpis lub element, zaimportowane zamówienie otrzyma nowe ID. Może to skutkować nowym ID dla zaimportowanego zamówienia.
Aby zachować ID zamówienia bez zmian, musisz użyć pluginu „WooCommerce Sequential Order Numbers”.
Ten plugin dodaje nowy wpis bazy danych, w którym ID zamówienia jest przechowywane w osobnym polu. Dzięki temu twoja witryna może mieć ID zamówienia oddzielone i niezależne od ID wpisu.
- Zaloguj się na witrynę produkcyjną.
- Przejdź do WebToffee Import Export > Export.
- Wybierz „Order” jak na zrzucie:

Następnie w kolejnym kroku wybierz „Quick” i kliknij „Export”. To wygeneruje plik CSV, który możesz zapisać na swoim komputerze.
- Przejdź na witrynę Staging > WooCommerce > Orders.
- Zaznacz wszystkie zamówienia i przenieś je do kosza. (To ważne, ponieważ w kolejnym kroku zaimportujesz je ponownie z pliku wyeksportowanego powyżej z produkcji).

- Przejdź na swoją witrynę Staging.
- Otwórz WebToffee Import Export > Import.

- Następnie wybierz „Quick”, wgraj plik .csv wyeksportowany powyżej i kliknij „Import”, jak na zrzucie:

Po tym kroku wszystkie zamówienia powinny być zaimportowane na witrynę Staging, a Staging gotowy do pushu na produkcję zgodnie z tym przewodnikiem.
WAŻNE: czasem podczas importu zamówień na witrynę Staging może wystąpić konflikt między ID zamówień a ID wpisów/stron/załączników. Dzieje się tak, jeśli dodałeś na Staging nowe wpisy/strony lub inną treść.
W takim wypadku podczas importu zobaczysz coś takiego jak na zrzucie:

W takim wypadku musisz wyedytować wyeksportowany plik .csv w Excelu lub LibreOffice Calc. Warto wspomnieć, że LibreOffice Calc lepiej obsługuje te pliki — pamiętaj, by wybrać kodowanie UTF-8 przy otwieraniu i zapisywaniu pliku. Po otwarciu pliku możesz zmodyfikować konfliktowe ID zamówień na dowolny wyższy numer nieużywany przez ID wpisów twojej witryny WordPress lub usunąć ich wartości, a podczas importu zostaną im nadane nowe:

Następnie ponownie zaimportuj plik, a wszystkie zamówienia powinny zostać pomyślnie zaimportowane.
Wskazówka: być może będziesz musiał zrobić to samo z produktami WooCommerce lub użytkownikami. Do tego zalecamy te pluginy:
- Product Import Export for WooCommerce. (Darmowa wersja nie obsługuje eksportu/importu produktów wariantowych).
- Import Export WordPress Users.
Pomijaj i wykluczaj dane WooCommerce z pushu (niezalecane)
Inną opcją wykluczenia zamówień z nadpisywania jest pominięcie z pushu wszystkich tabel zawierających zamówienia i produkty WooCommerce. Musisz wykluczyć przynajmniej poniższe tabele przed pushem witryny Staging na produkcję:
wpstg1_postswpstg1_postmetawpstg1_userswpstg1_usermeta
Wszystkie tabele zaczynające się od:wpstg1_woocommerce_


Niestety, taki wybór tabel wykluczy wpisy, artykuły i wszelkie inne dane przechowywane w tabelach _posts i _postmeta na twojej witrynie WordPress. Na przykład strony, wpisy, wpisy menu i inne dane związane z wpisami zostaną pominięte i nie skopiowane na produkcję.
Postępuj według tego kroku tylko wtedy, gdy nie zmieniasz na witrynie Staging żadnych danych, które musisz przenieść na produkcję.
Zobacz też: opis tabel bazy danych WooCommerce.
Słowa kluczowe: WooCommerce, wykluczanie zamówień WooCommerce, wykluczanie produktów WooCommerce
Powiązane artykuły
- Jak zmigrować produkty i klientów WooCommerce z produkcji na Staging
- Jak wykluczyć zamówienia WooCommerce z kopiowania na produkcję z HPOS
- WooCommerce — początkowa implementacja niestandardowych tabel gotowa do testów (HPOS)
- Jak usunąć wszystkie zamówienia WooCommerce i dane klientów na Staging | Usuwanie transakcji WooCommerce
- Jak eksportować i importować użytkowników WordPress
- Zwiększ max_allowed_packet bazy danych