palasgo.zip and click Install Now./wp-json/palasgo/v1/.WordPress uses /?p=123 style URLs in Plain mode. The REST API requires pretty permalinks to route requests correctly. Without it, calls to /wp-json/palasgo/v1/availability return a 404 and the calendar never loads.
Any non-plain structure works. "Post name" is recommended because it produces the cleanest URLs. The key requirement is just that you are NOT on "Plain".
[palasgo_booking product_id="123"] — replace 123 with your product's post ID.checkout.session.async_payment_succeeded
checkout.session.async_payment_failed
checkout.session.expired
payment_intent.payment_failed
charge.refunded
charge.dispute.created
In PalasGo → Settings → Stripe, paste your live keys into the "Live mode" fields. Toggle off "Test mode" and save. You also need a separate live webhook endpoint with its own signing secret.
FPX is Malaysian online banking (Maybank, CIMB, etc.). Enable it by toggling "FPX enabled" on the Stripe settings tab. You must subscribe to checkout.session.async_payment_succeeded and async_payment_failed webhooks — FPX payments are async and won't confirm without them.
Yes. If no Stripe keys are configured, PalasGo automatically uses the "Booking Only" gateway. The customer completes the booking form and the booking is created in a "request received" state without any online payment. You confirm and collect payment manually.
wp_mail() is often unreliable on shared hosting. Installing WP Mail SMTP and connecting a transactional mail service (Brevo, Mailgun, SendGrid, Postmark) is strongly recommended. PalasGo shows a green check on the Email tab when WP Mail SMTP is active.bookings@palasadventure.com.- Customer: request received — booking submitted
- Customer: confirmation — after payment succeeds
- Customer: request declined — if you decline
- Customer: refund / cancellation — when a paid booking is refunded
- Customer: tour reminder — day before the tour
- Customer: review request — day after the tour
- Customer: abandoned payment recovery — for unpaid bookings
- Admin: new booking notification — every new booking
- Admin: pending request — for request-to-book products
#7cb342.The WordPress admin stays fully accessible. The frontend booking form hides itself. The worker portal becomes read-only. Renewing restores everything immediately.
PalasGo re-verifies every 3 days using a cached transient. If unreachable, a 7-day grace period keeps everything working normally. Tour Builder also has the same 7-day grace period.
Yes. One license covers one site. Go to the License page on the current site and click Deactivate. Then activate it on the new site using the same key. Each license (core and Tour Builder) is deactivated independently.
Each pricing row has: Label (e.g. "Adult", "Child"), Price, Min/Max qty, Mode (Per unit or Flat), and an On/Off toggle. "Per unit" multiplies the price by qty; "Flat" charges the same price regardless of qty — useful for private charters or fixed-price experiences.
In the Availability metabox on the product editor, toggle on the weekdays when the product runs. Disabled weekdays appear greyed out on the booking calendar.
In the Availability metabox, use the Blackout dates picker. Click on any date to add it as a chip. Customers cannot book those dates. You can also close individual time slots on specific dates via session-level blackouts.
Enable hotel pickup in the Pickup location metabox. Add each hotel name and an optional surcharge. The surcharge is added to the booking total live as the customer selects their hotel.
Use the Add-ons metabox to add optional extras. Each add-on has a label, price, and type. They appear on the confirmation page, emails, and admin booking detail.
Enable it in the Car rental / date-range booking metabox. Customers pick a start and end date. Set min/max rental length and how pricing scales: per day, per night, or flat rate.
The Where to go metabox lets you set a GPS meeting point using an interactive Leaflet map. This appears on the thank-you page and in customer emails so people know where to go.
Product tags (taxonomy: palasgo_tag) are free-form labels you assign to each product, such as "island-hopping", "atv", "sunset-cruise", or "private-transfer". The product carousel uses these tags to filter which products appear in a given carousel. For example, you can have one carousel showing only island-hopping products and another showing all ATV tours — each controlled by a different tag.
Two ways:
- On the product editor — in the right sidebar, find the Product Tags panel. Type a new tag name and click Add. Existing tags appear as checkboxes to select.
- In bulk — go to PalasGo → Product Tags in the admin menu. Add, rename, or delete tags here, same as WordPress categories.
Tags are saved as slugs (lowercase, hyphens). The tag "Island Hopping" becomes the slug island-hopping, which is what you use in shortcodes and Elementor.
Open the product editor. In the right sidebar, find the Product Tags panel. Check the boxes next to the tags you want, or type in a new one. A product can have multiple tags — for example "island-hopping" and "featured" at the same time, so it shows in both carousels. Click Update to save.
Yes. PalasGo adds a Tags column to the All Products admin list (PalasGo → Products). You can see and click tags directly from the list without opening each product.
None — no time slot picker; customers just pick a date.
Fixed daily — the same set of slots runs every open day, e.g. 9 AM, 1 PM, 4 PM every day.
Per weekday — different slots on different days, e.g. 9 AM and 1 PM on weekdays, only 9 AM on Saturday.
Custom per date — fully custom slots for specific calendar dates. Falls back to the weekday config for dates without custom settings.
Yes. Each session can either share the product's daily capacity ceiling or have its own independent capacity number. A slot shows "X left" and "Sold out" tags as bookings fill up.
Hours before slot — closes booking X hours before the session time. For example, 2-hour cutoff on a 9 AM slot closes it at 7 AM on the day.
By time T the day before — closes booking at a specific time on the day before regardless of slot time, e.g. 11 PM the night before.
Session blackouts let you close a specific time slot on a specific date without cancelling the whole day. For example, close only the 9 AM slot on Christmas Day while leaving the 1 PM slot open. They appear as "Closed" in the slot picker.
SUMMER20). Codes are saved as uppercase.Yes. In the Voucher Settings metabox, use the Products multi-select to restrict the voucher to one or more products. Leave it empty to apply to all products.
A promo code field appears on the booking form. The customer types their code and clicks Apply. The discount is validated instantly via the REST API and the live booking total updates.
123 with your product's post ID. Works in Gutenberg, Elementor, and classic editor.Go to PalasGo → Products and click to edit a product. Look at the URL — it will contain post=123. That number is your product ID.
The "Book now" button on each card follows a priority: first it uses the product's Fallback URL (the link field in the product editor — typically your full Elementor Tour Builder page), and if that is empty it falls back to the product's WordPress permalink. This means the button can send customers to your beautiful Tour Builder page rather than the plain product post.
[palasgo_products tag="island-hopping" count="6" columns="3"]
[palasgo_products tag="atv,sunset-cruise" columns="2" layout="overlay" autoplay="yes"]
| Parameter | Default | Description |
|---|---|---|
| tag | (empty) | Filter by product tag slug. Comma-separate to include multiple tags: tag="atv,island-hopping". Leave empty to show all products. |
| count | 8 | Number of products to show (max 24). |
| columns | 3 | Cards visible side-by-side on desktop (1–5). On tablet it caps at 2, on mobile it shows 1.12 cards (with a peek of the next). |
| orderby | menu_order | Sort order: menu_order, date (newest first), title (A–Z), or rand. |
| layout | card | card — image on top, details below. overlay — text overlaid on the photo. |
| ratio | 4/3 | Image aspect ratio: 4/3, 1/1, 3/4, or 16/9. |
| autoplay | no | Set yes to auto-scroll the carousel. |
| button | Book now | Custom text for the Book button on each card. |
The product does not have a featured image set. Open the product editor (PalasGo → Products → Edit), find the Product Image panel in the right sidebar, and click Set product image. Upload or select a photo and save.
In the shortcode, make sure you are using the tag slug (lowercase, hyphens), not the display name. The tag "Island Hopping" has the slug island-hopping. You can check slugs by going to PalasGo → Product Tags. In the Elementor widget, set Show to "Products with a tag" and select the tag from the dropdown.
This notice is only visible to logged-in editors — customers never see it. It means no published products are tagged with that slug yet. Assign the tag to at least one product and publish it, then the carousel will display normally.
Set orderby="menu_order" (the default). Then on each product, scroll down to the Page Attributes metabox and enter an Order number (1, 2, 3…). Lower numbers appear first. This gives you full manual control over the card sequence.
[palasgo_reviews], and Gutenberg block. Works independently of the Tour Product Page widget — you can use the reviews anywhere on your site.Style 1 is the original template. It features a sticky section navigation at the top, a hero gallery (main image + 2 sub-images), a rating/reviews/booked count bar, tag pills (e.g. "English/Malay", "Guided Tour"), horizontal package tabs, What To Expect timeline, "Before You Go" notes, FAQ accordion, meeting point map, and an inline reviews section.
Style 2 is a GetYourGuide-inspired layout. It adds breadcrumbs, a 4-image gallery grid, compact horizontal section tabs (scrollable), a location + hours + details row, expandable package panels (toggle open/close), a "You Should Also Know This" details section, and a company name in the reviews heading (e.g. "Tripkio Reviews").
Style 3 is the newest template, added in v1.2.0. It has a large media gallery, a "Quick facts" sidebar (activity type, languages, notes, meeting place), a cancellation banner, a "Details & Booking" section with a booking list, a guarantee/trust sidebar, a detailed description and requirements section, meeting point map, and reviews. Fully namespaced — theme and Elementor global styles do not distort the layout.
Yes. The template picker is a single dropdown in the widget. Your content fields (packages, FAQ, gallery images, etc.) are shared across templates — switching the template only changes the layout. Some fields are template-specific (shown only when the matching template is selected) and those will just be hidden, not deleted.
palasgo-reviews plugin, deactivate it first (do not delete — your review data will be picked up automatically by Tour Builder).PalasGo-tour-builder-1.2.0.zip and click Install Now, then Activate.[palasgo_booking product_id="123"] there (replace 123 with your product ID). This wires the booking calendar into the package tab.The first panel. Select Style 1 (Klook), Style 2 (GetYourGuide), or Style 3 (CheckYeti). Template-specific controls appear and hide automatically — you will only see fields relevant to the selected template. Content you enter in shared fields (packages, FAQ, gallery) carries across all templates.
Product Title — the main H1 heading displayed on the page.
Rating Score — displayed as text, e.g. "4.8/5". Enter manually or match your live rating. Shown in Style 1 and Style 3.
Reviews Count Text — e.g. "125 reviews". Shown in Style 1 and Style 3.
Booked Count Text — e.g. "1K+ booked". Style 1 only.
Tags (Style 1 only) — a repeater of short text pills that appear under the title, e.g. "English/Malay", "Guided Tour", "Adventure". Add as many as you like.
Main Hero Image — the large image on the left on desktop. This is the most important image — use your best photo here.
Sub Image 1 & 2 — stacked on the right side of the main image on desktop. On mobile, all images collapse into a swipeable gallery.
Sub Image 3 & 4 — additional images for Style 2 and Style 3, which use a 4-image or 5-image grid layout.
Recommended: use consistent aspect ratios across all gallery images. At least 1200×800 px for the main image.
The Packages section is a repeater — click Add Item to add each package. Each package row has:
Package Name — shown as a tab label, e.g. "Standard", "VIP", "Private Charter".
Price Note — short text under the package name, e.g. "From RM 120 / person" or "Best value".
Note — additional note shown in Style 2 panels.
Booking Shortcode — paste [palasgo_booking product_id="123"] here. The booking calendar renders inside this package tab when the customer clicks it. Each package can link to a different product ID if needed.
Included — a text area (one item per line) for what is included, e.g. "Safety equipment", "Instructor", "Photos". Displayed with tick marks.
Excluded — items not included, displayed with cross marks.
A repeater of timeline or highlight items. Each item has: Title (e.g. "Day 1: Arrival", "Helmet fitting"), Text (paragraph describing that step), and an optional Image (a photo of that moment). Used to describe what the experience is like step by step — effective for multi-day packages and guided tours.
A repeater of label + text pairs — use this for practical information customers need before booking: requirements, what to bring, age restrictions, cancellation policy, health requirements. Each item has a Label (bold header, e.g. "Age requirement", "Cancellation") and a Text (the detail below it).
A repeater of question + answer pairs. Renders as a collapsible accordion on the page. Each item has a Question and an Answer. Add as many as needed. These also benefit SEO as FAQ schema can be added by your SEO plugin.
Toggle Enable map on. Choose the map source:
From product — automatically pulls the GPS coordinates set in the product's "Where to go" metabox. This keeps the map in sync if you ever update the product location.
Custom coordinates — enter Latitude and Longitude manually. Useful if the Tour Builder page is for a different location than the product's default meeting point.
You can also set the map height separately for desktop and mobile. A text address and map height are configurable for each style.
The Reviews section inside the widget pulls from your reviews database. Configure:
Review tag — filter to only show reviews tagged with a specific slug (optional). Useful when one site has multiple products with separate reviews.
Review limit — how many reviews to show (default: 6).
Layout — grid, slider, list, masonry, or carousel.
You can also add manual fallback reviews using the built-in repeater (Name, Date, Stars, Text). These show when no database reviews exist yet — useful for launching before you have imported reviews.
Style 3 has additional sections that only appear when Style 3 is selected:
Guarantee items — a repeater of trust/guarantee points shown in the booking sidebar, e.g. "Free cancellation", "Best price guarantee".
Contact — contact person name, role, and a button label for reaching them.
Quick Facts — Activity type, Languages, a Note (e.g. "No licence needed"), and Meeting place text.
Cancellation Banner — a highlighted text strip at the top of the booking section, e.g. "Free cancellation with full refund up to 24 hours before the activity".
Go to PalasGo → Reviews → Settings. Enter your Google API Key (from Google Cloud Console, with Places API enabled) and your Google Place ID (the ID of your business on Google Maps). Once saved, click Sync Google Reviews. PalasGo will pull your latest reviews from Google and import them into the database. Run this sync periodically to keep reviews current.
[palasgo_reviews layout="slider" limit="6"]
[palasgo_reviews platform="google" tags="atv" columns="2"]
| Parameter | Default | Description |
|---|---|---|
| layout | grid | grid, slider, list, masonry, or carousel. |
| platform | all | Filter by platform: google, viator, klook, getyourguide, headout, tripcom, or all. |
| limit | 9 | Maximum number of reviews to show. |
| min_rating | 0 | Only show reviews with this star rating or above (1–5). |
| columns | 3 | Columns in grid layout (1–4). |
| tags | (empty) | Filter by review tag slug. Comma-separate for multiple: tags="atv,island-hopping". |
| show_header | yes | Show the aggregate rating header bar. |
| tabs | yes | Show platform tabs (only appears when more than one platform has reviews). |
| autoplay | yes | Auto-advance in slider/carousel layouts. |
| interval | 5000 | Autoplay speed in milliseconds. |
| orderby | review_date | Sort: review_date, rating, or sort_order. |
| order | DESC | DESC (newest/highest first) or ASC. |
| seo | yes | Inject JSON-LD review schema for search engines. |
Check that: (1) At least one review has status Published. (2) If you are using a tags filter in the shortcode, at least one review is tagged with that slug. (3) The Tour Builder license is active — the shortcode renders nothing on the frontend when the license is inactive.
Yes. [palasgo_reviews] is fully standalone. You can drop it on any page, post, or Elementor widget — completely independently of the Tour Product Page widget. Useful if you want a reviews section on your homepage, for example.
No. Tour Builder uses the same database table (wp_palasgo_reviews) and the same settings option as the standalone plugin. Install Tour Builder, activate it, then deactivate the old standalone plugin. All your reviews carry over with zero migration. Do not delete the old plugin until you have confirmed everything works.
[palasgo_worker_portal] into the content. Publish it (you can keep it unlisted or password-protected).The worker portal is read-oriented. Administrative actions like confirming, declining, or refunding bookings are done from the WordPress admin by an administrator.
PalasGo includes brute-force login protection on the worker portal login form. After a set number of failed attempts, the account is temporarily locked. Admins can reset this from the Users panel.
Go to PalasGo → Settings → Automation. Set the "Recovery delay (hours)" field. The default is 2 hours.
Set a site-wide review URL in PalasGo → Settings → Automation → Review URL. If left empty, PalasGo falls back to the product's own review link, then the product permalink.
Go to PalasGo → Bookings. Filter by product and date. Click the Export CSV button to download a spreadsheet of the current view.
Booking reference, customer name, email, phone, booking date/time, time slot, product, pricing breakdown, total amount, payment status, pickup location, drop-off location, voucher code used, discount amount, source page, retry payment link status, last email sent, and internal admin notes.
Yes, via WordPress hooks. Use the palasgo_csv_export_headers filter to add column headers, and the palasgo_csv_export_row filter to add values.
This almost always means your permalink setting is wrong. Go to WordPress admin → Settings → Permalinks → select Post name → Save Changes. If the problem persists, run PalasGo → Tools to check for other issues.
Check: (1) Your license key is active — go to PalasGo → License. (2) The shortcode includes a valid product ID. (3) The product is published, not in draft.
Install WP Mail SMTP and connect a transactional email service (Brevo, Mailgun, SendGrid, or Postmark). PalasGo shows a green check on the Email settings tab when WP Mail SMTP is correctly configured.
Check: (1) Your webhook endpoint is registered in Stripe → Developers → Webhooks. (2) All 7 required events are subscribed. (3) The webhook signing secret is correctly pasted in PalasGo → Settings → Stripe. Run PalasGo → Tools → Test connection to verify.
Go to PalasGo → Bookings → click the booking. The booking detail page shows: "Cancel booking only", "Refund payment only", and "Refund & cancel booking". A refund email is automatically sent to the customer.
Check: (1) The Tour Builder plugin is installed and activated. (2) The Tour Builder license is active — go to PalasGo → Tour Builder License. (3) Elementor is installed. (4) Try clearing Elementor cache: Elementor → Tools → Regenerate Files.
Yes. Open the booking detail page and look for the "Resend email" options. You can resend the customer confirmation, request received, request declined, or refund emails.
Go to PalasGo → Settings → General. Under "Booking fee", choose the type (none, fixed, or percentage). For tax, enter the percentage and a label (e.g. "SST 6%"). Both are added to the live running total on the booking form.
A warning (⚠) means the system is partially functional but something is sub-optimal — for example, you're still in test mode on a live site. A failure (✕) means action is required — PalasGo cannot function properly for that subsystem until fixed. Fix failures first, then warnings.