Wtyczki do WordPressa i Woocommerce – na co uważać, jakie mają wady, jak się z nimi obchodzić

Wtyczki do WordPressa dają duże możliwości, ale nieumiejętnie używane mogą też przyprawić Cię o ból głowy… i straty finansowe. Dość rzadko się o tym mówi, więc dziś pokażę Ci jak obchodzić się z wtyczkami do WP.

Dla kogo jest ten wpis?

  • dla osób, które samodzielnie tworzą swoją stronę lub sklep internetowy (nawet najmniejszy) na WordPressie
  • dla osób, które zlecają stworzenie strony/sklepu (nawet najmniejszego) na WordPressie

No, to formalności mamy za sobą, przejdźmy do rzeczy 😉

Zalety wtyczek (pluginów) są oczywiste, dlatego w tym wpisie pogadamy o wadach

To oczywiste: gotowe wtyczki w ogólności pozwalają na szybsze/łatwiejsze/tańsze stworzenie wielu funkcjonalności na stronach i sklepach internetowych.

Tym wpisem nie chcę negować powyższego stwierdzenia, bo w zupełności się z nim zgadzam. Gotowe rozwiązania (czy to wtyczki czy motywy graficzne albo CMSy) bardzo przyczyniły się do rozwoju internetu, a co za tym idzie – całego świata.

Ale trzeba zdawać sobie sprawę, że WordPressa (i dowolnego innego CMSa) trzeba umieć używać, a w szczególności właśnie wtyczki do niego.

WordPress kontra platformy sklepowe i kreatory stron www

Często można spotkać się z opinią typu „po co mieć sklep na platformie sklepowej online i płacić co miesiąc abonament, skoro można go postawić na Woocommere i płacić mniej, za sam hosting?”

Albo: „kreatory są głupie, bo można mieć stronę na WordPressie. Po co komu kreator?”

Ten wpis i opisane w nim problemy w dużym stopniu odpowiadają po co: żeby nie musieć się użerać z technikaliami i problemami, których początkujący właściciel strony/sklepu nawet się nie spodziewa.

Żeby było jasne: bardzo lubię WordPressa, używam go do wielu rzeczy, ale jednocześnie uważam, że to nie jest rozwiązanie dla każdego. Po latach pracy z WordPressem myślę, że dla wielu osób lepszym rozwiązaniem byłoby skorzystanie albo z platformy sklepowej albo z kreatora stron. Które, oczywiście, też nie są bez wad, jak wszystko na tym świecie 😉

Dla wielu osób lepszym rozwiązaniem byłoby skorzystanie albo z platformy sklepowej albo z kreatora stron.

Zaczniemy delikatnie: im więcej wtyczek, tym wolniej działa strona

Generalnie, im więcej funkcjonalności/skryptów/kodu jest użyte w danym serwisie (nie musi to być kod „wtyczek do WordPressa”, tylko dowolny kod, nawet napisany specjalnie dla Ciebie) tym wolniej działa strona. Wtyczki tym różnią się od kodu napisanego specjalnie dla Ciebie, że posiadają tego kodu zwykle za dużo – bo posiadają ustawienia, z których części w ogóle nie skorzystasz. Dlatego, choć dowolny kod obciąża stronę, to wtyczki zwykle obciążają ją bardziej. Piszę to w uproszczeniu, ale myślę, że takie uproszczenie jest dość sensowne.

Dodawanie „bajerów” tylko dlatego, że można, obciąża serwisy i sprawia, że internauci muszą dłużej czekać na ich wczytanie się.

Dlatego zbudowanie wszystkich funkcjonalności na podstawie wtyczek samo w sobie może nie jest złe, ale im masz ich więcej – tym gorzej będzie działał Twój serwis.

A co, jeśli potrzebuję wielu funkcjonalności i jednocześnie chcę mieć szybką stronę/sklep?

Wtedy częścią rozwiązania jest napisanie tych funkcjonalności specjalnie dla Ciebie – bez używania wtyczek, albo z użyciem tylko niektórych.

