Create a Tour

1: Create a Tour

1.1: Add General Fields

1.2: Add Global Price

Config

  • Regular Price: It is price for Adult

  • Sale Price: For Adult

  • Children Price

  • Baby Price

Example:

Total = 2(Adults) * $390 + 1 (Children) * $300 = $1080

Backend
Frontend

1.3: Add Quantity and Guest

  • Quantity: Maximum tour at a time.

  • Stock Quantity by Guests: Check available dates based on the number of guests or stock quantity.

a) Case 1: Check available dates based on the number of guests.

  • Config settings:

    • Quantity: 1

    • Stock Quantity by Guests: Checked

    • Maximum adults: 4

    • Maximum children: 3

    • Maximum babies: 3

  • Tour availability calculation formula

    • Maximum adults per booking: 4(Maximum adults)*1(Quantity) = 4

    • Maximum children per booking: 3(Maximum children)*1(Quantity) = 3

    • Maximum babies per booking: 3(Maximum babies)*1(Quantity) = 3

  • Example

    • The customer 1: Book a tour at 05/08/2025 with 6 guest (2 adults, 2 children 2 babies)

    • The customer 2: CAN book a tour at 05/08/2025 with 4 guest.

    • The customer 3: CAN'T book a tour at 05/08/2025

    • Backend
      Customer 1
      Customer 2
      Customer 3

b) Case 2: Check available dates based on stock quantity.

  • Config settings:

    • Quantity: 1

    • Stock Quantity by Guests: UnChecked

    • Maximum adults: 4

    • Maximum children: 3

    • Maximum babies: 3

  • Tour availability calculation formula

    • Maximum adults per booking: 4(Maximum adults) = 4

    • Maximum children per booking: 3(Maximum children) = 3

    • Maximum babies per booking: 3(Maximum babies) = 3

  • Example

    • The customer 1: Book a tour at 05/08/2025 with 6 guest (2 adults, 2 children 2 babies)

    • The customer 2: CAN'T book a tour at 05/08/2025

1.4: Add Insurance

Support 2 types: General Price and Guest type price

Read more here

a) General Price

Insurance: Choose "General Price" option

Backend
Frontend

b) Guest type price

Insurance: Choose "Guest type price" option

Backend
Frontend

1.5: Add Deposit

Support partial payment in two types: Percent and Fixed amount.

Read more here

a) Percent

Deposit type: Choose "a percentage amount of payment" option

Backend

b) Fixed

Deposit type: Choose "a fixed amount of payment" option.

1.6: Add Tour with Fixed Dates

  • Time slots: No

  • Days: Insert the number of days of the tour.

  • Fixed Dates: Setup check-in and check-out date.

Backend
Frontend

1.7: Add Tour with Duration

  • Duration: Yes

  • Hours: Insert the number of hours of the tour

  • Schedule: Price in Duration will override global price.

Case 1: The type will be calculated based on each person.

Total = 3 (Adults) * $10 + 1 (Childrend) * $7 + 1 (Baby) * $7 = $44

Frontend
Backend

Case 2: The type will be calculated based on each order.

The customer selected 2 adults, but the system still calculates the price for only 1 adult.

Total = Adulsts + Children + Babies = $10 + $7+ $7 = $24

1.8: Add Features

Icons: you can find icon class here

Backend
Frontend: Product Detail

1.9: Add Global Discount

  • Price in global discount with override global price and duration price.

  • The system will apply a discount depending on the total number of guests (Adults + Children + Babies).

  • If you want to apply a discount depending on the number of Adults or Adults + Children, you have to customize the code via bellow hook:

add_filter( 'ovabrw_get_price_by_global_discount', function( $gd_prices, $product_id, $numberof_adults, $numberof_children, $numberof_babies ) {
    return $gd_prices;
}, 10, 5 );
Backend
Frontend - Booking Form

1.10: Add Price with Special Time

  • Price in special will override global price, duration price and global price.

  • The system will apply a discount depending on the total number of guests (Adults + Children + Babies).

  • If you want to apply a discount depending on the number of Adults or Adults + Children, you have to customize the code via bellow hook:

add_filter( 'ovabrw_get_price_by_special_time', function( $special_time_prices, $product_id, $checkin_date, $numberof_adults, $numberof_children, $numberof_babies ) {
    return $special_time_prices;
}, 10, 6 );
Backend
2 Guests

1.11: Add Resources

Example 1: The type will be calculated based on each person.

Total = 1 (Adult)*$390 + 1 (Children)*$200 + 1 (Baby)*$100 + 1 (Adult resoruce)*$10 = $800

Backend
Frontend: Booking Form

Example 2: The type will be calculated based on each order.

The customer selected 2 adults in the Resource (Extra Services) section, but the system still calculates the price for only 1 adult.

Total = 1 (Adult)*$390 + 1 (Children)*$200 + 1 (Baby)*$100 + 1 (Adult resource)*$8 = $798

1.12: Add Services

