
內容簡介
Robina 是一款免費的開源預約與訂位外掛,專為希望擁有高效預約系統的服務業者設計,無需訂閱費用。它以服務和資源為中心,提供靈活的預約選項,讓使用者能輕鬆管理預約流程。
【主要功能】
• 前端預約小工具,支援多步驟流程
• 容量感知的可用性計算
• 群組課程,支援多人同時預約
• 前端課程時間表,顯示即將到來的課程
• 可選擇的員工與地點管理
• 原生 WordPress 控制台整合
外掛標籤
開發者團隊
原文外掛簡介
Robina is a free, open-source booking and appointment plugin for WordPress, built for service businesses that want a capable booking system without subscription fees. It is service- and resource-centric: the bookable unit is a service with its own availability, while staff, locations and resources are optional layers you add only if you need them.
Highlights
Front-end booking widget (Vue 3). A clean multi-step wizard — Service, Date & time, Details, Confirm — added to any page with the [robina_booking_form] shortcode, or as a popup button with [robina_booking_button].
Capacity-aware availability. Slots are computed from your business hours, slot step and buffers. Assign staff to a service and each one adds a parallel slot; a staff member booked anywhere counts as busy. With no staff, a service has a single capacity per location.
Group classes. Give a service a capacity above 1 (say 20 or 40 — there is no upper limit) and several customers can book the same session until it fills up — ideal for classes, workshops and large group sessions.
Front-end class schedule. Show a public timetable of upcoming classes with the [robina_schedule] shortcode — visitors switch between an Agenda list and a Month calendar grid, each session lists the seats left and links straight into booking. Give a service a weekly schedule (e.g. Monday 18:00), one-time sessions on specific dates (a workshop on 4 October at 10:00), or both, to put it on the timetable.
Staff (optional). Tag the people who provide a service, pin them to one or more locations, and give them their own weekly hours. When a customer picks a location, only the staff who work there are offered.
Locations (optional). Offices or branches with their own optional weekly hours; each service declares where it is available.
Native WordPress admin. A branded Catalog (services, categories, resources), a Month/Week/Day Calendar with in-place booking creation, plus Bookings, Customers, Staff and Locations screens — all in plain WordPress UI.
Editable email notifications to the owner and the customer — confirmation, awaiting confirmation, reminder and cancellation. Rewrite each one under Robina → Notifications with placeholders and a live preview, sign them with your business name and logo, and send yourself a test. Optional reminders go out a set number of hours before the appointment.
Customer self-cancellation. The confirmation email carries a personal cancel link, so a customer can free their seat themselves — instantly bookable again by someone else. Set a cancellation window (e.g. up to 12 hours before) or switch it off.
Days off and booking notice. Mark single dates a service does not run (holidays, a break) and close booking a set number of minutes before the start time.
Optional online payments — Pay on site, WooCommerce, Stripe or PayPal (see “External services” below). Leave them all off for free bookings.
Self-contained and private. No external CDNs and no trackers; the phone-input flags and every front-end asset ship inside the plugin. Uninstalling removes Robina’s tables and options.
Service-centric by design
Robina deliberately keeps availability on the service, not on a mandatory “employee”. Staff, locations and resources are optional capacity and scope layers, so Robina also suits non-staff models such as equipment rental or table booking.
External services
By default Robina works entirely on your own site and contacts no third party. It only talks to an external service when you, the admin, enable and configure a payment gateway, and only when a customer actually chooses to pay with it. No data is sent anywhere otherwise — Robina has no “home” server and sends no telemetry or analytics.
Stripe — used only when you enable “Stripe” and enter your API keys. When a customer pays by card, Robina creates a Stripe Checkout Session and redirects the customer to Stripe’s hosted payment page, and it receives Stripe webhooks to confirm payment. Data sent to Stripe: the booking amount, currency, a short description and the customer’s email. Card details are entered on Stripe’s site, never on yours.
Terms: https://stripe.com/legal — Privacy: https://stripe.com/privacy
PayPal — used only when you enable “PayPal” and enter your client ID and secret. When a customer pays with PayPal, Robina creates a PayPal order, redirects the customer to PayPal to approve it, then captures it on return. Data sent to PayPal: the booking amount, currency and a reference id.
Terms: https://www.paypal.com/legalhub/home — Privacy: https://www.paypal.com/legalhub/privacy-full
WooCommerce (optional, local) — if you enable WooCommerce checkout and WooCommerce is installed, Robina creates a pending WooCommerce order and hands payment off to WooCommerce. Robina makes no external call itself; any outbound requests are made by WooCommerce and its own gateways under their policies.
Map link — a location’s address is turned into a plain “view on map” link to Google Maps (https://www.google.com/maps/search/…). It is only a link: nothing is transmitted and no map is loaded unless a visitor clicks it.
Source code
Robina is fully open source (GPLv2+). The front-end widget is compiled with Vite from the Vue source that ships inside the plugin under /resources. The build files (package.json, package-lock.json, vite.config.js) are bundled too, so the compiled assets in /assets/dist can be regenerated from source with:
npm install && npm run build
Bundled third-party libraries (installed via npm, both MIT-licensed):
Vue 3 (^3.4) — https://github.com/vuejs/core
intl-tel-input (^29.0) — https://github.com/jackocnr/intl-tel-input
