לקוח משיק שירות השכרת ציוד — שבוע לאחר מכן, שני אנשים הזמינו את אותו פריט לאותה שעה. נשמע מוכר? אנחנו נתקלים במקרים כאלה כל הזמן. WooCommerce Bookings הוא תוסף שהופך מוצר רגיל למשאב בר-הזמנה עם לוחות זמנים, זמינות וחוקים. הוא פותר הזמנות כפולות ותיאום ידני של משבצות. אבל ללא הגדרה נכונה, הוא יוסיף כאבי ראש במקום סדר. במהלך עבודתנו, הגדרנו את WooCommerce Bookings ליותר מ-50 פרויקטים — מסלוני יופי ועד השכרת ציוד. זמן החיסכון הממוצע בניהול הזמנות לאחר היישום הוא עד 10 שעות בשבוע, תוך הפחתת עלויות כוח אדם ב-30–40%. בפרויקט אחד עם 15 משאבים ו-20 משבצות ביום, תיאום ידני לקח 5 שעות בשבוע, לאחר אוטומציה — 20 דקות. זה פי 15 מהר יותר. הניסיון שלנו מבטיח שמערכת ההזמנות שלך תעבוד ללא תקלות. קבלו ייעוץ לתרחיש שלכם.
מודל וסוגי הזמנות
Bookings עובד עם שלוש ישויות:
-
Bookable product— מוצר עם משבצות ומחירים מוגדרים -
Booking— רשומה ספציפית: מי, מתי, איזה מוצר, סטטוס -
Resource— משאב נוסף המקושר למוצר (למשל, מאסטר או חדר ספציפי)
הנתונים מאוחסנים ב-wp_posts (סוג wc_booking) וב-wp_postmeta. לוח הזמינות נמצא בשדה meta _wc_booking_availability. התוסף תומך בעד 20 חוקי זמינות למוצר.
סוגי הזמנות
| סוג | יישום |
|---|---|
| בלוקים קבועים | משבצות בגודל קבוע (30 דקות, שעה) |
| מוגדר על ידי הלקוח | הלקוח בוחר משך זמן שרירותי |
| משך קבוע בימים | לילות במלון, ימי השכרה |
להשכרה יומית: duration = 1 day, min duration = 1, max duration = 14. העלות מוכפלת במספר הלילות.
הגדרת חוקי זמינות: איך להימנע מטעויות?
הזמינות מוגדרת באמצעות קבוצת חוקים עם עדיפויות:
Rule 1: All days → Bookable (приоритет низкий)
Rule 2: Saturday, Sunday → Not bookable
Rule 3: 31 декабря → Not bookable (праздник)
Rule 4: Monday 09:00–18:00 → Bookableהחוקים מעובדים בסדר עדיפות יורד. סינון דרך hook:
add_filter( 'wc_bookings_product_is_available', function( $is_available, $start, $end, $qty, $product ) {
// кастомная логика: проверить внешний календарь, CRM и т.д.
return $is_available;
}, 10, 5 );לעתים קרובות אנו משתמשים ב-hook זה לשילוב עם מערכות חיצוניות — למשל, כדי לא למכור משבצות אם כבר קיימת רשומה ב-CRM. לפי התיעוד הרשמי, ה-hook מאפשר להרחיב את לוגיקת בדיקת הזמינות הסטנדרטית.
למה משאבים קריטיים לשירותים?
משאבים הם יחידות זמינות עצמאיות של מוצר אחד. דוגמה: שירות "תספורת" עם משאבים "מאסטר אנה" ו"מאסטר סרגיי". לכל משאב יש לוח זמנים משלו והוא יכול להוסיף תוספת למחיר. ללא משאבים, לקוח יכול להזמין את אותה תספורת משני מאסטרים בו זמנית — אסון. אנחנו תמיד מגדירים Rule 1: All days → Bookable (приоритет низкий) Rule 2: Saturday, Sunday → Not bookable Rule 3: 31 декабря → Not bookable (праздник) Rule 4: Monday 09:00–18:00 → Bookable לשירותים שבהם החלוקה חשובה. הפרמטר add_filter( 'wc_bookings_product_is_available', function( $is_available, $start, $end, $qty, $product ) { // кастомная логика: проверить внешний календарь, CRM и т.д. return $is_available; }, 10, 5 ); מאפשר בחירת מספר אנשים, has_resources = true / has_persons: true מגבילים את הטווח. המחיר יכול להיות מחושב מחדש לאדם. בפרויקט אחד בנינו מערכת הזמנות לסאונות: משאבים — חדרי אדים שונים, אנשים — מספר אורחים. הכל עבד ללא קונפליקטים.
שילוב והתראות
סנכרון Google Calendar
Bookings תומך בסנכרון דו-כיווני עם Google Calendar דרך התוסף הרשמי WooCommerce Bookings — Google Calendar. הסכימה:
- הזמנה חדשה → יוצר אירוע ב-Google Calendar דרך Calendar API
- אירוע ב-Google Calendar → בסנכרון הבא חוסם משבצת ב-Bookings
נדרש Google Cloud Console: פרויקט, אישורי OAuth 2.0, Calendar API מופעל. הסנכרון רץ דרך WP-Cron כל 15 דקות או ידנית מההגדרות:
// Принудительный запуск синхронизации do_action( 'wc-booking-gcal-sync' ); התראות
התוסף מוסיף מספר סוגי דוא"ל ב-WooCommerce → הודעות דוא"ל:
-
min_persons— למנהל בעת יצירה -
max_persons— ללקוח בעת אישור -
// Принудительный запуск синхронизации do_action( 'wc-booking-gcal-sync' );— ללקוח N שעות לפני התחלה (ניתן להגדרה, ברירת מחדל 24 שעות) -
New Booking— בעת ביטול
תזכורות מיושמות דרך Action Scheduler — משימות מתוזמנות בעת אישור ההזמנה.
שדות מותאמים אישית
// Добавить поле выбора мастера перед бронированием
add_filter( 'woocommerce_booking_form_fields', function( $fields, $product ) {
$fields['preferred_master'] = [
'type' => 'select',
'label' => 'Предпочтительный мастер',
'options' => [
'' => 'Любой',
'anna' => 'Анна',
'sergey' => 'Сергей',
],
];
return $fields;
}, 10, 2 ); בעיות נפוצות ופתרונות
- משבצות לא מופיעות בחזית — לרוב אי-התאמה באזור זמן: WordPress מוגדר ל-UTC, בעוד חוקי הזמינות מוגדרים בזמן מקומי. בדקו: הגדרות → כללי → אזור זמן צריך להתאים לציפיות הלקוח.
- הזמנה כפולה של משבצת אחת —
Booking ConfirmedאוBooking Reminderלא מוגדרים. ללא משאבים ועםBooking Cancelled, הגדירו במפורש// Добавить поле выбора мастера перед бронированием add_filter( 'woocommerce_booking_form_fields', function( $fields, $product ) { $fields['preferred_master'] = [ 'type' => 'select', 'label' => 'Предпочтительный мастер', 'options' => [ '' => 'Любой', 'anna' => 'Анна', 'sergey' => 'Сергей' ], ]; return $fields; }, 10, 2 );(מקסימום הזמנות למשבצת).
תהליך ההגדרה וציר הזמן
הגדרת מוצר שירות אחד עם לוח זמנים פשוט לוקחת יום עסקים אחד. משאבים מרובים, Google Calendar, שדות מותאמים אישית, לוגיקת תמחור מבוססת תאריכים — 3–4 ימים.
מה כלול?
- הגדרת מוצרים וחוקי זמינות לעסק שלך
- שילוב עם Google Calendar ומערכות חיצוניות
- שדות מותאמים אישית והתראות
- תיעוד מלא והדרכת צוות
- אחריות על כל העבודה ותמיכה לאחר ההשקה
צרו קשר להערכה מדויקת של הפרויקט שלכם. קבלו ייעוץ לתרחיש שלכם.







