Skip to main content

Solidres has two kinds of custom fields, and they do different jobs:

Booking form fields Property and room type fields
Who fills them in The guest, while booking or sending an inquiry You, while editing a property or a room type
Good for Asking for what you need to know: arrival time, passport number, pick-up location, a copy of an ID Describing what you offer: facilities, policies, room size, social network links
Where they are managed In the Solidres administrator, with a form. No file editing In two XML files on the server
Provided by The Custom Field plugin, a separate download The Extension - Solidres plugin, part of the Solidres package
Read more Custom fields for the booking forms Custom fields for properties and room types

PREREQUISITES:

  • Joomla 6.x, PHP 8.3+
  • Solidres 4.0 or later
  • For the booking form fields: a paid Solidres subscription, at any level. It carries the Custom Field download
  • For the property and room type fields: access to the files of your website, by FTP or a file manager

On this page:

  1. Custom fields for the booking forms
  2. Custom fields for properties and room types
  3. Troubleshooting

Custom fields for the booking forms

Without the Custom Field plugin, Solidres asks every guest the same fixed set of questions. With it, the forms are yours: rename a field, make it optional, remove it, or add a new one, all from the administrator.

Installation

  1. Download Solidres Custom Field from your Download page on solidres.com.
  2. In your Joomla administrator, go to System → Install → Extensions and upload the package.

The plugin is enabled by the installer. If it has been disabled since, enable Solidres - Custom Field plugin under System → Plugins.

NOTE The Hub and Experience packages need this plugin, version 2.0.0 or later. Their installers check for it and stop if it is missing, so install Custom Field first.

The forms you can customise

Each form has a field list of its own. A field belongs to the list it was created in and is shown in that form only.

Form Where the guest sees it Where you manage it
Guest form The guest information step of a booking: name, email, address. Asked once per booking Solidres → Customers → Custom fields
Room form The room step of a booking, next to the guest names and the extras. Asked once for every room booked Solidres → Reservations → Custom fields
Inquiry form The inquiry form of a property page Solidres → Reservations → Inquiry fields
Experience guest form The booking form of an experience. Needs the Experience package Solidres → Experiences → Custom fields
Partner subscription form The form a partner fills in to subscribe. Needs the Hub package, with subscriptions or commissions enabled Solidres → Subscriptions & Commissions → Custom fields

The default fields

The plugin installs the fields Solidres needs. They are marked in the Default column of the list.

Form Default fields
Guest form Title, First name, Middlename, Last name, Email, Confirm Email, Landline number, Mobile phone, Company, Address 1, Address 2, VAT number, City, Zip/Postal code, Country, State/Province, Note
Inquiry form Full name, Email, Phone, Message
Room form None. The list starts empty

A default field can be changed, within limits:

You can You cannot
Change its title, description and placeholder Change its input name
Make it optional or required Change its field type
Unpublish it, so it is no longer asked Delete it
Move it up or down the list  

IMPORTANT Keep Email published in the guest form, and Full name and Email in the inquiry form. The booking confirmation is sent to the first, and an inquiry cannot be answered without the other two.

TIP While Confirm Email is published, Solidres refuses a booking when the two addresses differ. To ask for the email address once, unpublish Confirm Email. The check goes with it.

Creating a field

Open the list of the form you want to change and select New.

The custom field form
Field What it does
Title The label the guest sees, and the label used in the reservation details and the emails.
Input name The technical name of the field. See The input name.
Field type The kind of answer you expect. See Field types.
Placeholder A hint shown inside the empty field. For the types Text field, Textarea and Email.
Cols, Rows The size of the text box. For the type Textarea.
Categories Limits the field to the properties, or the experiences, of the selected categories. Leave it empty to ask everywhere. For the guest form, the room form and the Experience guest form. See One field, some properties or experiences.
Assigned extras Shows the field only when the guest selects one of the listed extras. Room form only. See Fields that depend on an extra.
Description A longer explanation. The guest sees it in a pop-up when they point at the label.
Searchable Yes adds the field to the filters of the reservation list. For the types Text field, Textarea, Email, Select box, Checkbox and Radio. See Finding reservations by a field.
Optional No makes the field required: the form cannot be sent without it, and the label carries an asterisk. A new field is required unless you change this.
Status Only a published field is shown.
Created at, Created by Filled in when the field is saved.
Access The Joomla access level that sees the field. Public shows it to everyone, Registered to logged-in guests only.
Multiple Yes lets the guest select several options. For the type Select box.
Options The choices of a Select box, Checkbox or Radio field. Select Add for each choice and enter the Option text the guest reads and the Option value that is saved. To remove choices, tick them and select Remove.

