Par le

Voulez-vous développer des modules pour PrestaShop ou changer le fonctionnement de la plateforme? Ensuite, vous devez connaître les hooks PrestaShop.

Hooks - outils essentiels qui vous permettent de personnaliser PrestaShop sans modifier son noyau.
Nous aimerions vous présenter le concept de hooks et comment les utiliser correctement avec PrestaShop 1.6, 1.7 et la dernière version - PrestaShop 8. Vous découvrirez comment:

  • Afficher plus de détails dans un bloc hook.
  • Exécutez votre script avec une méthode hook.
  • Concevez votre sortie avec un modèle de hook.
  • Fusionnez votre hook avec le thème actuel.

Vous découvrirez également comment positionner, décrire, installer, désinstaller et définir une valeur par défaut pour vos hooks.

Que sont les hooks PrestaShop 1.7 & PrestaShop 8?

Définition des hooks.

Dans la description PrestaShop, les hooks de PrestaShop sont des emplacements prédéfinis dans la plate-forme où l’on peut insérer un script ou des modules personnalisés. Lorsqu’un hook est appelé ou exécuté, le script ou le module associé à ce hook se lance également.

Liste des hooks disponibles.

PrestaShop propose une vaste sélection de hooks disponibles. Selon la version de la plateforme, la liste peut être différente.

Pour afficher la liste des hooks disponibles dans PrestaShop, rendez-vous dans la documentation.

Vous pouvez également visiter l’onglet Positions affiché dans le back-office dans la colonne de gauche pour voir les hooks sur PrestaShop stockés dans la base de données.

Comment fonctionnent les hooks?

Lorsqu’un hook est appelé ou exécuté, PrestaShop recherche tout module ou code associé et, le cas échéant, le lance. Les hooks sont utilisés efficacement pour modifier ou ajouter au contenu d’une page ou d’un élément spécifique.

Par exemple, un hook vous permet d’ajouter une image à l’en-tête ou d’afficher un produit dans le pied de page de la page.

Comment créer un hook PrestaShop?

Créer un hook PrestaShop 1.7 ou 8 nécessite de manipuler le code PHP. Dans un module nouveau ou existant, créez le hook en le définissant dans un tableau:

$this->registerHook('actionValidateOrder');

Où 'actionValidateOrder' est le nom du hook. Une fois le hook défini, vous pouvez lui attacher une fonction:

Nous utilisons ce hook à l’intérieur de notre module DocumenThemix .


Comment mettre à jour un hook?

La mise à jour d’un hook nécessite de modifier le module associé à ce hook. Pour modifier un hook dans le fichier de configuration du module, localisez-le et apportez les modifications requises à la fonction associée.

Comment commenter un hook?

Il vous suffit d’ajouter un commentaire au-dessus du script associé au hook. 

Parfois, vous pourriez oublier ce que fait un hook ou pourquoi vous l’avez mis là en premier lieu. Ne vous inquiétez pas, nous sommes tous passés par là.

C’est pourquoi vous pouvez ajouter des commentaires à vos hooks pour vous rafraîchir la mémoire ou pour expliquer votre génie à d’autres développeurs qui pourraient tomber sur votre extrait.

Faites-nous confiance, ils apprécieront.

Exemples de hooks: Display & Send Emails.

Comment afficher un module à l’aide de hooks?

Disons que vous avez un module personnalisé qui affiche une liste de fabricants sur le front-office. Pour afficher ce module, vous pouvez l’insérer à l’aide du hook "displayHome":

$this->registerHook('displayHome');

Vous pouvez ensuite attacher le module à l’aide de la fonction suivante:

Comment exposer les produits?

Vous pouvez utiliser le hook "displayProductAdditionalInfo" pour afficher des informations sur un produit:

$this->registerHook('displayProductAdditionalInfo');

La fonction suivante peut être utilisée pour joindre les informations:

public function hookDisplayProductAdditionalInfo($params)
{
   // afficher les informations sur le produit ici
}

Comment envoyer un email en utilisant des hooks?

Le hook "actionEmailSendBefore" peut être utilisé pour modifier le contenu de l’email avant son envoi:

$this->registerHook('actionEmailEnvoieAvant');

La fonction suivante peut être utilisée pour le faire:

public function hookActionEmailSendBefore($params)
{
   // votre fonction pour modifier le contenu de l’email ici
}

Avancé sur les hooks avec le contrôleur et les modules.

Comment fonctionnent les hooks avec les contrôleurs dans PrestaShop?

Dans PrestaShop, les contrôleurs gèrent le routage des pages et servent de backend à la plateforme de e-commerce. Les hooks peuvent être utilisés pour modifier le comportement ou le contenu d’un contrôleur.

Par exemple, le hook "displayAdminOrder" est utilisé pour éditer le contenu de la page de commande admin PrestaShop .

Comment autoriser les modules à modifier un hook?

Les modules dans PrestaShop ont la capacité d’éditer ou d’étendre les hooks. Cela permet une plus grande personnalisation et flexibilité.

Utilisez le script suivant:

$this->hooks_executed[nom_$hook] = vrai;
Hook::exec($hook_name, $params, $this->id_module);

Comment étendre les hooks dans PrestaShop à l’aide d’un module?

Tout d’abord, vous devez créer votre propre hook dans le fichier de configuration de votre module avec un nom de hook:

$this->registerHook('myCustomHook');

Vous pouvez ensuite définir le comportement ou le contenu de ce hook dans la fonction suivante:

public function hookMyCustomHook($params)
{
   // Afficher le contenu personnalisé ici
}

Eh bien, c’est tout pour notre récapitulatif sur les hooks! C’est tout pour l’instant, les amis. Vous avez appris les bases des hooks et comment les faire fonctionner pour vous.

Maintenant, allez-y et connectez votre boutique PrestaShop avec des personnalisations impressionnantes.

N’oubliez pas de consulter le panneau de documentation et de configuration de votre version de PrestaShop pour une liste complète des hooks PrestaShop disponibles.