Help Center

JavisTab Help & Documentation

Everything you need to run JavisTab,
from install to launch night.

The complete setup guide for the JavisTab Booking Pro WordPress plugin — installation, shortcodes, floor plan, payments (VietQR · Stripe · PayPal · OnePay · Square), CRM & loyalty, and every option in Settings.

Plugin v5.9.14 · Updated May 19, 2026 WordPress 5.8+ PHP 7.4+ MySQL 5.7+ 13 languages supported
K
S
Sarah Mitchell · 4 guests
Table 5 · Tonight 7:30 PM
Paid
WA
Reminder sentvia WhatsApp · 2 min ago

Section 01 — Getting StartedInstall JavisTab in 5 minutes

JavisTab is a standard WordPress plugin. No developer required, no server configuration. If WordPress is already running, follow the six steps below — you’ll be taking bookings before the kettle boils.

System requirements

Environment

JavisTab runs on shared hosting, VPS, and managed platforms (WP Engine, Kinsta, SiteGround, Cloudways) without custom server configuration. WooCommerce is not required.

  • WordPress 5.8 or newer
  • PHP 7.4+ (8.1+ recommended)
  • MySQL 5.7+ or MariaDB 10.3+
  • HTTPS required for payment gateways
  • Outbound HTTPS for license verification (api.digitalzila.com)

Installation

Download the plugin ZIP

Register at javistab.com — you receive javis-bookingpro.zip and a license key by email within 60 seconds.

Upload via WordPress admin

WordPress Admin → Plugins → Add New → Upload Plugin. Choose the ZIP, click Install Now, then Activate.

Database auto-creates

On activation, all required tables are created automatically — bookings, customers, payments, vouchers, loyalty, waitlist, email log. No manual SQL needed.

Open the Booking Pro menu

A new Booking Pro entry appears in the WordPress sidebar with all sub-pages: Dashboard, Bookings, Settings, License, etc.

Activate your license

Go to Booking Pro → 🔑 License, paste your key and the purchase email, click Activate. Or start a free 15-day trial — no key needed.

Run the setup wizard

The wizard walks you through restaurant name, currency, opening hours, first floor plan, and your first time-slot — about 4 minutes end-to-end.

Free 15-day trial · no credit card

Open the License page and click 🎁 Start 15-day Free Trial. JavisTab auto-generates a trial key bound to your domain — full access to booking form, floor plan and all four payment gateways. CRM, loyalty & SMS unlock on paid plans from $19.90 / 30 days.

Where to find your license key

The license key is sent to the email you registered with, in the order titled “Your JavisTab license is ready”. If you upgraded later, the key in your account dashboard at javistab.com/account always reflects the active tier.

First-run setup wizard

The wizard at ?page=rbp-wizard bundles the six steps every restaurant needs before going live:

StepWhat you set
1. Business profileRestaurant name, address, timezone, currency, default language.
2. Opening hoursWeekly schedule, holidays, max advance booking days, lead time.
3. Floor planDrag & drop rooms and tables (square, round, booth), seat counts.
4. Time slotsLunch / dinner shifts, capacity mode (by_tables or by_guests).
5. PaymentsPick at least one gateway. VietQR works without a merchant account.
6. NotificationsEmail sender, optional SMS or WhatsApp provider.

Section 02 — ShortcodesDrop a shortcode anywhere

Every JavisTab front-end widget is a shortcode. Paste into a Gutenberg block, Classic editor (Text/HTML mode), Elementor’s Shortcode widget, or Divi’s Code module — JavisTab renders instantly. Each shortcode is fully self-contained: it brings its own styles, scripts and REST endpoints.

i
Reading the shortcodes below

Throughout this guide, shortcode names are shown with a hyphen — e.g. [rbp_booking-form] — so WordPress doesn’t render them as live widgets inside this documentation page. When you paste a shortcode into your own page, replace the hyphen with an underscore: [rbp_booking-form][rbp_booking-form]. The Copy button on each example already gives you the working underscore version.

