2. Full reference
[maradigma_boats]
Boat archive/listing shortcode with filters, pagination, card template selection, and AJAX-ready archive rendering.
| Attribute | Default | Type | Description |
id_group | boats | string | Catalog/group to display. For boats it should normally be boats. |
limit_services | 10 | int | Results per page. |
offset_services | 0 | int | Initial offset. |
card | default card | string | Boat card template ID. |
image_token | image_main | string | Image token injected into the selected card template. |
show_filters | 0 | 0|1 | Show the filters bar. |
autosubmit_filters | 0 | 0|1 | Auto-submit filters on change. |
allow_url_filters | 0 | 0|1 | Allow URL md_* parameters to hydrate the filters. |
filters_ui_fields | term,boat_capacity,min_price,max_price,featured,ins_book,date_start,date_end | csv | Fields of the main filter bar (see “Filter fields a visitor can use” below). Setting it replaces the default list, it does not add to it. |
filters_ui_fields_left | empty | csv | Fields that must stay in the left/main row. Useful to keep order_by before the apply button without changing the default right-side behavior elsewhere. |
filters_ui_fields_right | auto | csv | Right-side filter bar fields. If omitted, order_by keeps the legacy right-side position automatically. Set it to an empty string to keep all fields in the main row order. |
filters_ui_fields_offcanvas | boat_type_id,builders,ids_gi | csv | Drawer fields (see “Filter fields a visitor can use” below). Rendered only when show_more_filters_button="1". |
builders_options | api | api|search_result | Builder filter source. Use api for the global builders list. Use search_result to show only builders returned by the current API search response (available_boat_id_builders). |
filters_ui_layout | horizontal | horizontal|vertical | Filter layout. |
filters_ui_submit_mode | auto | auto|button | Submission mode. |
filters_ui_show_reset | 1 | 0|1 | Show reset button. |
show_more_filters_button | 0 | 0|1 | Show the more-filters drawer trigger. |
more_filters_button_text | More filters | string | Drawer button label. |
more_filters_offcanvas_title | More filters | string | Drawer title. |
date_picker_mode | range | range|separate | Range picker or separate start/end controls. |
destination | | destination ID | Boats whose base port is in that destination (island, locality, region…). Same as departure_location="destination:{id}". Combines with boat_type_id and stays applied when visitors filter or paginate. |
departure_location | | destination:{id} | port:{id} | Destination or single base port, as the Maradigma API expects it. |
q | | legacy alias | Legacy alias present in defaults. |
port | | legacy alias | Legacy alias present in defaults. |
people | | legacy alias | Legacy alias present in defaults. |
Filter fields a visitor can use
These are the values accepted by filters_ui_fields, filters_ui_fields_left, filters_ui_fields_right and filters_ui_fields_offcanvas. Any other key is ignored.
| Key | What the visitor sees | URL parameter (allow_url_filters="1") |
term | Text search (model, trade name, builder, reference). | md_term |
date_start / date_end | Dates. With date_picker_mode="range" they are a single range input. | md_date_start, md_date_end |
boat_capacity | Minimum passengers, − / + selector (0 = no filter). | md_boat_capacity |
boat_cabins | Minimum cabins, − / + selector (0 = no filter). | md_boat_cabins |
boat_bathrooms | Minimum bathrooms, − / + selector (0 = no filter). | md_boat_bathrooms |
boat_length | Length: double-handle slider in meters. Its range comes from the shortest and longest boat of the listing. | md_min_boat_length, md_max_boat_length (sent only when the slider is not at its full range) |
boat_skipper_option | With skipper / Without skipper checkboxes. “With skipper” sends 0,2 and “Without skipper” sends 1,2, so boats with an optional skipper match either choice; ticking both or none sends no filter. | md_boat_skipper_option |
ins_book | Instant booking (online booking) toggle. | md_ins_book |
featured | Featured boats toggle. | md_featured |
min_price / max_price | Price. When both are listed the UI renders a single range slider. | md_min_price, md_max_price |
boat_type_id | Boat type selector (see the IDs below). | md_boat_type_id |
destination | Destination selector: the destinations of your boats (island, locality, region…) with the number of boats in each. | md_destination |
boat_base_port | Base port selector: the base ports of your boats with the number of boats in each. | md_boat_base_port |
builders | Builder multi-select. | md_builders |
ids_gi | “Specific boat” selector. | md_ids_gi |
order_by | Sort-by select. By default it is placed on the right of the bar. | md_order_by |
Destination and base port as page scope. The same keys are also listing attributes: destination="1704" or boat_base_port="12" scope the whole listing and stay applied while visitors filter and paginate — the usual pattern for one page per destination. If you scope the page and offer the control, the visitor's choice replaces yours, exactly like boat_type_id; departure_location="destination:1704" is the exception, as it always wins over the visitor's choice. The options of both selectors come from your whole catalogue of boats, with the number of boats in each place, and are refreshed every 10 minutes; on a listing that is already scoped, some of those places can return no boats.
Search attributes of the listing
Set by the page author to scope the listing. They accept the same values as the filters above and are sent to the Maradigma API.
| Attribute | Type | Example | Description |
term | string | sunseeker | Text search on model, trade name, builder and reference. It does not search places. |
date_start / date_end | Y-m-d | 2026-07-01 | Availability range. |
boat_capacity | int | 8 | Minimum passengers. |
boat_cabins / boat_bathrooms | int | 3 | Minimum cabins / bathrooms. |
boat_length | number | 12 | Minimum length in meters. For a range use min_boat_length and max_boat_length. |
boat_skipper_option | int/csv | 0,2 | 0 with skipper, 1 without skipper, 2 optional. Use 0,2 for “with skipper” and 1,2 for “without skipper”. |
boat_base_port | int | 12 | Base port ID. Same as departure_location="port:12". |
ins_book | 0|1 | 1 | Only boats bookable online. |
featured | 0|1 | 1 | Featured boats only. |
min_price / max_price | number | 500 / 1500 | Price range. |
builders | csv int | 10,12 | Builder IDs. |
ids_gi | csv int | 304,305 | Only these boats (up to 20). The other filters still apply. |
order_by | int | 1 | 0 fleet order (the order you set in Maradigma, default), 1 price low to high, 2 price high to low, 6 length low to high, 5 length high to low, 4 newest first. |
Standard boat type IDs
Use these values with the boat_type_id attribute or with filters_ui_fields="boat_type_id".
| ID | Boat type | Example |
41 | Catamaran | [maradigma_boats boat_type_id="41"] |
3 | Motorboats | [maradigma_boats boat_type_id="3"] |
5 | RIBs | [maradigma_boats boat_type_id="5"] |
4 | Sailboats | [maradigma_boats boat_type_id="4"] |
1 | Super yachts | [maradigma_boats boat_type_id="1"] |
29 | Water toys | [maradigma_boats boat_type_id="29"] |
2 | Yachts | [maradigma_boats boat_type_id="2"] |
Example
[maradigma_boats id_group="boats"]
Example: motorboats in one destination
[maradigma_boats boat_type_id="3" destination="1704"]
Example
[maradigma_boats limit_services="12" show_filters="1"]
Example
[maradigma_boats show_filters="1" autosubmit_filters="1" filters_ui_fields="term,boat_capacity,min_price,max_price,featured,ins_book,date_start,date_end,order_by"]
Example: move order by before Apply
[maradigma_boats show_filters="1" filters_ui_submit_mode="button" filters_ui_fields="term,builders,min_price,order_by,max_price" filters_ui_fields_left="order_by"]
Example
[maradigma_boats card="clean-grid" image_token="image_main" show_more_filters_button="1" filters_ui_fields_offcanvas="boat_type_id,builders,ids_gi"]
Example
[maradigma_boats show_filters="1" filters_ui_fields="term,date_start,date_end,builders,min_price,max_price" builders_options="search_result"]
Example: destination, base port, length, cabins, skipper and online booking
[maradigma_boats show_filters="1" allow_url_filters="1" filters_ui_fields="term,date_start,date_end,destination,boat_base_port,boat_length,boat_cabins,boat_skipper_option,ins_book"]
Example: compact bar plus a drawer
[maradigma_boats show_filters="1" allow_url_filters="1" filters_ui_fields="term,date_start,date_end,min_price,max_price,order_by" show_more_filters_button="1" filters_ui_fields_offcanvas="boat_type_id,builders,boat_length,boat_cabins,boat_bathrooms,boat_skipper_option,ins_book"]
[maradigma_boat_card]
Render one boat using the same editable Boat Card templates used by [maradigma_boats].
| Attribute | Default | Type | Description |
id | | string|int | Maradigma boat ID. |
slug | | string | Boat slug. Takes priority when provided. |
card | plugin default | string | Boat Card template ID. |
image_token | image_main | string | Cached image token injected into the selected card template. |
class | | string | Extra wrapper CSS class. |
Example
[maradigma_boat_card id="2773"]
Example
[maradigma_boat_card id="2773" card="default"]
Example
[maradigma_boat_card slug="karnic-sl602-valkirie" image_token="image_maradigma_card_471x273"]
[maradigma_boat]
Render a single boat using the overridable PHP template single-boat.php.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
expand | | csv | Safe External API expand options, for example service_images,service_prices. Unsupported values are ignored. |
only_load_cover_image | | 0|1 | Pass 0 with expand="service_images" when the template needs the full images payload. |
images | | 0|1 | Optional API images flag. Usually expand="service_images" is enough. |
url_images_main_domain | | 0|1 | Optional API image URL flag. Automatically enabled by the client when service_images is requested. |
API detail options: [maradigma_boat] can request extra service detail data. Common use for all images: [maradigma_boat id="304" expand="service_images" only_load_cover_image="0"]. Multiple expands are accepted as CSV, for example service_images,service_prices,service_descriptions.
Supported expand values: service_accounting, service_additional_services, service_property_amenities, service_admin_tools, service_payment_methods, service_descriptions, service_destination, service_equipments, service_group_category, service_images, service_ical, service_pdf, service_owner, service_included_items, service_not_included_items, service_prices, service_price_rates, service_price_time_slots, service_public_urls, service_unavailability_dates, service_real_unavailable_dates.
Supported scalar API flags: accounting, additionals, additionals_build_html, amenities, admin_tools, build_method_payment, descriptions, equipments, gc_type, gc_type_cache, images, ical, only_load_cover_image, url_images_main_domain, owner, included, not_included, prices, price_rates, price_time_slots, website_urls.
Example
[maradigma_boat id="304"]
Example
[maradigma_boat slug="sunseeker-predator-108"]
Example
[maradigma_boat id="304" expand="service_images" only_load_cover_image="0"]
Example
[maradigma_boat id="304" expand="service_images,service_prices,service_descriptions" only_load_cover_image="0"]
[maradigma_boat_specs]
Render a boat specs block from defaults, CSV fields, or a custom JSON configuration.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
layout | two_cols | two_cols|list | Visual layout. |
show_labels | 1 | 0|1 | Show field labels. |
show_icons | 1 | 0|1 | Show SVG icons. |
icons | | csv field:icon | Override icon mapping, for example boat_length:ruler. |
fields | | csv | Simple field list when no JSON body is provided. Supports custom:my_key. |
Example
[maradigma_boat_specs id="304"]
Example
[maradigma_boat_specs slug="sunseeker-52" layout="list" show_labels="0" show_icons="1"]
Example
[maradigma_boat_specs id="304" fields="boat_type,boat_builder,boat_length,boat_beam,custom:boat_color"]
Example
[maradigma_boat_specs id="304" icons="boat_length:ruler,boat_base_port_name:map-marker"]
[maradigma_boat_prices]
Render seasonal prices from service_prices. If no seasonal ranges exist, it falls back to base, week, and hour prices when available. Alias: [maradigma_boat_price].
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
title | Prices | string | Section title. |
show_title | 1 | 0|1 | Show title. |
layout | cards | cards|table | Visual layout. Legacy blocks maps to cards. |
range_mode | dates_short | dates_short|dates_long|month | Season label format. |
order_by | date_from_asc | date_from_asc|date_from_desc|price_asc|price_desc | Price row ordering. |
show_headers | 1 | 0|1 | Table headers for table layout. |
row_gap | 10 | int | Gap in px. |
vat_mode | included | included|excluded|hidden_base|hidden_total | VAT display mode. |
vat_position | below | below|inline|tooltip | VAT text position. |
vat_text_included | VAT included | string | Included VAT text. |
vat_text_excluded | + VAT | string | Excluded VAT text. |
currency_display | symbol | symbol|iso | Currency display mode. |
decimals_mode | auto | auto|0|2 | Decimal display. |
thousands_sep | . | string | Thousands separator. |
decimal_sep | , | string | Decimal separator. |
Example
[maradigma_boat_prices id="304"]
Example
[maradigma_boat_prices slug="sunseeker-52" layout="table" show_headers="1"]
[maradigma_boat_field]
Generic field shortcode. It reads any top-level key returned by the cached boat payload. This is the most flexible shortcode in the plugin.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
field | | string | Exact top-level key to read from the boat payload. |
esc | true | true|false | Use esc_html() by default. Set to false only for trusted HTML output. |
fallback | | string | Returned when the field does not exist or is empty. |
format | raw | raw|number|price | Basic formatting mode. |
decimals | 0 | int | Decimals for number/price formatting. |
Example
[maradigma_boat_field id="304" field="boat_capacity" format="number"]
Example
[maradigma_boat_field slug="sunseeker-52" field="boat_length" format="number" decimals="2"]
Example
[maradigma_boat_field slug="sunseeker-52" field="long_description" esc="false"]
Example
[maradigma_boat_field id="304" field="images" esc="false"]
Sugar shortcodes
Convenience wrappers around maradigma_boat_field.
| Shortcode | Main field | Notes |
[maradigma_boat_title] | boat_builder + boat_model + "boat_alias" | Configurable full boat title. |
[maradigma_boat_name] | boat_alias | Boat name/alias. |
[maradigma_boat_pax] | boat_capacity | Defaults to numeric formatting. |
[maradigma_boat_length] | boat_length | Defaults to numeric formatting with 2 decimals. |
[maradigma_boat_beam] | boat_beam | Defaults to numeric formatting with 2 decimals. |
[maradigma_boat_builder] | boat_builder | Builder text. |
[maradigma_boat_base_port] | boat_base_port_name | Correct base port field used by the plugin. |
[maradigma_boat_title]
Builds a complete boat title from configurable parts. By default it outputs boat_builder + boat_model + "boat_alias".
| Attribute | Default | Description |
show_builder | 1 | Include boat_builder. |
show_model | 1 | Include boat_model. |
show_alias | 1 | Include boat_alias. |
quote_alias | 1 | Wrap alias in double quotes. |
fallback_service_name | 1 | Use service_name / name / title if selected parts are empty. |
separator | | Separator between visible parts. |
fallback | | Output if no title can be built. |
Example
[maradigma_boat_title id="304"]
Example
[maradigma_boat_name id="304"]
Example
[maradigma_boat_pax id="304"]
Example
[maradigma_boat_length id="304"]
Example
[maradigma_boat_base_port id="304"]
Content and list shortcodes
[maradigma_boat_description]
Render the boat description with automatic language and long/short fallback logic.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
type | auto | auto|large|long|short | large is normalized internally to long. |
esc | false | true|false | Legacy compatibility. When true, the description is escaped. |
allow_html | | 0|1|yes|no | If enabled, output is sanitized with wp_kses_post(). |
max_words | 0 | int | 0 means unlimited. |
fallback | | string | Fallback text. |
Example
[maradigma_boat_description id="2410"]
Example
[maradigma_boat_description slug="pardo-yachts-38-test" type="short"]
Example
[maradigma_boat_description id="2410" allow_html="1" max_words="80"]
[maradigma_boat_equipments]
This shortcode must request service_equipments and read the equipments node.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
title | Equipments | string | Section title. |
show_title | 1 | 0|1|yes|no | Show title. |
show_icon | 0 | 0|1|yes|no | Show leading icon/text. |
icon_text | ✓ | string | Leading icon/text content. |
sort | 1 | 0|1|yes|no | Sort labels alphabetically. |
fallback | | string | Fallback text when there are no equipments. |
Example
[maradigma_boat_equipments id="2410"]
Example
[maradigma_boat_equipments id="2410" title="Equipments" show_icon="1" icon_text="✓"]
[maradigma_boat_included]
This shortcode must request service_included_items and read included or included_items.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
title | Included | string | Section title. |
show_title | 1 | 0|1|yes|no | Show title. |
show_tick_icon | 1 | 0|1|yes|no | Show leading tick/icon. |
tick_text | ✓ | string | Tick/icon text. |
sort | 1 | 0|1|yes|no | Sort labels alphabetically. |
fallback | | string | Fallback text when there are no items. |
Example
[maradigma_boat_included id="2410"]
Example
[maradigma_boat_included id="2410" title="Included" show_tick_icon="1" tick_text="✓"]
[maradigma_boat_not_included]
This shortcode must request service_not_included_items and read not_included or not_included_items.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
title | Not included | string | Section title. |
show_title | 1 | 0|1|yes|no | Show title. |
show_cross_icon | 1 | 0|1|yes|no | Show leading cross/icon. |
cross_text | ✕ | string | Cross/icon text. |
sort | 1 | 0|1|yes|no | Sort labels alphabetically. |
fallback | | string | Fallback text when there are no items. |
Example
[maradigma_boat_not_included id="2410"]
Example
[maradigma_boat_not_included id="2410" title="Not included" show_cross_icon="1" cross_text="✕"]
[maradigma_boat_calendar]
Render a lightweight availability calendar fed by the plugin REST proxy.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
months | 12 | 1..24 | Number of months available in the selector. |
start_month | current | current|next | Initial month anchor. |
show_legend | 1 | 0|1 | Show legend. |
color_available | #d4edda | CSS color | Available color. |
color_booked | #ffc0bd | CSS color | Booked color. |
color_option | #ffe8a1 | CSS color | Option color. |
option_statuses | 4 | csv ints | Booking statuses treated as option. |
include_booking_status | 1 | 0|1 | Whether booking status is requested from the REST proxy. |
Example
[maradigma_boat_calendar id="732"]
Example
[maradigma_boat_calendar slug="sunseeker-predator-108" months="12"]
Example
[maradigma_boat_calendar slug="sunseeker-predator-108" color_available="#d4edda" color_booked="#ffc0bd" color_option="#ffe8a1"]
Booking shortcodes
[maradigma_boat_booking]
Render the booking CTA and booking modal.
| Attribute | Default | Type | Description |
id | | string|int | Boat identifier. |
slug | | string | Boat slug. |
button_text | Book now | string | Button label. |
redirect_url_success | | URL | Success redirect after booking/payment. |
calendar_display | inline | popup|inline | Calendar display mode. |
calendar_months | 1 | 1|2 | Number of months visible in the modal calendar. Forced to 1 when calendar_display="inline". |
calendar_selection_mode | range | range|single | Range or single-day selection. |
show_schedule_text | 1 | 0|1|bool-like | Show schedule text. |
show_promo_code | 1 | 0|1|bool-like | Show promo code field. |
show_children_included | 1 | 0|1|bool-like | Show the children-on-board option. |
free_additional_label | free | free|included | Label used for free additional services. |
buttons_position | inline | footer|inline | Place actions after the current step inside the scrollable modal body, or keep them persistently visible in the modal footer. |
Example
[maradigma_boat_booking id="304"]
Example
[maradigma_boat_booking id="304" calendar_display="inline"]
Example
[maradigma_boat_booking id="304" calendar_selection_mode="single" show_schedule_text="0" show_promo_code="0"]
Example
[maradigma_boat_booking id="304" buttons_position="footer"]
[maradigma_booking_success]
Render a booking confirmation block based on the payment return URL query parameters.
| Attribute | Default | Type | Description |
show_if_not_paid | 0 | 0|1 | If 1, render content even when payment is not confirmed. |
empty_message | | string | Custom message when bchShopCart is missing. |
error_message | | string | Custom message when payment lookup fails. |
Example
[maradigma_booking_success]
Example
[maradigma_booking_success show_if_not_paid="1"]