web-dev-qa-db-fra.com

WooCommerce - où puis-je modifier le HTML généré par les hooks?

Je suis nouveau sur WooCommerce. Quoi qu'il en soit, je veux créer mon propre thème, j'ai donc suivi les instructions et copié à travers les fichiers de modèle de base dans /mywordpresstheme/woocommerce/.

Tout fonctionne très bien et je modifie très bien les modèles.

Cependant, la façon dont les hooks et les actions fonctionnent dans WooCommerce me déroute et je ne peux pas déterminer d'où viennent certaines parties du code HTML généré.

Par exemple, dans content-product.php, il y a un crochet qui récupère l'image:

<?php
/*
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_show_product_loop_sale_flash - 10
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
?>

Mais qu'est-ce que c'est? D'où est ce que ça vient?? Y a-t-il un indice dans le nom de l'action pour savoir où je pourrais localiser le code HTML généré dans le but de le modifier?

J'ai lu l'article sur les `` crochets et filtres '' sur WooCommerce, mais il n'explique rien sur où ni comment les modifier au cas par cas.

Toute aide serait grandement appréciée.

Je suis nouveau dans ce système et je suis sûr que je regarde simplement quelque chose de très évident.

Merci, Mikey.

27

Mais qu'est-ce que c'est? D'où est ce que ça vient?? Y a-t-il un indice dans le nom de l'action pour savoir où je pourrais localiser le code HTML généré dans le but de le modifier?

Il s'agit d'un action hook. Il ne fait rien par lui-même, mais les fonctions répertoriées dans les commentaires hook y sont donc exécutées lorsque cette fonction est déclenchée. Il est dit dans les commentaires que la fonction woocommerce_template_loop_product_thumbnail Est la fonction chargée d'obtenir la vignette. Vous pouvez trouver cette fonction dans le plugin Woocommerce. J'utilise l'éditeur de texte sublime (bien que je pense que d'autres le feront aussi) pour rechercher l'ensemble du dossier pour cette phrase et il me dit exactement dans quel fichier il se trouve. Dans ce cas, c'est ce qu'on appelle une fonction enfichable et se trouve dans woocommerce-template.php. (Il s'appelle désormais wc-template-hooks.php dans la version 2.1+)

Une fonction enfichable signifie que vous définissez une nouvelle version de la fonction avec le même nom dans les fonctions de votre thème.php

function woocommerce_template_loop_product_thumbnail(){
  echo "Apple";
}

Si vous mettez ce qui précède dans votre functions.php, au lieu de woocommerce_template_loop_product_thumbnail() de Woo, vous ne verrez que le mot Apple.

J'ai lu l'article sur les `` crochets et filtres '' sur WooCommerce, mais il n'explique rien sur où ni comment les modifier au cas par cas.

Vous apporterez toutes les modifications dans le fichier functions.php de votre thème et une base au cas par cas n'est pas nécessaire. Tous les crochets et filtres se comportent de la même manière. Cela dit, ce n'est pas la chose la plus facile à apprendre, alors soyez patient avec vous-même. J'ai trouvé les filtres particulièrement difficiles à enrouler autour de ma tête.

Dans un endroit d'autopromotion gratuite, j'ai écrit une série d'articles sur les principes de base de WordPress crochets et filtres (un article dit que c'est pour les crochets thématiques, mais un hook is a hook!) ce sont toutes les choses que j'aurais aimé que les gens me disent au début de ma WordPress carrière.

53
helgatheviking