Per-page language override. Force a specific language on any individual page regardless of the global plugin setting:

[rbp_booking-form lang="en"]
[rbp_booking-form lang="vi"]
[rbp_booking-form lang="fr"]     // also: zh, zh_TW, ja, ko, de, es, it, id, pt, pt_BR
Front-end · Primary

Booking form

The main reservation form — date/time picker, guest count, package selection, integrated payment. Multi-step (date → slot → table → details → payment), fully responsive.

Attributes
restaurant_id, lang
Skins
Standard · Luxury
Endpoints
POST /rbp/v1/bookings
booking-form.html
// default
[rbp_booking-form]

// pick a restaurant + force French locale
[rbp_booking-form restaurant_id="2" lang="fr"]
Self-service

Booking lookup

Customers paste their reference code (e.g. RBP-ABCDEF-123) and see live booking status — no login required. They can also self-cancel within your cancellation window.

Attributes
None
Endpoints
GET /rbp/v1/bookings/{ref}
Use case
Cut inbox 60%+ on lookup tickets
lookup.html
[rbp_booking-lookup]
Live status

Table / floor plan

Renders your saved floor plan with live status colour-coded per table — Available, Booked, Locked, Seated. Read-only for guests; interactive for admins.

Attributes
restaurant_id, date
Alias
[rbp_resource-allocation]
Refresh
Auto-polls every 30 s
floor-plan.html
[rbp_table-layout restaurant_id="1"]

// new alias (same widget):
[rbp_resource-allocation date="2026-06-15"]
Floor 1 · Main Dining · 7:30 PM
T1
T2
T3
T4
T5
T6
T7
T8
T9
T10
T11
T12
Free Booked Seated Locked
June 2026
Mo
Tu
We
Th
Fr
Sa
Su
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
Calendar view

Availability calendar

Monthly grid showing fully-booked vs open dates at a glance. Helps guests pick a date before committing to a time slot.

Attributes
restaurant_id
Modes
by_tables · by_guests
Endpoints
GET /rbp/v1/availability
availability.html
[rbp_availability-calendar]

// REST equivalent (mobile app integration):
GET /wp-json/rbp/v1/availability?restaurant_id=1&date=2026-06-15
Post-booking

Confirmation page

Place this on the page guests land on after submitting the form. Reads the booking ref from the URL and shows the full summary with “Add to Calendar” (ICS) and a voucher link.

Attributes
None
URL param
?ref=RBP-XXXXX-NNN
confirmation.html
[rbp_booking-confirmation]
Utilities

Currency & language switcher

Drop these anywhere — header, sidebar, footer. The currency switcher fires the rbp_currency_changed custom event; WOOCS-aware code listens automatically.

Style
buttons · dropdown
Align
left · center · right
switchers.html
[rbp_currency-switcher style="dropdown"]
[rbp_currency-switcher show_flag="1" align="right"]

[rbp_lang-switcher]

Section 03 — SettingsConfigure the booking engine

Every option lives under Booking Pro → Settings. Changes save instantly; the front-end picks them up on the next page load. No cache flush needed.

General

SettingPurposeDefault
restaurant_nameShown in emails, vouchers, invoices, the booking form header.
timezoneAll booking times are stored UTC and displayed in this zone.Site default
currencyBase currency for prices, invoices & deposits.VND
default_languageFallback when no lang= override is set on the shortcode.en
capacity_check_modeby_tables for à-la-carte; by_guests for buffet / set menu.by_tables
full_slot_labelText shown when a time slot is sold out.“Fully booked”

Time slots

A slot is a serving window (e.g. Lunch 12:00, Dinner 18:30). Create one per shift and choose how capacity is counted:

  • by_tables — the slot is full when all tables for that slot are booked. Standard à la carte.
  • by_guests — the slot is full when total guests reach max_guests. Buffet, brunch, set menu.

Floor plan

