ภาพรวม
ระบบอีเวนต์เป็นฟีเจอร์ของเครื่องมือการจองที่ช่วยให้การสื่อสารกับบุคคลอื่นและโปรแกรมภายนอกเป็นไปได้ ซึ่งช่วยให้ผู้ใช้ได้รับการอัปเดตหรือทำงานบางอย่างโดยอัตโนมัติเมื่อใช้เครื่องมือการจอง โดยการเพิ่มคำสั่งเฉพาะในการตั้งค่า ระบบจะจัดการที่เหลือให้
บทความนี้เป็นแหล่งอ้างอิงสำหรับการเชื่อมต่อกับบุคคลที่สาม ช่วยให้คุณเชื่อมต่อและใช้ระบบอีเวนต์ได้อย่างมีประสิทธิภาพ
ข้อจำกัดของโค้ดที่กำหนดเอง & หมายเหตุการบำรุงรักษา
- หมายเหตุ: ขั้นตอนที่ให้ไว้ที่นี่เป็นแหล่งข้อมูลเพิ่มเติมสำหรับผู้ที่คุ้นเคยกับ HTML และ CSS แล้ว; แนะนำเฉพาะสำหรับ ผู้พัฒนาเว็บที่มีประสบการณ์.
- เนื่องจากผลิตภัณฑ์ของ Cloudbeds และเครื่องมือการจองยังคงพัฒนา การปรับแต่งที่ทำเอง อาจล้าสมัยหรือจำเป็นต้องทำงานเพิ่มเติม เมื่อเทคโนโลยีพัฒนา นี่เป็นส่วนปกติของการบำรุงรักษาอย่างต่อเนื่อง และ เราไม่สามารถสนับสนุน ฟังก์ชันการทำงานของโค้ดที่กำหนดเองได้
- ความรับผิดชอบของผู้ใช้และคำแนะนำ
- ทดสอบพฤติกรรมของโค้ดหลังการปรับใช้งาน ทั้งใน เวอร์ชันเดสก์ท็อปและมือถือ
- ตรวจสอบให้แน่ใจว่าโค้ด ได้รับการอัปเดตเป็นประจำ เพื่อรักษาฟังก์ชันการทำงาน และลบโค้ดที่ล้าสมัยออก
- Cloudbeds ไม่ ให้ความช่วยเหลือเกี่ยวกับการออกแบบ/พัฒนาเว็บไซต์โรงแรม หรือการปรับแต่งที่ไม่ได้จัดทำโดยบริการ การปรับแต่ง ของเรา
วิธีการใช้ระบบอีเวนต์อีมิตเตอร์
- ไปที่หน้า การตั้งค่า
ในเมนู บัญชี
และคลิกที่ส่วน เครื่องมือการจอง
- คลิกที่ ปรับแต่ง
-
เพิ่มโค้ดด้านล่างลงในฟิลด์ JavaScript
ในการใช้ระบบอีเวนต์ คุณต้องเพิ่มตัวฟังอีเวนต์สำหรับอีเวนต์ on-booking-engine-ready ซึ่งจะเปิดเผย eventSystem ดังนี้:<script> window.addEventListener('on-booking-engine-ready', (e) => { const { eventSystem } = e.detail; }); </script> - คลิก บันทึก
-
ระบบ eventSystem ใช้งานฟังก์ชัน IExternalEventSystem:
interface IExternalEventSystem { addEventListener: ( event: EventType, listener: (payload: PayloadOf<EventType>) => void ) => void; dispatchEvent: (event: EventType, payload: PayloadOf<EventType>) => void; removeEventListener: ( event: EventType, listener: (payload: PayloadOf<EventType>) => void ) => void; }โดยที่ EventType หมายถึงประเภทของอีเวนต์ที่เราสามารถกระตุ้นหรือฟังได้ และ PayloadOf<EventType> หมายถึงเพย์โหลดที่ถูกส่งมาพร้อมกับอีเวนต์
อีเวนต์ที่ถูกส่งโดยเครื่องมือการจอง
- currency-change อีเวนต์:
อีเวนต์นี้จะถูกกระตุ้นเมื่อผู้ใช้เปลี่ยนสกุลเงินของเครื่องมือการจองจากตัวเลือกสกุลเงินในส่วนหัว ค่า currency ใน payload คือคำย่อของสกุลเงินที่เลือก ซึ่งเหมือนกับที่ปรากฏในพารามิเตอร์ currency ของ URL
export type CurrencyChangeEvent = {
event: 'currency-change';
payload: { currency: Currency };
};- language-change อีเวนต์:
อีเวนต์นี้จะถูกกระตุ้นเมื่อผู้ใช้เปลี่ยนภาษาในเครื่องมือการจองจากตัวเลือกภาษาในส่วนหัว ค่า languageในเพย์โหลดคือคำย่อของภาษาที่เลือก ซึ่งเหมือนกับที่ปรากฏใน URL
type LanguageChangeEvent = {
event: 'language-change';
payload: { language: Language };
};- reservation-created อีเวนต์:
อีเวนต์นี้จะถูกกระตุ้นเมื่อมีการสร้างการจองในเครื่องมือการจอง
type ReservationCreatedEvent = {
event: 'reservation-created';
payload: CreatedReservation;
};เมื่อ CreatedReservation คือ:
interface CreatedReservation {
booking_id?: `${number}`;
booking_total?: number;
checkin_date?: string;
checkout_date?: string;
city?: string;
currency_code?: string;
hotel_name?: string;
real_booking_total?: number;
resRooms?: {
adults: `${number}`;
id: `${number}`;
kids: `${number}`;
package: `${number}`;
package_name: string | null;
rate_id: `${number}`;
room_total: `${number}`;
room_type_id: `${number}`;
room_type_name: string;
room_type_photos: ({
TYPE?: string;
alt: string;
cropParam: string | null;
croppedImage: string;
fullPath: string;
galleryPath?: string | null;
id: string;
imageHeight: string;
imageWidth: string;
mime?: string;
originalName: string;
ownerId?: string;
ownerType?: string;
parentId: string;
path: string;
section?: string;
size?: string;
thumbPath: string;
uploadedAt?: string;
utype?: string;
} & {
featured: number;
featuredPath: string | null;
})[];
}[];
rooms?: Record<string, {
adults: number;
amount: number;
bookedId: string[];
kids: number;
name: string;
packageId?: string;
packageName?: string;
picture?: string;
price?: number;
rateId: string;
roomId: string;
unit?: string;
}>;
state?: string;
total_tax?: number;
widget_property?: number;
};อีเวนต์ที่เครื่องมือการจองสมัครสมาชิก
- custom-payment-option-change
อีเวนต์นี้ใช้สำหรับที่พักที่ต้องการใช้ตัวเลือกการชำระเงินแบบกำหนดเองเพื่อเสนอให้กับลูกค้า
type CustomPaymentOptionChangeEvent = {
event: 'custom-payment-option-change';
payload: {
id: string;
instructions?: string;
name: string;
};
};ตัวอย่างการใช้งาน Event Emitter: ตัวเลือกการชำระเงินแบบกำหนดเอง & บัตรของขวัญ
เพื่อเรียนรู้วิธีการที่ระบบอีเวนต์ถูกใช้งานในทางปฏิบัติ ดูที่: เพิ่มช่องทางการชำระเงินของบุคคลที่สามและบัตรของขวัญไปยังเครื่องมือการจอง.
ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น