(Napisałem „częścią rozwiązania”, bo jeśli masz po prostu wymagający serwis z dużym ruchem, to jest więcej elementów, o które musisz zadbać, na przykład zakup dobrego, szybkiego serwera/hostingu. Ale ten temat opiszę w innym wpisie.)

Jako właściciele stron/sklepów/blogów często używamy wtyczek, „bo po co przepłacać” i to jest sensowny argument. Jako web developer nie wyobrażam sobie, że miałbym każdą drobną funkcjonalność na mojej stronie pisać od zera, bo to pracochłonne, a my mamy za małą skalę działania, żeby aż tyle czasu poświęcić na coś, co nie przynosi bezpośrednio dochodu.

Ale pamiętaj o tym, że często warto zapłacić więcej komuś, kto przynajmniej niektóre funkcjonalności napisze „ręcznie”* – nie używając do tego wtyczek.

Twój serwer będzie Ci wdzięczny. Internauci, nieświadomie, także. 😉

*powinno się mówić: napisać kod palczaście, a nie ręcznie

„Gryzące się” wtyczki

Wtyczki – nie tylko do WordPressa –  mają czasami tendencję do przeszkadzania sobie nawzajem: osobno działają dobrze, ale gdy próbujemy je uruchomić w jednym serwisie – wtedy coś się „sypie”.

Jedna wtyczka może zaburzać działanie drugiej

Nie zdarza się to często, ale się zdarza. Z różnych powodów. Czasami wtyczka jest po prostu źle nie do końca dobrze napisana.

My, pracując nad stronami/sklepami dla klientów, pracujemy na sprawdzonych zestawach wtyczek, które razem ze sobą (zazwyczaj) działają. W ten sposób jesteśmy w stanie uniknąć niespodzianek. Te nasze „zestawy” zmieniają się z czasem, bo wtyczki też się zmieniają, ale zawsze mamy jakąś aktualną listę rozszerzeń, na które wiemy, że możemy liczyć (inna sprawa, gdy klient chce funkcjonalność, której do tej pory nie wdrażaliśmy…).

Ty, jeśli stawiasz pojedynczą stronę www lub sklep/bloga, musisz niestety liczyć się z tym, że wtyczki mogą robić niespodzianki.

Doinstalowanie nowej wtyczki może zaburzyć działanie serwisu

Masz działający serwis, ale chcesz dodać o niego jakąś funkcjonalność? Licz się z tym, że może ona zaburzyć działanie tego serwisu.

Z życia wzięte

czyli jak to było w praktyce

Z taką sytuacją miałem do czynienia niedawno: działający sklep internetowy, właściciel chce dodać wersje językowe.

Wtyczka do tłumaczeń (płatna WPML) zakupiona, zainstalowana. Teoretycznie można dodawać języki.

Tyle tylko, że klient tego sklepu zgłasza, że nie może dokończyć procesu zamówienia, czyli kupić produktu.

Co się okazuje? Że WPML „gryzie się” z wtyczką obsługującą szybkie płatności.

Rozwiązanie problemu? Na szczęście proste: aktualizacja wtyczki do szybkich płatności – jej starsza wersja nie umie się dogadać z nowszą wersją WPML 🙁

Nawet płatne (i drogie) pluginy mogą nie działać albo powodować/ujawniać inne problemy

Jak widzisz w powyższej historii, nawet płatne wtyczki (WPML) mogą spowodować problem, albo sprawić, że ten problem będzie miała inna wtyczka. W powyższej historii przestał działać plugin do szybkich płatności, a ten fakt ujawnił się dopiero, gdy klient próbował złożyć zamówienie w sklepie.

Kupując wtyczkę chcielibyśmy, żeby „robiła swoją robotę” i nie sprawiała problemów. W praktyce zwykle tak jest, ale jak widzisz – dobrze jest założyć, że nie wszystko musi pójść zgodnie z planem. I się na to przygotować.

ROZWIĄZANIE problemu „gryzących się” wtyczek?