Drag-and-drop editor lets you build a pixel-accurate map of your venue. Tables snap to a 20px grid; round / square / booth shapes; per-table seat count, minimum party size, deposit override. Multi-floor and multi-room supported out of the box.

i
Live status colours

The floor plan auto-polls every 30s. Green = available · gold = booked · slate = locked · sage = seated. Status updates the moment a reservation is confirmed — no double-booking, no “shouting across the room” to check capacity.

Booking rules

RuleDescription
lead_time_minutesMinimum minutes between submission and reservation time (e.g. block bookings less than 60 min ahead).
max_advance_daysHow far in the future guests can book. 90 days is a sensible default.
cancellation_window_hoursGuests can self-cancel via the Lookup widget within this window — outside, contact required.
min_party_size / max_party_sizeGlobal guards. Per-table overrides also supported.
deposit_required_aboveParty size threshold (e.g. ≥ 8 guests) at which a deposit becomes mandatory.
blacklist_blockAuto-reject bookings from emails / phone numbers flagged in CRM.

Packages & services

Sell set menus, tasting menus, brunch packages, classes or any “bookable thing”. Each package has a name, description, image, price-per-guest (or flat), eligibility rules (which days / slots), and an optional capacity cap.

Design & skin

Two skins ship in the box, both 100% white-label.

Standard

Clean modern minimal — neutral palette, neutral typography. Matches any theme.

Luxury Heritage

Parchment + burgundy + bronze. Playfair Display + Cormorant Garamond + Jost. Designed for fine-dining brands.

Both inherit your brand colour, border radius, button shape and slot-card colour from Settings → Design.


Section 04 — PaymentsSix gateways. Zero added fees.

JavisTab charges zero transaction fees on top of your gateway’s own rates — unlike many competing plugins that add 2–3% surcharge. Pick any combination; guests choose at checkout.

VietQR Stripe PayPal OnePay Vietnam Square Razorpay Manual bank transfer Pay at venue

VietQR — no merchant account needed

Enter your Vietnamese bank account number + bank code under Settings → Payments → VietQR. JavisTab uses the VietQR.io API to dynamically render a QR with the booking ref in the memo line — your bank app picks it up, JavisTab matches the transfer to the booking by ref & amount.

Works with every Vietnamese bank

Vietcombank, Techcombank, BIDV, VietinBank, MB, ACB, VPBank, Sacombank, TPBank, MSB — all 40+ banks supported. No merchant account, no setup fees, no monthly fees. The bank’s standard inter-bank transfer fee (₫0–₫3,300) applies to the customer’s transfer only.

Stripe

Get your publishable key + secret key from Stripe Dashboard → Developers → API keys. Paste into Settings → Payments → Stripe, save, and JavisTab renders the Stripe Elements widget at the payment step. 3-D Secure handled automatically; Apple Pay & Google Pay surface on supported devices.

// Webhook URL to paste into Stripe Dashboard
https://your-domain.com/wp-json/rbp/v1/stripe/webhook

// Events to subscribe to:
payment_intent.succeeded
payment_intent.payment_failed
charge.refunded

PayPal

Connect with PayPal REST API credentials (Client ID + Secret) from your PayPal developer dashboard. Both sandbox and live modes supported; toggle in Settings.

OnePay Vietnam · Razorpay · Square

OnePay credentials come from your OnePay merchant portal (Merchant ID, Access Code, Secure Hash key). Razorpay (India) and Square (US/CA/AU/UK/IE) both use standard API key + secret pairs. Square supports Tap-to-Pay on iPhone.

Manual bank transfer

If you’d rather not integrate any gateway, JavisTab supports a manual flow: customer sees your bank details on the confirmation page, transfers, then clicks “I confirmed my transfer”. The booking moves pending_payment → pending and the admin gets a single notification email (deduplicated in v5.9.14 — see Changelog).

!
HTTPS is required