The input name

Solidres handles the answers of a form together with the other data of the booking, and tells them apart by their input name. Use lower-case letters, digits and underscores, give every field its own name, and start the name with the prefix of the form. The prefix keeps your field clear of the names Solidres uses itself:

Form Prefix Example
Guest form customer_ customer_pickuplocation
Experience guest form customer_ customer_shoesize
Inquiry form inquiry_ inquiry_arrival_date
Room form None needed room_bed_preference

Any other character, a space included, is replaced by an underscore when the field is saved.

IMPORTANT Choose the input name once. Answers are stored under it, so a field that is renamed later no longer shows the answers given before.

Field types

Field type The guest gets Use it for
Text field A single line of text Passport number, flight number, licence plate
Textarea A text box of several lines Special requests, dietary needs
Email A single line that accepts an email address only A second contact address
Date picker A calendar Date of birth, date of an anniversary
Select box A drop-down list, with one or several choices Arrival time, purpose of the trip
Checkbox A list of boxes, several can be ticked Interests, allergies
Radio A list of choices, one can be selected Bed preference, smoking or non-smoking
Country The list of countries of your Solidres Nationality, country of residence
Zone state The list of states or provinces of the selected country State of residence. Place it after a Country field
File upload A button to send a file A copy of an ID, a signed form. See File upload

File upload

  • Not in the room form. The type is available in the guest form, not in the room form.
  • Size and file types follow Joomla. The limits are those of the Joomla Media options: Content → Media → Options. A file that Joomla would refuse in the Media manager is refused here.
  • Files are kept private. A file can be downloaded by an administrator, by the partner who owns the property, by the guest who made the reservation, and through the link in the reservation emails, which carries the reservation code.
  • Not part of the profile. A file belongs to one reservation. File fields are left out of the guest profile.

The order of the fields

The forms show the fields in the order of the list. To change it, sort the list by the first column and drag a field by its handle. The guest form splits the list over two columns: the first half on the left, the second half on the right.

The Optional column of the list is a switch. Select it to turn a field from optional to required and back, without opening the field.

One field, some properties or experiences

A field without Categories is asked everywhere. To ask a question in some places only, select one or several categories in the field. Which categories the list offers depends on the form:

Form The list offers Managed under
Guest form, room form The property categories Solidres → Properties → Categories
Experience guest form The experience categories Solidres → Experiences → Categories

Example for properties: your hotels need a passport number, your holiday apartments do not. Create the field Passport number in the guest form and select the category Hotels. Guests of the apartments never see it.

Example for experiences: your cooking classes need to know about food allergies, your city walks do not. Create the field Food allergies in the Experience guest form and select the category Cooking. An experience can be in several categories: the field is asked when one of them is selected in the field.

The fields of the inquiry form and of the partner subscription form are asked everywhere. The Categories setting has no effect there.

Fields that depend on an extra

Some questions only make sense when the guest buys an extra: the flight number for the airport transfer, the age of the child for the cot. A room form field with Assigned extras stays hidden until the guest ticks one of those extras for the room.

  1. Go to Solidres → Coupons & Extras → Extras and note the ID of the extra.
  2. Open the field under Solidres → Reservations → Custom fields.
  3. Enter the ID in Assigned extras. For several extras, separate the IDs with commas, without spaces: 4,7.

NOTE Set Optional to Yes on a field with assigned extras. A required field that is hidden cannot be filled in, and the guest who did not select the extra could not continue.

Examples

