הוקים של WooCommerce: מדריך ויזואלי אינטראקטיבי לכל עמוד

אם אי פעם ניסיתם לשנוצ עמוד או תבנית בחנות WooCommerce, כנראה והבנתם שהחלק הקשה ביותר הוא דווקא למצוא את ההוק הנכון. ל-WooCommerce יש למעלה מ-2,500 הוקים (כן, קראתם נכון), הוקים מסוג action ו-filter הפזורים בין templates, classes ו-APIs שונים.

המפה האינטראקטיבית שלמעלה נועדה בדיוק בשביל זה: היא מציגה באופן ויזואלי כל הוק של template, עבור כל אחד מעמודי WooCommerce.

מהם הוקים ב-WooCommerce

הוקים הם נקודות מוגדרות מראש בקוד של WooCommerce, שבהן תוכלו להזריק פונקציונליות משלכם. קיימים שני סוגים:

  • הוקים מסוג action מאפשרים לכם להוסיף תוכן או להריץ קוד בנקודה מסוימת. WooCommerce קורא ל-do_action(), והפונקציה שלכם רצה.
  • הוקים מסוג filter מאפשרים לכם לשנות מידע לפני ש-WooCommerce משתמש בו. WooCommerce מעביר את אותו מידע דרך apply_filters(), והפונקציה שלכם משנה אותו ומחזירה את התוצאה.

אם אתם רק מתחילים עם הוקים של WooCommerce, אני ממליץ לפתוח עם המדריך המלא שלי להוקים של WooCommerce להיכרות מעמיקה יותר. התחביר עצמו די פשוט, והקוד הבא יסביר זאת טוב ממני (כמובן):

// Action: add content after the product price
add_action( 'woocommerce_single_product_summary', 'my_custom_content', 15 );
function my_custom_content() {
    echo '<p>Custom content here</p>';
}

// Filter: modify the product tabs array
add_filter( 'woocommerce_product_tabs', 'my_custom_tabs' );
function my_custom_tabs( $tabs ) {
    unset( $tabs['reviews'] );
    return $tabs;
}

הפרמטר השלישי ב-add_action() הוא ה-priority (העדיפות). מספרים נמוכים רצים ראשונים. WooCommerce משתמש בקפיצות של 5 או 10 עבור ה-callbacks המובנים שלו, כך שנשאר מקום לקוד שלכם להשתלב ביניהם.

כיצד למצוא הוקים ב-WooCommerce

לפניכם שלוש שיטות מעשיות לגילוי הוקים בכל עמוד של WooCommerce:

1. הקובץ wc-template-hooks.php

קובץ בודד זה, הנמצא בתיקיית includes/ של WooCommerce, רושם את כל 73 ה-callbacks של הוקים מסוג template. זה מקור האמת (source of truth) לגבי מה ש-WooCommerce מחבר כברירת מחדל לכל הוק, ובאיזו priority.

wp-content/plugins/woocommerce/includes/wc-template-hooks.php

פתחו אותו וחפשו את ההוק שאתם צריכים. כל קריאה ל-add_action() ול-add_filter() מראה לכם בדיוק מה WooCommerce עושה עם כל הוק.

2. התוסף Query Monitor

התקינו את Query Monitor וגלשו לעמוד כלשהו של WooCommerce. הפאנל ״Hooks and Actions״ מציג כל הוק שנורה במהלך טעינת אותו עמוד, לפי סדר ההרצה, יחד עם ה-callbacks המחוברים אליו וה-priorities שלהם (אגב).

3. המפה האינטראקטיבית שלמעלה

את המפה הוויזואלית שבראש העמוד בניתי בדיוק בכדי לפתור את אותה בעיה. כל template של עמוד WooCommerce מיוצג כ-wireframe, כשההוקים ממוקמים בדיוק במקום בו הם נורים בתהליך הרינדור (העיבוד).

סדר ההרצה של ההוקים וה-Priorities

כל הוק ב-WooCommerce נורה ב-priority ספציפי. ה-callbacks המובנים של WooCommerce משתמשים בדרך כלל ב-priorities 5, 10, 20, 30, 40 ו-50. הקוד המותאם אישית שלכם משתלב ביניהם, בהתאם ל-priority שתגדירו.

ניקח את עמוד המוצר הבודד (single product) כדוגמה. ההוק woocommerce_single_product_summary הוא מעין container שאליו WooCommerce מחבר מספר callbacks ב-priorities שונים:

Priority Callback פלט
5 woocommerce_template_single_title כותרת המוצר
10 woocommerce_template_single_rating דירוג כוכבים
10 woocommerce_template_single_price מחיר
20 woocommerce_template_single_excerpt תיאור קצר
30 woocommerce_template_single_add_to_cart כפתור הוספה לעגלה
40 woocommerce_template_single_meta מק״ט, קטגוריות, תגיות
50 woocommerce_template_single_sharing כפתורי שיתוף חברתי

בכדי להוסיף תוכן מותאם אישית בין המחיר לתיאור הקצר, השתמשו ב-priority 15:

add_action( 'woocommerce_single_product_summary', 'my_custom_text_after_price', 15 );
function my_custom_text_after_price() {
    echo '<p class="custom-notice">Free shipping on orders over $50</p>';
}

בכדי להסיר אלמנט שמגיע כברירת מחדל, השתמשו ב-remove_action() עם אותו שם פונקציה ואותה priority בדיוק:

// Remove the product meta (SKU, categories, tags)
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
השתמשו תמיד ב-remove_action() או ב-remove_filter() עם אותה priority מדויקת שבה השתמש WooCommerce בעת חיבור ה-callback. אם ה-priority אינה תואמת, ההסרה פשוט תיכשל בשקט, ללא הודעת שגיאה.

הוקים של WooCommerce ותשלום מבוסס בלוקים (Block Checkout)

WooCommerce מעביר בהדרגה את עמודי העגלה והתשלום שלו לארכיטקטורה מבוססת בלוקים (blocks). מהלך זה יוצר שתי מערכות מקבילות שכל מפתח צריך להכיר.

האימוץ [של ה-Block Checkout] נמוך מהצפוי – צוות WooCommerce, אפריל 2025

נכון לתחילת 2026, כ-87% מחנויות WooCommerce עדיין משתמשות בעמוד התשלום הקלאסי, המבוסס על shortcode. רק 35 הוקים קלאסיים הועברו רשמית לעבוד עם ה-Block Checkout: 24 מסוג filter ו-11 מסוג action.

הוקים קלאסיים של PHP פשוט אינם נורים כשה-checkout מבוסס הבלוקים עולה. WooCommerce מציע שלושה מסלולים להתאמה אישית של הגרסה מבוססת הבלוקים (בשלב זה):

  1. הוקים שהועברו – 35 הוקים שעובדים גם בהקשר הקלאסי וגם בבלוקים, כמו הוקים לחישוב משלוח ומס והוקים של טפסי החיוב והמשלוח.
  2. Checkout Extensibility API – filters מבוססי JavaScript ורכיבי Slot/Fill עבור ה-Block Checkout. דורש ידע ב-webpack וב-React.
  3. Additional Checkout Fields API – הוצג ב-WooCommerce 8.6 ומעלה, ומחליף את ה-filter woocommerce_checkout_fields להוספת שדות מותאמים ב-Block Checkout.

בשלב זה, אני ממליץ לכוון להוקים הקלאסיים ברוב הפרויקטים. כשאימוץ ה-Block Checkout יגדל, אני מבטיח לעדכן את מדריך זה עם לשונית ייעודית להוקים של בלוקים.

משימות נפוצות – באיזה הוק להשתמש

במקום לחפש בין שמות ההוקים, מצאו את המשימה שאתם צריכים והשתמשו בהוק המומלץ:

אני רוצה ל… Hook סוג
להוסיף תוכן מעל המוצר woocommerce_before_single_product action
להזיז או להסיר את מחיר המוצר woocommerce_single_product_summary action (priority 10)
להוסיף לשונית מוצר מותאמת woocommerce_product_tabs filter
לשנות את הטקסט של כפתור ההוספה לעגלה woocommerce_product_single_add_to_cart_text filter
להוסיף שדה מותאם לעמוד התשלום woocommerce_checkout_fields filter
להוסיף תוכן לפני כפתור ביצוע ההזמנה woocommerce_review_order_before_submit action
להוסיף עמלה לעגלה woocommerce_cart_calculate_fees action
לשנות את תצוגת סיכומי העגלה woocommerce_cart_totals_before_order_total action
להוסיף לשונית מותאמת ל״החשבון שלי״ woocommerce_account_menu_items filter
להריץ קוד לאחר ביצוע הזמנה woocommerce_thankyou action
לשנות את תצוגת מחיר המוצר woocommerce_get_price_html filter
להוסיף תוכן ל-shop loop woocommerce_after_shop_loop_item_title action
להסיר טעינת CSS/JS של WooCommerce בעמודים שאינם של החנות wp_enqueue_scripts action
להוסיף שדות מותאמים למוצרים woocommerce_product_options_general_product_data action
למנוע טעינת נכסים (assets) של WooCommerce wp_enqueue_scripts action

שאלות נפוצות

שאלות נפוצות לגבי הוקים ב-WooCommerce:

