
Sisukord
WooCommerce on ehitatud hookide süsteemile. Iga element – toote pealkiri, hind, nupp, pilt, kirjeldus – ilmub lehel tänu konkreetsele hookile. Kui tead, mis hook mis asja kuvab, saad kõike lisada, eemaldada ja ümber tõsta ilma core faile puutumata.
Ilma hookide kaardita on WooCommerce muutmine arvamustemäng – proovid, vaatad mis juhtub, tühistad. Hookide kaardiga tead täpselt kuhu minna.
Hookide loogika – action vs filter
Action hook (do_action) – koht koodis, kuhu saad oma funktsiooni lisada. Kuvab sisu, käivitab koodi, lisab elemente.
Filter hook (apply_filters) – muudab olemasolevat väärtust. Muudab teksti, numbrit, massiivi.
// Action – lisa element hookile
add_action( 'woocommerce_before_single_product', 'minu_funktsioon' );
// Filter – muuda olemasolevat väärtust
add_filter( 'woocommerce_product_title', 'minu_pealkiri_filter', 10, 2 );
// Eemalda olemasolev element
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
Prioriteet (kolmas parameeter) määrab järjestuse – madalam number käivitub varem. Vaikimisi on 10.
Single Product leht – hookide kaart
Single product leht on WooCommerce’i kõige hookiderikkam leht. Siin on täielik kaart koos vaikimisi prioriteetidega:

Praktilised näited single product lehel
Eemalda tähthinnang:
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_rating', 10 );
Eemalda jagamisnupud:
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_sharing', 50 );
Lisa custom tekst hinna alla (prioriteet 15 – hinna ja excerpti vahele):
add_action( 'woocommerce_single_product_summary', 'minu_tekst_hinna_alla', 15 );
function minu_tekst_hinna_alla() {
echo '<p class="delivery-info">🚚 Tasuta tarne üle 50€ tellimustel</p>';
}
Lisa custom bänner toote pildi alla:
add_action( 'woocommerce_after_single_product_summary', 'minu_garantii_banner', 5 );
function minu_garantii_banner() {
echo '<div class="guarantee-banner">✅ 30-päeva tagastusõigus</div>';
}
Muuda “Lisa ostukorvi” nupu teksti:
add_filter( 'woocommerce_product_single_add_to_cart_text', function() {
return 'Telli kohe';
});
Shop / Archive leht – hookide kaart
Shop leht (ja kategoorialehed) kasutavad archive-product malli.

Praktilised näited shop lehel
Eemalda “Lisa ostukorvi” nupp shop lehelt (ainult pilt + pealkiri + hind):
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
Eemalda toote hind shop lehelt:
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
Lisa toote lühikirjeldus shop lehel (pilt alla, pealkirja alla):
add_action( 'woocommerce_after_shop_loop_item_title', 'minu_loop_excerpt', 15 );
function minu_loop_excerpt() {
global $product;
$excerpt = $product->get_short_description();
if ( $excerpt ) {
echo '<p class="loop-excerpt">' . wp_trim_words( $excerpt, 15 ) . '</p>';
}
}
Lisa “Uus!” märgis uutele toodetele:
add_action( 'woocommerce_before_shop_loop_item_title', 'minu_new_badge', 15 );
function minu_new_badge() {
global $product;
$created = strtotime( $product->get_date_created() );
$days_old = ( time() - $created ) / DAY_IN_SECONDS;
if ( $days_old < 30 ) {
echo '<span class="new-badge">Uus!</span>';
}
}
Kust kood käib
Kõik eelnevad näited käivad child theme’i functions.php faili. Mitte põhiteema functions.php – teema uuendus kirjutab selle üle.
Kui child teemat ei ole, on alternatiiv:
- Code Snippets plugin – haldad snippette admin paneelis, turvaliselt
- mu-plugins kaust –
wp-content/mu-plugins/woocommerce-custom.php– laadib alati, sõltumata aktiivsest teemast
Kuidas leida õige hook
WooCommerce hookide täielik nimekiri on pikk. Kui otsin konkreetset hookki:
1. Vaata WooCommerce allikkoodi – hooks on kommenteeritud otse template failides (woocommerce/templates/ kaustas).
2. Kasuta Query Monitor pluginat – näitab reaalajas, millised hookid igal lehel käivituvad ja mis järjekorras.
3. WooCommerce Visual Hook Guide – oleme teinud eraldi maandumislehe just nende jaoks: https://hundikuu.ee/info/woocommerce-hooks-visual-guide/
Hookide süsteem on WooCommerce’i tugevus – õigesti kasutades ei pea kunagi core faile muutma ja uuendused ei riku kunagi kohandusi.
Seotud postitused
FAQ lehed ja Schema markup – kuidas jõuda Google’i rich results’sse
FAQPage JSON-LD schema toob su lehe otsingutulemustes laiendatult välja. Selgitame mis on FAQ…
WordPress teemad ja page builderid – milline valida ja miks see kiirust mõjutab
Divi, Elementor, WPBakery või Gutenberg? Võrdleme ausalt – CSS koormus, jõudlus, millal kumb sobib…
Blogipostitused ja SEO – kuidas kirjutada nii, et Google leiaks ja inimesed loevad
SEO-ga kirjutamine ei tähenda märksõnade topimist. Selgitame struktuuri, pealkirju, siselinke ja…
WordPress Cron – miks vaikimisi on murtud ja kuidas päriselt parandada
SisukordMis on WP-Cron ja miks see on probleemLahendus 1 – väline cron, WordPress viisLahendus 2 –…