Hooki PrestaShop: czym są i jak działają (wersje 8 i 9)

Qué son y cómo funcionan los hooks en Prestashop

Zaktualizowano w październiku 2026 r.

Jak szwajcarski zegarek, każdy sklep PrestaShop składa się z zaskakującej liczby mechanizmów i elementów, które dzień po dniu zapewniają jego sprawne działanie. Należą do nich „hooki”, czyli „haczyki”, do których podpinają się treść i logika modułów Państwa sklepu. Ten poradnik dotyczy PrestaShop 8 i 9.

Czym są hooki w PrestaShop?

Hook to punkt zaczepienia w PrestaShop, do którego moduł podpina swój kod, aby wyświetlić treść lub zareagować na zdarzenie w sklepie, na przykład pokazać ofertę na stronie głównej albo wykonać akcję, gdy klient zakłada konto. Każdy hook ma nazwę, taką jak ‚displayHome’, ‚displayFooter’, ‚actionProductAdd’ czy ‚actionCustomerAccountAdd’, a jej przedrostek wskazuje typ (omawiamy go poniżej).

Aby zobaczyć hooki w swoim sklepie, wystarczy wejść do panelu administracyjnego i otworzyć Wygląd > Pozycje. Znajdą Państwo listę dostępnych hooków, a pod każdym z nich przypisane moduły w kolejności ich wykonywania. Każdy moduł z tej listy jest podpięty do hooka widocznego tuż nad jego blokiem. Jeśli interesuje Państwa tylko jeden moduł, można go przefiltrować w rozwijanym menu u góry albo wyszukać konkretny hook. A jeśli chcą Państwo rozbudować sklep o nowe funkcje, zapraszamy do naszej kolekcji modułów PrestaShop.

To, z jakich hooków można korzystać, zależy też od zainstalowanego motywu, ponieważ każdy motyw sam decyduje, w których miejscach wyświetla poszczególne hooki.

Wiele hooków to bloki widoczne dla odwiedzających, ale inne są niewidoczne i służą tylko do wykonywania akcji. Domyślnie strona Pozycje pokazuje wyłącznie hooki, w których można umieścić moduł; po zaznaczeniu pola wyświetlania hooków bez możliwości pozycjonowania pojawią się wszystkie, także niewidoczne.

Przycisk Live Edit w PrestaShop 1.6 (archiwalny zrzut ekranu)Jeśli znają Państwo PrestaShop 1.6, być może pamiętają przycisk „Live Edit” (edycja na żywo), który przenosił do sklepu, aby przesuwać moduły od ręki. Zrzut po prawej pochodzi z tej wersji. Dziś pracuje się w Wygląd > Pozycje.

Rodzaje hooków w PrestaShop i jak działają

Hooki dzielą się na dwie duże grupy, hooki akcji (action) i hooki wyświetlania (display), które rozpoznaje się po przedrostku nazwy.

  • Hooki akcji (action): uruchamiają się, gdy w PrestaShop wydarzy się jakieś zdarzenie, i niczego nie wyświetlają. Na przykład ‚actionCustomerAccountAdd’ działa, gdy klient pomyślnie założy konto, ‚actionValidateOrder’ przy zatwierdzeniu zamówienia, a ‚actionProductAdd’ przy tworzeniu produktu. Moduł podpina się do nich, aby zareagować, na przykład powiadomić inny system albo zapisać dane.
  • Hooki wyświetlania (display) generują treści pokazywane we front office lub w panelu administracyjnym: bloki, kolumny, listy produktów czy obrazy. Są najczęściej używane i pojawiają się niemal w każdym zakątku sklepu, jak ‚displayHome’ (strona główna), ‚displayFooter’ (stopka), ‚displayShoppingCart’ (koszyk) czy ‚displayProductAdditionalInfo’ (dodatkowe informacje na karcie produktu). Warto zajrzeć na stronę Pozycje w swoim sklepie, by zobaczyć, ile hooków wizualnych się nagromadziło.

Jak zmienić pozycję modułu bez ruszania kodu?

W Wygląd > Pozycje można przesunąć moduł w górę lub w dół w obrębie jego hooka strzałkami albo przeciągając wiersz, a także przypisać go do innego hooka funkcją przeszczepienia („Transplant a module”), bez pisania ani linijki kodu. Warto pamiętać, że niektóre moduły są przygotowane tylko do wybranych hooków, a w niektórych przypadkach trzeba zmodyfikować ich kod, aby je przeszczepić. Szczegóły znajdą Państwo w oficjalnej dokumentacji PrestaShop o pozycjach (po angielsku).

Jak moduł korzysta z hooków? (dla programistów)

Moduł podpina się do hooka, wywołując registerHook(), zwykle podczas instalacji, i definiuje publiczną metodę o nazwie złożonej z „hook” oraz nazwy hooka. Metoda otrzymuje tablicę z informacjami o kontekście. Przykład z ‚displayHeader’:

public function install()
{
    return parent::install()
        && $this->registerHook('displayHeader');
}

public function hookDisplayHeader(array $params)
{
    // Tutaj kod Państwa modułu.
}

Pełną listę dostępnych hooków znajdą Państwo w dokumentacji dla programistów PrestaShop 9 (po angielsku).

Mają Państwo wątpliwości?

Jeśli potrzebują Państwo pomocy ze strukturą hooków w sklepie lub modułu na zamówienie, nasz zespół chętnie pomoże. W Línea Gráfica jesteśmy ekspertami od wdrożeń PrestaShop: proszę opisać, czego Państwo potrzebują, za pośrednictwem naszego wsparcia PrestaShop.

Álvaro Criado
Zaktualizowano