Scritto da il

Vuoi sviluppare moduli per PrestaShop o cambiare il modo in cui funziona la piattaforma? Quindi devi conoscere i hook PrestaShop.

Hooks - strumenti essenziali che ti consentono di personalizzare PrestaShop senza modificarne il nucleo.
Vorremmo presentarvi il concetto di hook e come usarli correttamente con PrestaShop 1.6, 1.7 e l'ultima versione - PrestaShop 8. Scoprirai come:

  • Appaiono più dettagli in un blocco di hooks.
  • Eseguire lo script con un metodo hook.
  • Progetta il tuo output con un modello di hook.
  • Unisci il tuo hooks con il tema corrente.

Scoprirai anche come posizionare, descrivere, installare, disinstallare e impostare un valore predefinito per i tuoi hook.

Cosa sono gli hook in PrestaShop 1.7 & PrestaShop 8?

Definizione di hook

Nella descrizione di PrestaShop, gli hook sono posizioni predefinite all'interno della piattaforma in cui è possibile inserire script o moduli personalizzati. Quando un hook viene chiamato o eseguito, viene avviato anche lo script o il modulo associato a tale hook.

Elenco dei hook disponibili in PrestaShop.

PrestaShop offre una vasta selezione di hook disponibili. A seconda della versione della piattaforma, l'elenco potrebbe essere diverso.

Per visualizzare l'elenco degli hook disponibili in PrestaShop, vai alla documentazione.

Puoi anche visitare la scheda Posizioni visualizzata nel Back office nella colonna di sinistra per vedere gli hook memorizzati nel database.

Come funzionano i hook in PrestaShop?

Quando un hook viene chiamato o eseguito, PrestaShop cerca qualsiasi modulo o codice associato e, se presente, lo avvia. Gli hook vengono effettivamente utilizzati per modificare o aggiungere contenuti a una pagina o elemento specifico.

Ad esempio, un hook consente di aggiungere un'immagine all'intestazione o visualizzare un prodotto all'interno del piè di pagina della pagina.

Come usare i hook?

Come creare un hooks?

La creazione di un hook in PrestaShop 1.7 o 8 richiede la manipolazione del codice PHP. In un modulo nuovo o esistente, creare l'hook definendolo in una matrice:

$this->registerHook('actionValidateOrder');

Dove 'actionValidateOrder' è il nome dell'hook. Una volta definito il hooks, è possibile collegarvi una funzione:

Usiamo questo hooks all'interno del nostro modulo DocumenThemix .

Come aggiornare un hooks?

L'aggiornamento di un hook richiede la modifica del modulo associato a tale hook. Per modificare un hook nel file di configurazione del modulo, individuarlo e apportare le modifiche richieste alla funzione associata.

Come commentare un hooks?

È sufficiente aggiungere un commento sopra lo script associato all'hook. 

A volte potresti dimenticare cosa fa un hooks o perché lo metti lì in primo luogo. Non ti preoccupare, ci siamo passati tutti.

Ecco perché puoi aggiungere commenti ai tuoi hook per far correre la tua memoria o per spiegare il tuo genio ad altri sviluppatori che potrebbero imbattersi nel tuo frammento.

Fidati di noi, lo apprezzeranno.

Esempi di hook: Display & Send Emails.

Come visualizzare un modulo usando i hook?

Supponiamo che tu abbia un modulo personalizzato che visualizza un elenco di produttori sul front office. Per visualizzare questo modulo, è possibile inserirlo utilizzando l'hook "displayHome":

$this->registerHook('displayHome');

È quindi possibile collegare il modulo utilizzando la seguente funzione:

Come esporre i prodotti?

È possibile utilizzare l'hook "displayProductAdditionalInfo" per visualizzare informazioni su un prodotto:

$this->registerHook('displayProductAdditionalInfo');

La seguente funzione può essere utilizzata per allegare le informazioni:

public function hookDisplayProductAdditionalInfo($params)
{
   // visualizza qui le informazioni sul prodotto
}

Come inviare un'e-mail utilizzando gli hook?

L'hook "actionEmailSendBefore" può essere utilizzato per modificare il contenuto dell'e-mail prima che venga inviata:

$this->registerHook('actionEmailSendBefore');

Per farlo è possibile utilizzare la seguente funzione:

public function hookAzioneEmailSendBefore($params)
{
   // la tua funzione per modificare il contenuto dell'e-mail qui
}

Avanzato su PrestaShop aghooka con il controller e i moduli.

Come funzionano i hook con i controller in PrestaShop?

In PrestaShop, i controller gestiscono il routing delle pagine e fungono da backend della piattaforma. Gli hook possono essere utilizzati per modificare il comportamento o il contenuto di un controller. Ad esempio, l'hook "displayAdminOrder" viene utilizzato per modificare il contenuto della pagina dell'ordine di amministrazione di PrestaShop .

Come consentire ai moduli di modificare un hooks?

I moduli in PrestaShop hanno la capacità di modificare o estendere i hook. Ciò consente una maggiore personalizzazione e flessibilità.

Utilizzare il seguente script:

$this->hooks_executed[nome_$hook] = true;
hook::exec($hook_name, $params, $this->id_module);

Come estendere i hook in PrestaShop utilizzando un modulo?

Innanzitutto, è necessario creare il proprio hook nel file di configurazione del modulo con un nome hook:

$this->registerHook('myCustomHook');

È quindi possibile definire il comportamento o il contenuto per questo hook nella funzione seguente:

public function hookMyCustomHook($params)
{
   // visualizza qui contenuti personalizzati
}

Bene, questo è tutto per la nostra carrellata sui hook! Questo è tutto per ora, gente. Hai imparato le basi dei hook e come farli funzionare per te.

Ora vai là fuori e collega il tuo negozio PrestaShop con alcune fantastiche personalizzazioni.

Ricordati di consultare la documentazione e il pannello di configurazione per la tua versione specifica di PrestaShop per un elenco completo dei hook PrestaShop disponibili.