All gateway SDKs refuse to render over plain HTTP. If you see “gateway not configured” in production despite valid keys, your site is almost certainly being served over HTTP somewhere. Force HTTPS in wp-config.php with define('FORCE_SSL_ADMIN', true);.


Section 05 — NotificationsEmail · SMS · Reminders

One booking can fan out across three channels — guest confirmation email, admin alert, and an SMS reminder 24h before. All template-driven, all toggled per channel.

Email templates

JavisTab ships with 12 transactional email templates: booking confirmed, payment received, booking modified, reminder T-24h, no-show alert, cancellation, refund issued, waitlist promoted, and four admin variants. Each template is editable in Settings → Email Templates with merge tags like {{guest_name}}, {{booking_ref}}, {{table}}, {{voucher_link}}.

SMS

Optional. Plug in Twilio, eSMS.vn, Viettel SMS Brandname, or VietGuys. Per-message cost passes through; JavisTab never marks up.

Reminders & ICS

The reminder engine runs on WP-Cron every 5 minutes. Default schedule: booking confirmed → instant email · T–24h → reminder email + SMS · T–2h → optional SMS nudge · T+1h after seating → review request. Every confirmation email carries an ICS attachment so guests can save the booking to Apple Calendar, Google Calendar or Outlook with one tap.


Section 06 — OperationsCRM, loyalty, waitlist & check-in

CRM & customers

The built-in restaurant CRM automatically builds a rich customer database from your booking data. View complete visit history, cumulative spending, personal notes, dietary preferences, no-show count and blacklist status — no manual setup required.

Zero configuration. Every booking enriches the customer profile: visit count, total spending, preferred time slots, special requests, and no-show history are all tracked automatically.

Loyalty points

Automatic. Earn rate, redemption ratio and eligibility rules are configurable under Settings → Loyalty. Points are tracked per CRM profile, redeemable at the booking step — fully transparent to the guest. Turn first-time diners into regulars without paying for a third-party loyalty CRM.

Waitlist

When a slot is full, the booking form offers “Join waitlist”. If a confirmed booking cancels or no-shows, the waitlist promotion engine auto-emails the first guest in line with a one-click confirmation link valid for 30 minutes.

QR check-in

Every booking gets a unique QR code printed on the voucher. Scan with the in-admin QR scanner page on a tablet at the host stand — booking flips to seated, the floor plan turns sage green, and the loyalty points credit drops into the customer’s account.

Invoices & vouchers

Generate professional printable invoices from any booking. Invoices include complete booking details, package, payment information, customer data and your restaurant branding. From v5.9.14, the invoice view also carries a 🎫 View Voucher quick-link so admins can print/save both as PDF in one workflow — using the browser’s native “Save as PDF”, no PDF library required.

Marketing & auto-review capture

After each booking a star-rating email goes out. 4–5★ responses redirect directly to your Google Business Profile review page. 1–3★ responses send a private alert — with guest name, phone and booking ref — to management before the review goes public. Reputation management, automated.


Section 07 — ReferenceREST API & languages

REST API

JavisTab exposes a clean REST API under /wp-json/rbp/v1/ — useful for mobile apps, custom dashboards, BI tools and Zapier-style automations.

EndpointMethodPurpose
/availabilityGETSlot list for a date · ?restaurant_id=&date=YYYY-MM-DD
/bookingsPOSTCreate booking · returns booking_ref
/bookings/{ref}GETFull booking JSON · public, no auth required
/bookings/{ref}PATCHUpdate booking · auth required
/bookings/{ref}/cancelPOSTSelf-cancel within window
/floor-planGETTables + live status for a date/time
/customers/{id}GETCRM profile · auth required
/stripe/webhookPOSTStripe webhook receiver

Supported languages

As of v5.9.14, JavisTab ships the full 169-key translation set in 13 languages. Set the global default in Settings → General → Default language; override per page with lang="…" on any shortcode.

