Set it up once.
Run your own bookings.
Install the customer plugin, activate your website and prepare your booking pages, team and hosting.
PayFast + Stitch · v0.9.1
1. Before installation
- WordPress 6.5 or newer, PHP 8.2 or newer, OpenSSL, and MySQL/MariaDB with InnoDB tables.
- A working HTTPS website and a backup of both files and database.
- Permission to create WordPress pages, manage users and configure a minute-based hosting scheduler.
- Your own eligible merchant, WhatsApp Business Platform, Google and email accounts for the connections you choose.
WooCommerce is optional for the built-in inventory and native checkout. If you choose WooCommerce checkout, install WooCommerce and its compatible payment gateway extensions first.
2. Purchase, download and activate
- When purchases are open, choose the annual plan on the product page and open the Hey George account.
- Verify your email and complete the authorised PayFast checkout. Wait for the account to show a verified payment.
- After confirmed payment, open My account → My plugins. Your download and activation key appear here alongside your other Hey George plugins.
- Copy the activation key and download the customer plugin ZIP.
- In WordPress, open Plugins → Add New Plugin → Upload Plugin, upload the ZIP, install and activate it.
- Open Ubuntu Booking's workspace as the owner, choose Product key, enter the key and save.
Install only the customer Ubuntu Booking plugin. Publisher licensing and connector companions run on the publisher's service and do not belong on client websites.
Use Check annual renewal now to refresh paid entitlement manually. The plugin also checks periodically and verifies signed updates. To move your licence, choose Deactivate site in your Hey George account, then enter the same activation key on the new website. The old website loses its paid connection entitlement at its next licence check.
Annual renewal cancellation stops future billing while retaining the paid term. Existing booking records and staff access remain available after licence expiry. The licence terms describe the commercial service.
3. Configure your business
- Open
/?ub_manager=1on your website and sign in as the owner. - Use Setup guide to choose a starting business type. Mixed businesses can create more than one offer type.
- Under Payments, select native or WooCommerce checkout and the booking currency before entering prices.
- Create the entries under What you offer, including capacity, timezone, hours and preparation rules.
- Set your own privacy, cancellation, tax and retention policies before collecting customer details.
New sites default to native checkout. Upgrades can retain WooCommerce checkout; changing the selection affects new bookings, while existing bookings retain their original payment owner.
4. Create booking and workspace links
- Create a public WordPress page and add a Shortcode block containing
[ubuntu_booking]. - Alternatively use the Bookable products block for an inventory-card layout and its booking form or booking-page link.
- Publish the page and add it to your website navigation.
- Add a clearly labelled team link to
/?ub_manager=1or use[ubuntu_booking_manager]. - For staff tablets, bookmark
/?ub_manager=1&ub_staff=1&tab=service.
These addresses are relative to each client's own website. Do not send customers or staff to the publisher account as their booking workspace.
5. Give your team appropriate access
Create an individual account under WordPress → Users for each person. Avoid shared passwords.
| Role | Use |
|---|---|
| Website Administrator / owner | Offers, connection credentials, product key, staff setup and branding, plus operational access. |
| Booking Manager | Reservations, permitted operational changes and the manager workspace. Owner-only setup remains restricted. |
| Booking Staff | Focused front-end planner and permitted start/finish actions. No payment, pricing, connection or WordPress administration access. |
Staff sign-in opens the planner. Owners can select Open staff view to preview that restricted interface without changing their role.
6. Configure the hosting scheduler
The plugin schedules its ub_tick work every minute. WordPress traffic-triggered cron alone can leave a quiet site's replies, payment checks and expired holds delayed.
- Ask your hosting provider for the correct PHP CLI path and WordPress installation path.
- Add a hosting cron job that runs WordPress cron once per minute. Replace both paths in the example below.
- Run it manually once and confirm it succeeds. Check the last worker time in System health.
- Test a new sandbox booking and delayed jobs without repeatedly visiting the website.
- Only after the hosting job is proven, consider disabling WordPress's traffic-triggered cron to avoid duplicate scheduling triggers.
* * * * * /usr/bin/php /home/ACCOUNT/public_html/wp-cron.php >/dev/null 2>&1This is a hosting example, not a path to copy unchanged. Your host may use another PHP binary or WP-CLI. The immediate signed worker reduces WhatsApp delay where loopback requests are supported; the minute job remains the retry fallback.
7. Configure caching and backups
Exclude private workspace, checkout and payment-return requests from full-page/CDN caching: ub_manager, ub_pay and ub_payment_return query parameters, and private /ub/v1 API responses. Keep public provider webhooks reachable over HTTPS.
Back up files, database and WordPress configuration securely. The database contains booking/customer information and encrypted secrets. Changing WordPress salts requires reconnecting integrations. Deactivating or removing the plugin preserves booking data; use privacy tools and retention policies for deliberate erasure.
8. Test before opening bookings
- Complete one free reservation and, if charging, one genuine sandbox payment with a verified provider notification.
- Try an unavailable date and confirm the reservation cannot exceed capacity.
- Book a linked rental item and verify it is reserved and released with the correct lifecycle.
- Sign in as Booking Staff and verify the planner is accessible without owner controls.
- Receive a real email, finish a real WhatsApp conversation, and inspect a real Calendar event if using those integrations.
- Verify abandoned checkout expiry and review an uncertain payment without submitting a duplicate charge.
- Switch merchant credentials to the correct live account only after provider approval and controlled acceptance.
Detailed instructions are in the connection guide. A saved credential or a green account-read check alone does not prove the full customer workflow.
9. Update safely
Back up and test a new release on staging first. With active paid entitlement, use the protected account download or a verified WordPress update offered by the signed release service. Do not replace the plugin with the publisher companions.
Keep a matched database/file backup for rollback after schema changes. If an update or entitlement check fails, contact support with versions and the error text, keeping keys and credentials private.
Hey George · Ubuntu Booking · Documentation for v0.9.1 · Updated 14 October 2026