Nie instaluj pluginów jak leci, tylko dlatego, że są bezpłatne i można.

Nowe wtyczki instaluj najpierw na kopii serwisu – i sprawdzaj, jak serwis działa z tym doinstalowanym pluginem. Dopiero jeśli nie zauważysz problemów – dodaj daną funkcjonalność do właściwego serwisu.

Tak, to jest upierdliwe i sam to czasem ignoruję, ale im więcej zarabia Twój serwis, na przykład sklep internetowy, tym bardziej powinno Ci zależeć na tym, żeby coś nieoczekiwanego nie zaburzyło jego działania, prawda?

Aktualizacje wtyczek (i Wordpressa, przy okazji)

Nieaktualizowane wtyczki mogą albo paść ofiarą ataku wirusa i unieruchomić stronę albo zaburzać działanie innych pluginów (patrz wyżej).

…natomiast aktualizowane wtyczki też mogą powodować problemy!

No to aktualizować czy nie aktualizować?

Wtyczki trzeba aktualizować, bo mogą mieć błędy lub luki w kodzie

Aktualizować.

Po pierwsze dlatego, że pluginy nie zawsze są pisane przez doświadczonych programistów. Amator napisze coś, co na pierwszy rzut oka będzie działać, ale „pod powierzchnią”, w kodzie, może zawierać tzw. lukę bezpieczeństwa.

Po drugie dlatego, że nawet doświadczeni programiści są omylni i zdarzają im się duże wpadki.

Z życia wzięte

czyli jak to było w praktyce

Kilka lat temu zainfekowana została chyba najpopularniejsza (płatna) wtyczka do tworzenia sliderów – SliderRevolution. Zainfekowanych zostało ponad 100 000 serwisów internetowych zbudowanych na WordPressie, które używały Revolution Slidera.

Wtyczka ta była sprzedawana między innymi w pakiecie z popularnymi płatnymi motywami do WP, np. Avada, The 7, Be Theme, dlatego jej infekcja była głośno komentowana w branży. I dlatego było tak dużo infekcji.

Co może się zdarzyć, jeśli nie aktualizujesz wtyczek

  • infekcje wirusowe – to jeden z częstszych problemów. Nieaktualne wtyczki (a raczej szerzej: cały nieaktualny WordPress, motywy także) mogą paść ofiarą ataku nawet po dłuższym czasie braku aktualizacji. Ignorujesz aktualizacje przez pół roku (przecież są ważniejsze sprawy!) i nic się nie dzieje, a tu pewnego dnia niespodzianka: strona nie działa. Wirus.
  • z czasem niepoprawne działanie – to się chyba rzadziej zdarza (w każdym razie my mieliśmy z tym do czynienia rzadziej niż z infekcjami): stare, nieaktualne wtyczki po prostu przestają działać jak powinny. Dlaczego? A choćby dlatego, że do działania wymagają wersji PHP 5.x, a na serwerze z zmieniono wersję PHP do szybszej 7.x.
  • brak współdziałania z innymi wtyczkami. Niektóre pluginy potrafią współpracować z innymi. Na przykład Woocommerce, wtyczka do tworzenia sklepów internetowych na WordPressie, „dogaduje się” z wtyczką WPML, która potrafi przetłumaczyć taki sklep na wiele języków.
    No ale Woocommerce jest cały czas rozwijany, więc wtyczki, które mają z nim pracować, muszą za tymi zmianami nadążać. Jeśli ich nie aktualizujesz – Woo może „zacząć mówić innym językiem” niż WPML czy inne pluginy. I tłumaczenie się rozpadnie…

Żeby nie było zbyt prosto: co może się zdarzyć jeśli zaktualizujesz wtyczki

WordPress ma wbudowany system pozwalający na łatwe aktualizowanie wtyczek:

system aktualizowania wtyczek w WordPressie

Zaznaczone czerwonawym kolorem wtyczki wymagają aktualizacji. Znajduje się przy nich przycisk „Aktualizuj”. Klik –  i plugin aktualizuje się sam.

