WooCommerce rendelések aktualizálása a régi és az új weboldal között

[Ezt a cikket 4 perc elolvasni.]

Nemrégiben azzal a feladattal kerültem szembe, hogy frissítsem a WooCommerce rendeléseket az éles, és a fejlesztés alatt álló, egyelőre még nem publikus weboldal között. Adott volt tehát egy a látogatók számára is elérhető weboldal, ahol naponta adtak le rendeléseket a vásárlók és készült ennek egy újabb változata egy másik tárhelyen, amit csak a fejlesztők és a tulajdonos tudott elérni. Amint befejeződött a fejlesztés értelemszerűen az volt a cél, hogy az időközben az éles weboldalon leadott rendelések is átkerüljenek az új weboldalra mielőtt az elindul élesben a látogatók számára. Első hallásra ez egyszerű feladatnak tűnik, csak le kell menteni a régi (még éles) adatbázist és importálni az új tárhelyre, igaz? Nos, nem egészen. Ugyanis rengeteg beállítás és változtatás történt a két oldal között, az új adatbázis felülírásával pedig ezek rögtön elvesznének, tehát lehetne elölről kezdeni a fejlesztések nagyobbik részét. Más megoldást kellett hát keresni.

Természetesen mint mindenre, erre a feladatra is léteznek bővítmények, azonban ahhoz, hogy egy normális import/export folyamatot véghez tudjunk hajtani az oldalak között sajnos elég mélyen a pénztárcánkba kellett volna nyúlni, mert erre a célra csak fizetős plugineket találni. Az ingyenes exportáló variánsok csak XML vagy CSV fájlba tudnak menteni, az pedig nekünk jelen esetben nem volt megfelelő.

Szerencsére mások is szembesültek már ezzel a problémával és készült egy egyszerű kis PHP script, ami képes aktualizálni a rendeléseket az adatbázisok között, mégpedig úgy, hogy közben semmi máshoz nem nyúl, semmit nem töröl és módosít, minden beállítást érintetlenül hagy és még az sem számít neki, ha az adatbázisok, a WordPress (és a WooCommerce) eltérő verzió (tehát működik 2.x és 3.x között is).

A script elérhető a következő github linken: Rendelések migrálása
Ha valamilyen oknál fogva törlődne vagy nem lenne elérhető a fenti linken, akkor itt is megtalálod: Rendelések migrálása (WPSzaki mirror)

Használata nagyon egyszerű. Mentsük le, nevezzük el például “rendelesek.php” néven és szerkesszük benne az adatbázisokra vonatkozó részt, tehát a következő sorokat:

define('NEW_DB', 'AZ_UJ_ADATBAZIS_NEVE');
define('OLD_DB', 'A_REGI_ADATBAZIS_NEVE');

Az új adatbázis az, ahová az éles oldal rendeléseit szeretnénk áthozni, a régi pedig értelemszerűen az, ami per pillanat még éles, tehát ahol a friss rendeléseink vannak. Az adatbázisok neveinek megadása után szükség van még a kapcsolódási adatokra is, azokat itt tudjuk módosítani:

25.sor:

$new_conn = mysqli_connect( 'localhost', 'ADATBAZIS_FELHASZNALO', 'ADATBAZIS_JELSZO', NEW_DB );

36.sor:

$old_conn = mysqli_connect( 'localhost', 'ADATBAZIS_FELHASZNALO', 'ADATBAZIS_JELSZO', OLD_DB );

A 25.sorba kerülnek az új adatbázis bejelentkezési adatai (felhasználónév és jelszó), a 36.sorba pedig a régi (még éles) oldal adatbázisának adatai.

Ezután nincs más hátra, mint elmenteni a módosított PHP fájlt és feltölteni az új (vagy akár a régi) oldalunk tárhelyére és meghívni a következőképpen: “http://oldal.hu/rendelesek.php”. Ha mindent jól csináltunk, akkor pár másodperc után listázza is, hogy mi is történt a háttérben, mely rendelések kerültek beillesztésre és melyeket hagyta érintetlenül (mert megegyeznek a két oldal között). Ha hibaüzenet jelenne meg vagy nem futna le a script, akkor első körben érdemes ellenőrizni, hogy helyesen adtuk-e meg az adatbázisok adatait.

Nálam többször is jelesre vizsgázott a fenti kis script és igazán hasznosnak is bizonyult. Jóval gyorsabb, kényelmesebb és nem utolsósorban olcsóbb megoldás, mint egy fizetős bővítmény, ami lényegében ugyanezeket a funkciókat tartalmazza.

 

Ha tetszik, mutasd meg másoknak is: