WP Manifestindependent plugin directory
manifest / events / karuna-booking-search

Karuna Booking Search self-updates

WordPress availability-search widget for karunasiargao.com — branded calendar that searches bookings.karunasiargao.com

by Karuna Siargao · github.com/ledorofficial/karuna-booking-search · 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/ledorofficial/karuna-booking-search/archive/refs/heads/main.zip

Ships its own WordPress updater (Plugin Update Checker), so new versions show up under Dashboard → Updates.

A WordPress plugin for karunasiargao.com — a branded availability search that replaces the Smoobu embed. A compact one-month calendar (live nightly prices, sold-out nights greyed out) that sends the visitor to:

https://bookings.karunasiargao.com/?arrival=YYYY-MM-DD&departure=YYYY-MM-DD&guests=N#rooms

Install

  1. Download the latest zip from Releases (or Code → Download ZIP and rename the folder to karuna-booking-search).
  2. WP Admin → Plugins → Add New → Upload Plugin → the zip → InstallActivate.
  3. Place it:
    • Shortcode: [karuna_booking_search] — in Elementor use a Shortcode element (never a Text / Heading / HTML widget)
    • Widget: Appearance → Widgets → Karuna Booking Search

Updates

The plugin checks this repo's Releases. When a release has a higher version than what's installed, WordPress shows the normal update available notice in Plugins and updates with one click — no re-upload. (WordPress checks automatically every ~12h; force it from Dashboard → Updates → Check again.)

Shipping an update = bump the Version: header in karuna-booking-search.php, push, and publish a GitHub release tagged vX.Y.Z.

Uses Plugin Update Checker (bundled in plugin-update-checker/). Works token-free while this repo is public.

Shortcode attributes

Attribute Default Notes
base https://bookings.karunasiargao.com/ Where the search submits.
target _self _blank opens results in a new tab.
max_guests 16 Ceiling for Adults + Children in the Guests picker.
prices on off hides the per-night prices.
layout stacked stacked = teal card; inline = light wide row.
button Search Submit button label.
[karuna_booking_search max_guests="4"]                       Skygazer (sleeps 4)
[karuna_booking_search prices="off"]                         calendar without prices
[karuna_booking_search layout="inline" button="Check availability"]   homepage row

Layouts: stacked is the compact teal card for a sidebar (like the Smoobu widget). inline is a full-width white row — Arrival · Departure · Guests · button — for a homepage hero on a light background; it wraps to two columns below 640px.

Backend dependency

The price calendar reads GET /api/calendar on the booking engine — the lowest-nightly-rate map, as JSON, with an Access-Control-Allow-Origin header for karunasiargao.com. If that endpoint or flatpickr's CDN is unreachable the widget falls back to plain native date fields, so it always works.

That endpoint lives in the booking-engine repo (bookings.karunasiargao.com), route GET /api/calendar, origins controlled by CORS_ORIGINS.

No-plugin alternative

elementor-html-widget.html is the whole widget as one paste-in block (markup + `