Aaale – to też może spowodować problemy. Jakże nudne byłoby życie, gdyby aktualizacja nie wiązała się z ryzykiem spsucia strony!

Co może się stać?

  • wtyczka może przestać działać lub zaburzyć działanie innej wtyczki – już o tym pisałem: wtyczka podczas aktualizacji się zmienia. Nie wiesz, co dokładnie się zmieni, więc nie wiesz też, czy na 100% te zmiany nie napsują czegoś w Twoim serwisie
  • wtyczka bez luki bezpieczeństwa może się zaktualizować do wersji z luką bezpieczeństwa. No bo, niestety, niektóre luki są wykrywane dopiero po tym, jak nowa wersja pluginu jest już wypuszczona w świat, czyli gdy właściciele stron zaczynają z niej korzystać

Z życia wzięte

czyli jak to było w praktyce

Jeden jedyny raz miałem taką sytuację: stworzyłem bloga, a po jakimś czasie klientka pisze: „blog nie działa”. Otwieram – rzeczywiście! Zamiast wpisów biała strona. Taka cała biała, calusieńka.

Szukam, sprawdzam i znajduję przyczynę: podczas automatycznej aktualizacji WordPressa padł serwer. Jak podejrzewam, plik, który się właśnie w tym momencie ściągał, nie ściągnął się do końca i był taki „urwany” w połowie. WordPress szukał kodu z tej drugiej połowy pliku i nie mógł znaleźć. No i w rezultacie cały blog „zniknął”.

Ja wiem, że to nie historia o wtyczkach, ale z nimi może być dokładnie tak samo – jakiś „ups” w trakcie aktualizacji i mamy dodatkową zabawę w naprawianie strony.

W razie potrzeby: dość prostym rozwiązaniem jest wtedy pobranie WP/wtyczki „ręcznie” i „ręczne” wrzucenie na serwer.

ROZWIĄZANIE problemu aktualizacji wtyczek?

Aktualizować dopiero po wykonaniu kopii zapasowej (backupu) plików i bazy danych – najlepiej ręcznej. To takie minimum. Jeśli się coś rozpadnie po aktualizacji, możesz relatywnie łatwo wrócić do poprzedniej, działającej wersji i na spokojnie przeanalizować problem.

A jeszcze lepiej, gdyby aktualizacje wykonywać najpierw na kopii serwisu. Zaktualizować, sprawdzić, czy wszystko działa i wtedy dopiero zrobić aktualizacje na właściwym serwisie (po upewnieniu się, że masz backup).

I znów: to jest upierdliwe, ale w ten sposób masz największą pewność, że nie zaskoczą Cię nieoczekiwane „upsy”.

A dlaczego napisałem, że backupy najlepiej robić ręcznie, skoro są do tego wtyczki? Właśnie dlatego, że to też są wtyczki i też mogą zrobić „ups”. Z kilku z nich w życiu korzystałem i nie pamiętam, żeby coś się spektakularnie rozleciało, ale jeśli utrzymujesz się dzięki dobrze działającemu serwisowi www – lepiej nauczyć się, jak się robi ręczne kopie zapasowe. Bazy danych i plików. Albo to zlecać.

Jeśli utrzymujesz się dzięki dobrze działającemu serwisowi www – dobrze jest nauczyć się, jak się robi ręczne kopie zapasowe.

Ale o kopiach będzie inny wpis. A może zrobię szkolenie jak je wykonywać?

Podsumowanie

Jeśli Twój serwis jest zbudowany na podstawie WordPressa, musisz brać pod uwagę, że aktualizacja wtyczek to nie tylko kliknięcie w „Aktualizuj”. 20 razy zaktualizuje się dobrze, a przy dwudziestym pierwszym – pieprznie tak, że może się tylko o jedno biurko pomylić. Im bardziej zależy Ci na ciągłym działaniu Twojego serwisu, tym bardziej uzasadnione jest zrobienie z aktualizacji wtyczek „większej sprawy” – i robienie tego najpierw na kopii serwisu.

Dodaj komentarz

Strony i reszta