אם אי פעם ניסיתם לשנוצ עמוד או תבנית בחנות 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 מציע שלושה מסלולים להתאמה אישית של הגרסה מבוססת הבלוקים (בשלב זה):
- הוקים שהועברו – 35 הוקים שעובדים גם בהקשר הקלאסי וגם בבלוקים, כמו הוקים לחישוב משלוח ומס והוקים של טפסי החיוב והמשלוח.
- Checkout Extensibility API – filters מבוססי JavaScript ורכיבי Slot/Fill עבור ה-Block Checkout. דורש ידע ב-webpack וב-React.
- 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:
wc-template-hooks.php לבדו רשומים 73 callbacks של הוקי template - 67 מסוג action ו-6 מסוג filter.add_action() וה-filters משתמשים ב-add_filter(). ההבדל המרכזי: filters חייבים להחזיר ערך, ואילו actions לא (כמובן).wc-template-hooks.php בתיקיית התוסף של WooCommerce בכדי לראות את כל רישומי ההוקים המובנים ואת ה-priorities שלהם.add_action() או ב-add_filter(). מספרים נמוכים רצים ראשונים. WooCommerce משתמש בקפיצות של 5 או 10 עבור ברירות המחדל שלו, למשל כותרת ב-5, מחיר ב-10 והוספה לעגלה ב-30. בכדי למקם את הקוד שלכם בין שתי ברירות מחדל, בחרו ערך priority שנמצא ביניהן.functions.php של תבנית הבת (child theme). לכל דבר שמעבר לכמה הוקים, צרו תוסף ייעודי לאתר (site-specific plugin). כך ההתאמות נשארות עצמאיות מהתבנית. לעולם אל תערכו ישירות את קבצי הליבה של WooCommerce.לסיכום
יותר מ-2,500 הוקים של WooCommerce נותנים לכם שליטה מלאה בכל עמוד, אבל רק אם אתם יודעים באיזה הוק להשתמש והיכן הוא נורה. מפה ויזואלית זו מכסה את חמשת ה-templates המרכזיים של WooCommerce: מוצר בודד, ארכיון החנות, עגלה, תשלום ו״החשבון שלי״. כל הוק ממוקם בדיוק במקום בו הוא רץ במהלך הרינדור (הצגת העמוד), כאשר הסוג שלו, ה-priority וה-callbacks המובנים גלויים בלחיצה.
השתמשו במפה האינטראקטיבית כנקודת ייחוס בכל פעם שאתם בונים התאמות ל-WooCommerce. הוסיפו עמוד זה למועדפים – אדאג לשמור אותו מעודכן עם התפתחות מערכת ההוקים של WooCommerce, ובמיוחד ככל שיגדל אימוץ התשלום מבוסס הבלוקים.

