Zawartość artykułu
Jaką wersję modułu chcemy wymusić?
W innym artykule poruszaliśmy już jak wymusić starą wersję tego modułu dla PrestaShop 1.6:
PrestaShop 1.6 – moduł automatycznej akualizacji. Jak wymusić starą wersję modułu autoupgrade?
Dziś skupimy się na nowszej wersji tego modułu. Chodzi o: v4.14.2.
Czy można użyć starą wersję modułu autoupgrade?
Moduł „Aktualizacja 1 kliknięciem” (nazwa kodowa: autoupgrade
) ma niestety taką przypadłość, że jeśli sam moduł do aktualizacji nie jest aktualny – blokuje to możliwość jego działania:
Po prostu na checkliście w module zobaczysz taki krzyżyk i nie będize dało się przeprowadzic aktualizacji.. 🙁
A czasem zależy nam na użyciu starej wersji modułu, bo np. lepiej radzi ona sobie z aktualizacją do konkrentej wersji PrestaShop.
Z doświadczenia naszego zespołu wynika, że nie warto np. od razu aktualizować z najstarszej wersji PrestaShop 1.6 (obecnie 1.6.1.24) do najstarszej 1.7 (obecnie 1.7.8.10). Warto zrobić po drodze „przystanek” i najpierw podnieść 1.6 do wersji pośredniej (najlepiej PrestaShop 1.7.6.2) następnie taką wersję już zaktualizować do 1.7.8.10. Jednocześnie zwiększająć wersję PHP.
Tak jak w przytoczonym wyżej innym artykule wystarczy mała modyfikacja kodu modułu aby wymusić aktualną wersję modułu i aby można było przeprowadzić aktualizację sklepu.
W przypadku tamtego artykułu wymuszaliśmy wersję v1.6.7 ale tutaj chcemy wymusić użycie wersji: v4.14.2. Jak nie trudno się domyśleć, diametralnie zmienił się kod tego modułu i tamta modyfikacja już nie zadziała. Dla tej nowszej wersji wykonaj czynności poniżej.
Zmiana kodu modułu
Zlokalizuj plik:
modules/autoupgrade/classes/UpgradeSelfCheck.php
Następnie znajdź funkcję:
public function isModuleVersionLatest() { if (null !== $this->moduleVersionIsLatest) { return $this->moduleVersionIsLatest; } return $this->moduleVersionIsLatest = $this->checkModuleVersionIsLastest($this->upgrader); }
Podobnie jak w poprzednim przypadku „urwij” jej realizację przez zwrócenie wartości true
w jej środku:
public function isModuleVersionLatest() { if (null !== $this->moduleVersionIsLatest) { return $this->moduleVersionIsLatest; } return true; return $this->moduleVersionIsLatest = $this->checkModuleVersionIsLastest($this->upgrader); }
W ten sposób checklista będzie już prawidłowa, a aktualizacja odblokowana 😉
Aktualizacja sklepów PrestaShop
Na koniec autoreklama naszych usług 😉 Zapraszamy do skorzystania z oferty przeprowadzenia aktualizacji PrestaShop:
grafika: wallpaperaccess.com