WP Manifestindependent plugin directory
manifest / ecommerce / booking-core

Suntourz Core

WordPress plugin for tour operators: tours, departures, seat-aware bookings, trip requests, reviews, REST API and React admin screens.

by theodore-sooske (Telegram) · github.com/rnd21312/booking-core · website

★ 0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/rnd21312/booking-core/archive/refs/heads/main.zip

The engine behind the Suntourz suite: tours, departures, seat-aware bookings, trip requests, reviews, a public REST API and clean admin screens for WordPress.

Suntourz Core — bookings screen

Suntourz Core turns WordPress into a small tour-operator back office. Staff manage tours and bookings from fast React admin screens; the Suntourz theme (or any headless client) consumes the public REST API.

Project Role
react-theme Public website design (requires this plugin)
booking-core (this repo) Tours, departures, bookings, REST API, admin screens
visual-editor Click-to-edit visual editor, works with any theme (optional)

Features

  • Tours (stz_tour) with destinations and travel styles, featured image, gallery, highlights, included / not-included, meeting point and a five-tab tour editor: Details · Itinerary · Pricing · Departures · Flags.
  • Pricing plans (Single, Couple, Family, Family+) and optional extras, with per-departure price overrides. Prices are stored in the smallest currency unit.
  • Departures with capacity and status (draft, open, closed, cancelled), plus a recurring series generator.
  • Seat-aware bookings — pending bookings hold seats (configurable), cancelled / no-show release them. Booking codes like STZ-9OBE1G.
  • Booking workflow: new → contacted → confirmed → paid → completed (or cancelled / no_show), status history with notes, amount paid, payment method, one-click Call / WhatsApp / LINE / Email, CSV export.
  • Trip requests — "Plan My Trip" submissions with a follow-up status.
  • Reviews — guest reviews moderated through WordPress Comments; tour rating updates automatically.
  • Badges — on sale, last minute, only X left, special offer.
  • Public REST API (/wp-json/stz/v1) for tours, quotes, bookings, reviews, articles, destinations and styles.
  • Settings: company & contact, currency, booking rules, site identity, colours, footer and SEO defaults.
  • Roles: a dedicated Booking manager role; administrators get all capabilities.
  • Safe by default: nonces for admin, rate-limited public writes, optional Cloudflare Turnstile, no e-mail sent (no leaked data).
  • Demo importer (admin button and wp stz demo import|remove) that creates tours, bookings, pages, menus and articles — and removes only its own content.
  • WP-CLI support.

Requirements

  • WordPress 6.5+, PHP 8.1+ (MySQL / MariaDB; SQLite works for development)
  • Node.js 20+ only if you build from source

Install

  1. Download booking-core.zip from the latest release.
  2. Plugins → Add New → Upload Plugin → choose the zip → Install Now → Activate.
  3. Open Suntourz → Settings → Demo data → Import demo tours (optional).
  4. Install the Suntourz theme for the public site.

See docs/installation.md.

Documentation

Guide Contents
Installation Install, upgrade, demo data, WP-CLI
User guide Create tours, manage departures, handle bookings and requests
Configuration Every setting explained
REST API Public and admin endpoints with examples
Architecture Folder map, database schema, services, security
Development Local setup, tests, release process

Quick API taste

curl https://example.com/wp-json/stz/v1/tours
curl -X POST https://example.com/wp-json/stz/v1/quote \
  -H 'Content-Type: application/json' \
  -d '{"departure_id":12,"plan_id":"couple","pax":2}'

Development

cd frontend
npm ci
npm run dev           # admin apps on :5174
npm run build         # → ../dist
npm run typecheck && npm test

PHP unit tests (tests/Unit) use PHPUnit — see docs/development.md.

License

Released under the GNU General Public License v2.0 or later — see LICENSE.

Author

Created and maintained by theodore-sooske — Telegram @theodore-sooske.