אם יש לכם חנות ווקומרס שמוכרת בישראל, כנראה שמתם לב לתופעה: לקוחות מגיעים לעמוד התשלום, נתקעים על שדה "מיקוד", הולכים לחפש אותו באתר הדואר… וחלקם פשוט לא חוזרים. בניגוד לארה"ב או אנגליה, בישראל כמעט אף אחד לא זוכר את המיקוד שלו בעל-פה — ובעמוד תשלום, כל שדה מיותר הוא עוד סיבה לנטוש.
החדשות הטובות: אפשר לפתור את זה בשתי שורות קוד, בלי תוסף נוסף. בואו נראה איך.
לפני שמתחילים: איפה שמים את הקוד?
שני הקטעים שנציג הם קוד PHP, ויש שתי דרכים נכונות להוסיף אותו לאתר:
- תוסף Code Snippets (מומלץ) — תוסף חינמי ממאגר וורדפרס שמאפשר להוסיף קטעי קוד בצורה מסודרת: כל קטע עם שם משלו, אפשר לכבות בקליק, והקוד שורד גם עדכוני תבנית. אם קטע קוד גורם לשגיאה — התוסף מנטרל אותו אוטומטית במקום להפיל את האתר
- קובץ functions.php של תבנית הבת — הדרך הקלאסית, בתנאי שיש לכם תבנית בת (Child Theme). אם תוסיפו את הקוד ל-functions.php של התבנית הראשית — הוא יימחק בעדכון הבא שלה
מה שאסור: להדביק קוד ישירות בתבנית הראשית או לערוך קבצי ליבה. וכמו תמיד לפני נגיעה בקוד — גיבוי.
אפשרות 1: ביטול מוחלט של שדה המיקוד
הקוד הבא מסיר את שדה המיקוד לגמרי מעמוד התשלום:
// Disable zip/postcode field
add_filter( 'woocommerce_checkout_fields' , 'QuadLayers_remove_billing_postcode_checkout' );
function QuadLayers_remove_billing_postcode_checkout( $fields ) {
unset($fields['billing']['billing_postcode']);
return $fields;
}
מה הקוד עושה? ווקומרס מאפשר "להתערב" ברשימת שדות התשלום דרך פילטר בשם woocommerce_checkout_fields. הפונקציה שלנו מקבלת את רשימת השדות, מוחקת מתוכה את שדה המיקוד של פרטי החיוב (billing_postcode) באמצעות unset, ומחזירה את הרשימה בלעדיו. התוצאה: השדה פשוט לא קיים יותר בעמוד.
שימו לב: הקוד הזה מסיר את המיקוד משדות החיוב (Billing). אם החנות שלכם מציגה גם טופס משלוח נפרד (Shipping), אפשר להסיר גם משם באותה שיטה — מוסיפים בתוך הפונקציה שורה נוספת:
unset($fields['shipping']['shipping_postcode']);
אפשרות 2: להפוך את המיקוד לאופציונלי
הדרך העדינה יותר — השדה נשאר בעמוד, אבל מפסיק להיות חובה:
// Make zip/postcode field optional
add_filter( 'woocommerce_default_address_fields' , 'QuadLayers_optional_postcode_checkout' );
function QuadLayers_optional_postcode_checkout( $p_fields ) {
$p_fields['postcode']['required'] = false;
return $p_fields;
}
מה הקוד עושה? כאן אנחנו משתמשים בפילטר woocommerce_default_address_fields, ששולט בהגדרות ברירת המחדל של שדות הכתובת. הפונקציה משנה את המאפיין required של שדה המיקוד ל-false — כלומר: מי שיודע את המיקוד יכול למלא, מי שלא — ממשיך לתשלום בלי עיכוב. הכוכבית האדומה של "שדה חובה" נעלמת.
אז מה עדיף — לבטל או להפוך לאופציונלי?
ההמלצה שלנו ברוב החנויות בישראל: אופציונלי, ולא ביטול מוחלט. הסיבה: חלק מחברות המשלוחים והשליחים בישראל כן משתמשות במיקוד למיפוי כתובות ולחישוב אזורי חלוקה, ולקוח שכן יודע את המיקוד שלו רק משפר את דיוק המשלוח. אופציונלי נותן לכם את שני העולמות — אף לקוח לא נתקע, ומי שיש לו את המידע מוסיף אותו.
ביטול מוחלט מתאים כשהמיקוד באמת לא משרת אתכם בכלום: מוצרים דיגיטליים, איסוף עצמי, או משלוחים שמבוססים על עיר בלבד.
רגע לפני שמסיימים: 2 בדיקות חובה
- בדקו שאזורי המשלוח לא מבוססים על מיקוד — בהגדרות ווקומרס ← משלוחים, ודאו שאזורי המשלוח שלכם מוגדרים לפי מדינה/עיר ולא לפי טווחי מיקוד. אם הגדרתם דמי משלוח לפי מיקוד והסרתם את השדה — חישוב המשלוח יישבר
- בצעו הזמנת בדיקה מלאה — אחרי הוספת הקוד, עברו בעצמכם את כל תהליך הרכישה עד לאישור ההזמנה. גם בדסקטופ וגם במובייל, ששם רוב הרכישות קורות
אותו עיקרון, אגב, נכון לכל עמוד התשלום: כל שדה שאתם לא באמת צריכים (חברה, כתובת שנייה) הוא חיכוך מיותר. עמוד תשלום רזה וממוקד הוא אחד השיפורים הזולים והאפקטיביים ביותר לאחוזי ההמרה — וזה בדיוק סוג האופטימיזציות שאנחנו מטמיעים בכל פרויקט של בניית אתר מכירות.
שאלות נפוצות
הוספתי את הקוד והשדה עדיין מופיע. למה?
הסיבות הנפוצות: קאש — נקו את זיכרון המטמון של האתר ושל הדפדפן; תוסף שמעצב מחדש את עמוד התשלום (כמו עורכי Checkout ייעודיים) שדורס את ההגדרה; או שהקוד הודבק במקום הלא נכון. נסו קודם ניקוי קאש — זה פותר את רוב המקרים.
האם השינוי ישפיע על הזמנות קיימות?
לא. הקוד משנה רק את הטופס שמוצג מרגע ההוספה והלאה — הזמנות ישנות שומרות את כל הנתונים שהוזנו בהן.
אפשר לעשות את זה בלי קוד בכלל?
כן — יש תוספים ייעודיים לעריכת שדות התשלום (Checkout Field Editor למשל). אבל בשביל שינוי בודד כזה, שתי שורות קוד ב-Code Snippets עדיפות על עוד תוסף שלם שרץ באתר ומכביד עליו.
האם זה עובד גם עם עמוד תשלום שעוצב באלמנטור?
כן — ווידג'ט התשלום של אלמנטור פרו מציג את השדות שווקומרס מגדיר, כך שהקוד משפיע גם עליו. אם השדה בכל זאת מופיע, בדקו שאין דריסה בהגדרות הווידג'ט עצמו.