🇬🇧 English · en 🇻🇳 Tiếng Việt · vi 🇫🇷 Français · fr 🇩🇪 Deutsch · de 🇪🇸 Español · es 🇮🇹 Italiano · it 🇵🇹 Português · pt 🇧🇷 Português BR · pt_BR 🇮🇩 Bahasa · id 🇨🇳 简体中文 · zh 🇹🇼 繁體中文 · zh_TW 🇯🇵 日本語 · ja 🇰🇷 한국어 · ko

Troubleshooting

SymptomCause & fix
Form doesn’t render — page is blankShortcode pasted in the Visual tab not Text/HTML tab. Switch to Text editor and paste again.
“License invalid” on a working domainLicense is bound to bare-domain. If you migrated example.comwww.example.com or HTTP → HTTPS, deactivate & reactivate the key.
Stripe widget shows nothingBrowser blocking js.stripe.com. Disable ad-blockers, allow third-party scripts, force HTTPS.
Duplicate admin email on bank transferFixed in v5.9.14 (BUG-ADMIN-DUP). Update the plugin.
Wrong amount in “Payment received” emailFixed in v5.9.13 (BUG-EMAIL-AMT). Update the plugin.

Changelog highlights · v5.9.14

  • New — Invoice → Voucher quick-link button (industry-standard PDF workflow, no PDF library required)
  • Fixed — Duplicate admin notification email on Bank Transfer flow (BUG-ADMIN-DUP)
  • Fixed — “Attach voucher to email” setting description updated to reflect v5.9.12 inline-button behaviour
  • v5.9.13 — Complete translations for zh / ko / zh_TW / ja / fr / de (was BUG-LANG-5)
  • v5.9.13 — Payment-received email now shows per-transaction amount, not cumulative (BUG-EMAIL-AMT)

Full changelog with engineering notes available in the plugin folder at CHANGELOG.md.


Section 08 — FAQCommon questions

Is the 15-day trial really free? Will I lose my data when it ends?

Yes — free, no credit card. Full access to the booking form, floor plan, and all four payment gateways. CRM, loyalty and SMS unlock on paid plans starting at $19.90 / 30 days. All your data (guest profiles, bookings, floor plan) carries over seamlessly when you upgrade. All paid plans include a 30-day money-back guarantee.

Does JavisTab work with my theme (Elementor / Divi / Astra / GeneratePress)?

Yes. All features render via shortcodes — no custom template required. Tested with Divi, Elementor, Astra, GeneratePress, Kadence, Blocksy and the default block themes (Twenty Twenty-Four / Five). No WooCommerce dependency.

Do I need a merchant account to accept payments in Vietnam?

No. VietQR works without any merchant account — just your bank account number and bank code. JavisTab generates a dynamic QR with the booking ref in the memo, your bank app picks it up, and the booking auto-confirms when the transfer is matched by ref + amount.

Can I use JavisTab for spas, salons, gyms or experiences — not just restaurants?

Absolutely. The capacity engine has two modes — by_tables (rename to “rooms”, “seats”, “bays”, “slots”) and by_guests (great for fitness classes capped at 12 attendees). Every label, placeholder, button text and status message in the booking form is customizable in Settings.

How does this compare to Amelia or Bookly?

Amelia and Bookly are adapted from appointment booking — they lack a real-time floor plan, VietQR, native SMS reminders, and the restaurant-specific capacity modes. JavisTab is purpose-built for booking-based hospitality & experience businesses — particularly in Vietnam and Southeast Asia where VietQR is a mainstream consumer channel.

What happens if I uninstall the plugin?

By default, deactivating leaves all your data intact (so you can reactivate without loss). The uninstall.php routine — which runs only when you click “Delete” from the WordPress plugin list — will drop all JavisTab tables. Backup before deleting if you’ll ever want the data back.

I found a bug. How do I report it?

Email [email protected] with: (1) the plugin version (Settings → Diagnostics), (2) steps to reproduce, (3) a screenshot if visual, (4) the relevant lines from wp-content/uploads/rbp-logs/error.log if any.