Estimated arrival time, in the guest form
Field Value
Title Estimated arrival time
Input name customer_arrival_time
Field type Select box
Options Before 14:00, 14:00 to 18:00, 18:00 to 22:00, After 22:00. The same wording for text and value
Description Check-in is from 14:00. Tell us if you arrive late, so we can arrange your key.
Optional Yes
Searchable Yes
Flight number for the airport transfer, in the room form
Field Value
Title Flight number
Input name room_flight_number
Field type Text field
Placeholder For example LH 1234
Assigned extras The ID of your Airport transfer extra
Optional Yes

The inquiry form

The inquiry form is shown on the property page when it is enabled in the property. With the plugin, it is built from the list under Solidres → Reservations → Inquiry fields, and every answer is part of the email the property receives.

  • Start every input name with inquiry_.
  • Keep the two fields inquiry_full_name and inquiry_email, and keep them required. The name goes into the subject of the email, and the address is the one the property replies to.

Where the answers are shown

Place Guest form fields Room form fields
The reservation in the administrator Yes, and they can be edited Yes, with each room, and they can be edited
The reservation in the guest's account Yes No
The reservation in the partner dashboard, with the Hub package Yes Yes, with each room
The confirmation emails, to the guest and to the property Yes Yes. A field with assigned extras is listed only when the extra was booked
The PDF attached to the confirmation email, with the Invoice plugin Yes No
The CSV export of the reservation list Yes, one column per field No
The reservation list On request, see below No

In the administrator, Confirm Email is left out: staff enter the address once.

Columns in the reservation list

Guest form fields can be shown as columns of the reservation list. Open the Solidres options, select the Reservation tab, and enter the input names in Custom fields in reservation list, separated by commas and without spaces:

customer_arrival_time,customer_company

Finding reservations by a field

A field with Searchable set to Yes is added to the Filter Options of the reservation list. A text field becomes a search box that finds a part of the answer, a field with options becomes a list of those options. This works for fields of the guest form and of the room form.

The guest profile

The guest form fields are also part of the account of a registered guest, under the heading Profile details:

  • in the registration form and the profile form of Joomla,
  • in the profile of the Solidres customer dashboard,
  • in the customer and the Joomla user in the administrator. There, every field is optional.

When a logged-in guest books, the guest form is filled in from the profile, so a returning guest answers your questions once. Note, Email, Confirm Email and file fields are not part of the profile.

Translating the fields

There are three ways to show a field in the language of the guest:

Method How Translates
Speedy Translate Our own translation extension for Joomla. Keep its Multilingual mode option on Speedy. Then open the field and enter the title per language, or translate all the fields at once under Batch translations, in the list Solidres custom fields. The title
Language constant Enter a constant of your own as the title, for example MY_FIELD_ARRIVAL_TIME. Then give it a text per language under System → Language Overrides, for the Site and for the Administrator. The title
Falang Enable the multilingual mode in the Solidres options. In Falang, translate the content element Solidres - Custom Fields. The title, the description and the text of the options

NOTE The Falang content element is copied when the Custom Field plugin is installed, and only if Falang is there at that moment. If you add Falang later, install the Custom Field package once more.

Removing a field

You want to Do this
Stop asking a question Unpublish the field. It can be published again later.
Remove a field of your own Move it to the trash. Then set the Status filter of the list to Trashed, select the field and select Delete.
Remove a default field Unpublish it. A default field cannot be deleted.

The answers guests gave to a field that is unpublished or deleted stay in the database, but they are no longer shown with the reservations.

IMPORTANT Uninstalling the Custom Field plugin removes all fields and all answers, of every form. To stop using it for a while, disable the plugin instead.

Custom fields for properties and room types

These fields describe a property or a room type. You fill them in on the Custom fields tab of the property or the room type, and the website shows them on the property page. They are added by the plugin Extension - Solidres, which is installed with Solidres, and they are defined in two XML files.

The built-in fields

For Group Fields
Property Facilities General, Activities, Services, Internet, Parking
Policies Check-in time, Check-out time, Cancellation / Prepayment, Children and extra beds, Pets, Accepted credit cards
Social networks A link and a show switch for Facebook, Instagram, Twitter, Pinterest and YouTube
Room type Conditions Taxes, Prepayment
Facilities Room facilities, Room size, Bed size

Some of them can be made required or switched off without touching a file. Open System → Plugins, open Extension - Solidres, and choose Required, Optional or Disabled for the check-in time, the check-out time, the cancellation and prepayment policy, the children and extra beds policy and the pets policy of a property, and for the room facilities, the room size and the bed size of a room type.

With the Hub package, partners fill in the same fields in the partner dashboard, on the same tab of their property and room type forms.

The two XML files

Both files are inside the folder of your Joomla installation:

Fields for File
Property plugins/extension/solidres/fields/reservationasset.xml
Room type plugins/extension/solidres/fields/roomtype.xml

IMPORTANT The two files are part of Solidres, and an update of Solidres replaces them. Keep a copy of the fields you add, and add them again after every update. The texts you entered in the properties are not lost: they are in the database, and they are back as soon as the field is.

How to add a new custom field

The example adds a field for information about dining to the group Facilities of a property.

Step 1: define the field

Open reservationasset.xml. The fields of a group are inside its <fieldset> tag. Add a new <field> tag to the group facilities, after the field parking:

<fieldset name="facilities" label="SR_PLG_EXT_RESERVATION_ASSET_FACILITIES">

    ...

    <field
        name="dining"
        type="textarea"
        rows="5"
        cols="100"
        id="dining"
        label="SR_PLG_EXT_RESERVATION_ASSET_FIELD_FACILITIES_DINING_LABEL"
        description="SR_PLG_EXT_RESERVATION_ASSET_FIELD_FACILITIES_DINING_DESC"
        filter="safehtml"
    />

</fieldset>

A field tag has the following attributes:

Attribute What it does
name A unique name. The text is saved under it, and the template reads it by this name.
type The type of the field, one of the Joomla form field types: text, textarea, list, radio and others.
rows, cols The size of the text box. Used by the type textarea only.
id A unique id for the HTML of the field.
class A CSS class for the field.
labelclass A CSS class for the label of the field.
label The label of the field: a language constant.
description The explanation shown with the field: a language constant.
message The message shown when the content of the field is not valid: a language constant.
filter How the text is cleaned when it is saved. safehtml keeps harmless HTML, such as line breaks and lists, and removes the rest.
required true makes the field required.

Step 2: give the field its label

The label and the description are language constants. Give them a text under System → Language Overrides: select your language and Administrator, select New, and create one override for each constant.

Language constant Text
SR_PLG_EXT_RESERVATION_ASSET_FIELD_FACILITIES_DINING_LABEL Dining
SR_PLG_EXT_RESERVATION_ASSET_FIELD_FACILITIES_DINING_DESC Enter some information about the dining you offer to your guests

A language override is kept when Solidres is updated. A line added to a language file of Solidres is not, so do not edit those files.

Step 3: fill it in

Edit a property in the administrator and open the Custom fields tab. The new field is at the end of the group Facilities. Enter a text and save.

How to show a custom field on the website

The built-in fields are shown by the templates of Solidres. A field you add is saved, but no template knows it yet, so it has to be added to one. Do this in a template override, a copy of the file inside your Joomla template, and leave the file of Solidres as it is: an update replaces it.

There are three files. For each one, the first line is the file of Solidres and the second line is the place of your copy, both inside the folder of your Joomla installation:

  • The facilities and policies of a property

    components/com_solidres/tmpl/reservationasset/default_information.php
    templates/YOUR_TEMPLATE/html/com_solidres/reservationasset/default_information.php
  • The same, for a property shown with the apartment layout

    components/com_solidres/tmpl/apartment/default_information.php
    templates/YOUR_TEMPLATE/html/com_solidres/apartment/default_information.php
  • The fields of a room type

    components/com_solidres/layouts/roomtype/customfields.php
    templates/YOUR_TEMPLATE/html/layouts/com_solidres/roomtype/customfields.php

To show the dining field of the example, open your copy of default_information.php and add the name of the field to the list of facilities:

$facilities = [
    'general',
    'activities',
    'services',
    'internet',
    'parking',
    'dining',
];

The template looks for the label of a field under the constant SR_CUSTOMFIELD_ followed by the name of the field in capitals. Create one more language override, this time for the Site:

Language constant Text
SR_CUSTOMFIELD_DINING Dining

The new field is now shown on the property page, below Parking. A field that is left empty in a property is not shown.

A field of a room type is added the same way. In your copy of customfields.php, add a block for it. For a field named view:

if (!empty($roomType->roomtype_custom_fields['view'])) :
    echo '<p><strong>' . Text::_('SR_CUSTOMFIELD_VIEW') . ':</strong> '
        . $roomType->roomtype_custom_fields['view'] . '</p>';
endif;

NOTE After an update of Solidres, open Solidres → System. The Template override check list tells you which of your overrides are older than the file they replace. Compare those with the new file and bring them up to date.

One field, several languages

The facilities and policies of a property can hold a text per language. Wrap each text in a language tag that carries the URL language code of the language, the one set under System → Content Languages: en, fr, de. The property page shows the text of the current language:

{lang en}Breakfast is served from 7:00 to 10:30.{/lang}
{lang fr}Le petit-déjeuner est servi de 7h00 à 10h30.{/lang}
{lang de}Frühstück gibt es von 7:00 bis 10:30 Uhr.{/lang}

A text without a language tag is shown in every language.

How to delete a custom field

  1. Delete the <field> tag from the XML file.
  2. Edit each property or room type that used the field and save it. This removes the text of the field from the database.
  3. If you added the field to a template override, remove it there as well.

To hide one of the built-in fields, you do not need to delete it: leave it empty, or disable it in the options of the plugin Extension - Solidres. To hide the whole Facilities or Policies section of a property page, use the options of the property.

Troubleshooting

Symptom Cause and fix
Customers → Custom fields shows "plugin Custom Field is not installed or enabled" Install the Custom Field plugin, or enable Solidres - Custom Field plugin under System → Plugins.
The Hub or Experience installer stops and asks for the Custom Field plugin The plugin is missing, disabled or older than 2.0.0. Install or enable it, then install the package again.
A new field is not shown in the form Check, in this order: the field is published; it was created in the list of the right form; the guest has the Access level of the field; the property, or the experience, is in one of the Categories of the field, or the field has none.
The answer to a field is missing from the reservation, or another value of the reservation is wrong The input name does not start with the prefix of the form, or two fields share one input name. See The input name.
A room form field is never shown It has Assigned extras, and the guest did not select one of them. Check the IDs, and that they are separated by commas without spaces.
The guest cannot continue, and no field looks empty A required field is hidden because it has assigned extras. Set Optional to Yes on it.
The booking is refused with a message that the emails do not match Confirm Email is published and the two addresses differ. To ask for the address once, unpublish Confirm Email.
A file is refused It is larger than the maximum size, or of a type that is not allowed, in Content → Media → Options.
A default field cannot be deleted This is intended. Unpublish it instead.
The field list of the form cannot be reordered Sort the list by its first column, the one with the handles. Dragging works in that order only.
A field is not in the reservation list Its input name is missing from Custom fields in reservation list in the Solidres options, or it is misspelled there. Only guest form fields can be shown.
A field title is shown as a text in capitals, such as MY_FIELD_ARRIVAL_TIME The title is a language constant without a text. Create the language override for the Site and for the Administrator.
The Custom fields tab of a property shows a label in capitals The language override for the label is missing, or it was created for the Site. The label of the administrator needs one for the Administrator.
The Custom fields tab of a property or a room type is empty The plugin Extension - Solidres is disabled, or the XML file is no longer valid. Enable the plugin, and check that every tag you added is closed.
A field added to the XML file is gone after an update The update replaced the file. Add the field again from your copy. The texts entered in the properties are still there.
A field added to the XML file is filled in, but not shown on the website It is not in the template yet. See How to show a custom field on the website.

All the things you need to make your work easier. Did you like Solidres?