כמה הוקים יש ל-WooCommerce?
ל-WooCommerce יש יותר מ-2,500 הוקים מסוג action ו-filter, הפזורים ברחבי templates, core classes, נקודות קצה של REST API ומסכי ניהול. בקובץ wc-template-hooks.php לבדו רשומים 73 callbacks של הוקי template - 67 מסוג action ו-6 מסוג filter.
מה ההבדל בין הוקים מסוג action לבין הוקים מסוג filter ב-WooCommerce?
הוקים מסוג action מאפשרים לכם להוסיף קוד שרץ בנקודה מסוימת - למשל הדפסת HTML מותאם אחרי מחיר המוצר. הוקים מסוג filter מאפשרים לכם לשנות מידע לפני ש-WooCommerce משתמש בו, למשל שינוי מערך לשוניות המוצר. ה-actions משתמשים ב-add_action() וה-filters משתמשים ב-add_filter(). ההבדל המרכזי: filters חייבים להחזיר ערך, ואילו actions לא (כמובן).
כיצד מגלים אילו הוקים נורים בעמוד מסוים של WooCommerce?
יש שלוש שיטות: (1) השתמשו במפה הוויזואלית האינטראקטיבית שבמדריך זה. (2) התקינו את התוסף Query Monitor ובדקו את הפאנל ״Hooks and Actions״. (3) פתחו את wc-template-hooks.php בתיקיית התוסף של WooCommerce בכדי לראות את כל רישומי ההוקים המובנים ואת ה-priorities שלהם.
האם הוקים של WooCommerce עובדים עם תהליך התשלום מבוסס הבלוקים (Block Checkout)?
רוב הוקי ה-PHP הקלאסיים אינם נורים ב-checkout מבוסס הבלוקים. רק 35 הוקים הועברו רשמית לעבודה בשני ההקשרים. עבור ה-Block Checkout, WooCommerce ממליץ על ה-Checkout Extensibility API או על ה-Additional Checkout Fields API שהוצג ב-WooCommerce 8.6 ומעלה. נכון לתחילת 2026, כ-87% מהחנויות עדיין משתמשות בתשלום הקלאסי.
כיצד משנים את ה-priority של הוק ב-WooCommerce?
ה-priority הוא הארגומנט השלישי ב-add_action() או ב-add_filter(). מספרים נמוכים רצים ראשונים. WooCommerce משתמש בקפיצות של 5 או 10 עבור ברירות המחדל שלו, למשל כותרת ב-5, מחיר ב-10 והוספה לעגלה ב-30. בכדי למקם את הקוד שלכם בין שתי ברירות מחדל, בחרו ערך priority שנמצא ביניהן.
למה ההוק שלכם ב-WooCommerce לא נורה?
סיבות נפוצות: (1) ההוק זמין רק ב-checkout הקלאסי ואתם משתמשים ב-Block Checkout. (2) הפונקציה שלכם מחוברת ב-priority שגוי. (3) ההוק הוסר על ידי התבנית שלכם או על ידי תוסף אחר. (4) הקוד שלכם נמצא בקובץ שלא נטען בעמוד הרלוונטי. (5) תוסף cache מגיש גרסה ישנה. השתמשו ב-Query Monitor בכדי לוודא אילו הוקים נורים (אגב).
היכן כדאי לכם לשים את קוד ההוקים של WooCommerce?
להתאמות פשוטות, הוסיפו את ההוקים לקובץ functions.php של תבנית הבת (child theme). לכל דבר שמעבר לכמה הוקים, צרו תוסף ייעודי לאתר (site-specific plugin). כך ההתאמות נשארות עצמאיות מהתבנית. לעולם אל תערכו ישירות את קבצי הליבה של WooCommerce.

לסיכום

יותר מ-2,500 הוקים של WooCommerce נותנים לכם שליטה מלאה בכל עמוד, אבל רק אם אתם יודעים באיזה הוק להשתמש והיכן הוא נורה. מפה ויזואלית זו מכסה את חמשת ה-templates המרכזיים של WooCommerce: מוצר בודד, ארכיון החנות, עגלה, תשלום ו״החשבון שלי״. כל הוק ממוקם בדיוק במקום בו הוא רץ במהלך הרינדור (הצגת העמוד), כאשר הסוג שלו, ה-priority וה-callbacks המובנים גלויים בלחיצה.

השתמשו במפה האינטראקטיבית כנקודת ייחוס בכל פעם שאתם בונים התאמות ל-WooCommerce. הוסיפו עמוד זה למועדפים – אדאג לשמור אותו מעודכן עם התפתחות מערכת ההוקים של WooCommerce, ובמיוחד ככל שיגדל אימוץ התשלום מבוסס הבלוקים.

דיון ותגובות
[  0 תגובות  ]

השאירו תגובה

הוסיפו קוד באמצעות הכפתורים מטה. למשל, בכדי להוסיף PHP לחצו על הכפתור PHP והוסיפו את הקוד בתוך השורטקוד. מצאתם שגיאה בפוסט? עדכנו אותנו...