Example 1: The type will be calculated based on each person.

Total = 1 (Adult)*$390 + 1 (Children)*$300 + 1 (Baby)*$100 + 2 (Adult resoruce)*$10 = $810

Example 2: The type will be calculated based on each order.

The customer selected 2 adults in the Resource (Extra Services) section, but the system still calculates the price for only 1 adult.

Backend
Frontend: Booking Form

1.13: Add Unavailable Time

Backend
Frontend: Booking Form

1.14: Add Place

a) Short Address

This fields will dsiplay in Archive/Category, Single Tour instead address in google map.

b) Show Map

You can choose: Global, Yes, No

  • "Global": Use setting in

  • "Yes": Show Google Map and Google Map Iframe

  • "Yes": Hide Google Map and Google Map Iframe

c) Use Google Map:

You have to insert Google Key Map in Settings to display Google Map here.

Backend
Frontend: Product Detail

d) Use Iframe display a Route Tour

Create a route tour in Google Maps, then use the "Share or Embed a map" feature to get the iframe

Setup a route tour in google map
Backend: insert iframe html
Frontend: Tour detail page

1.15: Advanced Options

1) Product Template

2) Disable Weekday

  • Enter the numbers that correspond to each day of the week:

0: Sunday
1: Monday
2: Tuesday
3: Wednesday
4: Thursday
5: Friday
6: Saturday

Example:

  • Backend: Insert 0,6

  • Fronntend: The calendar will block Saturday and Sunday.

3) X days preparation time

Example:

  • "X Days Preparation Time": 2

  • Today is 25 July

  • => The customer only booking from 27 July

4) Book before X hours today

Example:

  • "Book before X hours today": 18:00

  • Today: 25 July ⇒ If now is 15:00 => The customer can book this product today ⇒ If now is 19:00 => The customer can't book this product today

Setup Backend
Setup Backend: Slot time for booking

5) Guest

a) Setup

  • Show children field: Global, Yes, No.

    • Global: Get value from WooCommerce >> Settings >> Booking Tour >> Guests >> Show children field.

    • Yes: Use children for this tour.

    • No: Not Use Children for this tour.

  • Show Babies field: Choose "Global", "Yes", "No"

    • Global: Get value from WooCommerce >> Settings >> Booking Tour >> Guests >> Show babies field.

    • Yes: Use Baby for this tour.

    • No: Not Use Baby for this tour.

b) Example

  • Step 1: Choose "Show babies field": No

  • Step 2: Save Tour

  • Step 3: All baby fields will be hidden in both the backend and frontend sections.

6) Custom checkout fields

Use Custom checkout fields in Booking Form, Request Form.

Backend product
Frontend - Booking Form

a) Config

  • Display custom fields from: Category Settings, New, No

    • Category Settings: Get value that are set up in the category. Lean more in categories

    • New: You can insert slug of multi custom checkout fields here. Lent more in Custom Checkout Field

      • Example:

    • No: Don't use any custom checkout fields.

7) Check-out field

Show/Hide Check-out date field in booking form, request form

Display: Global Settings, Yes, No

  • Global settings: Get value that are set up in Global Settings (WooCommerce settings)

  • Yes: Display the field .

  • No: Hidden the field.

8) Forms

Display Booking Form, Request Form, Enquiry Form in tour detail

Setup

  • Show Forms: Global settings, only booking form, only request form, only enquiry form, show all

    • Global settings: Get value that are set up in the Woocommerce ( Go to WooCommerce >> Settings >> Booking Tours >> Product Details >> "Show booking form", "Show request form", "Show enquiry form"). Learn more in Show Forms

    • Only Booking Form: Learn more in Tour Template

    • Only Request Form: Learn more in Tour Template

    • Only Enquiry Form: Show content of shortcode. You can insert Shortcode of "contact form 7" plugin.

    • Show All: Show 3 forms

  • Enquiry Shortcode: Insert a shortcode like contact form 7, so the shortcode will display in Enquiry Form.

    • If you empty this fields, the tour will get shortcode in Enquiry Setting under WooCommerce Settings.

    • Config Contact Form 7: You have to insert "[product-link]" in "Message body", so you will see Tour Title and link of tour in mail.

Choose Header & Footer for this tour.

  • Global: Get value in Customize (Apperance >> Customize >> WooCommerce >> Product Detail >> choose "Header", "Footer" setting )

  • Default: Use "Default" header/footer of theme.

  • Header, Header Banner, Header Blog Detail, Header 4, Header 6, Footer 1, Footer 2, Footer 3 ...: There header/footer build with elementor. Learn more in Header Setting and Footer Setting.

1.16: Add Included/Excluded, Tour Plan

Step 1: You have to install and active CMB2 plugin

Step 2: Show "Included/Excluded, Tour Plan" section when create a tour

Step 3: Insert Data

Step 4: Display in tour detail page

2: Tour Template

To learn how to create, customize, and assign tour templates for each tour, please read here.

Last updated