
The Advanced Forms add-on gives you full control over your booking forms. You can ask any kind of information to your customers, and even to each participant of the booked event. These data will be visible and can be changed without restriction in your reservation list. You can also use them in your notifications.
Set your custom fields
Text, number, file, checkboxes, radio buttons, date, time… all field types are supported. As a result, you can integrate with your reservation forms any useful field to your activity, for example: height, weight, digital copy of a document, free comment…

These fields are fully customizable: you can define the displayed texts, the field value(s), whether the field is mandatory, and whether the given value(s) should be visible by the customer. Other options may appear according to the field type.
Offer paid options
It is possible to set a price on your custom fields, so that they will become paid options. The price can also be negative to offer discounts.
For selectboxes, checkboxes, and radio buttons, you will be able to set a different price for each possible values. If the customer selects multiple values, the prices corresponding to the selected values will be cumulated.
For number fields, you have an option to multiply the price by the value.
Finally, there is also an option to multiply the price of the field by the quantity. So you can define whether the paid option price is a one-off or a per-person price.

The price is displayed next to the field and is dynamically updated as your customer changes its value or the quantity.
Paid options are fully compatible with WooCommerce. Their price will be added to the product price and clearly displayed in cart and in the order details.
They are also compatible with the Prices and Credits add-on: you can set a price in credits and pay the options with a booking pass.
Get data from each participant
For certain activities, you may need to gather specific information about each participant. The Advanced Forms add-on meets this need; you can display each custom fields for each participant. So when your client increases the quantity, a new set of fields appears. Each participant will have to fill in his own fields.

You can define the amount of participants per reserved unit. Indeed, one reserved place isn’t always equal to one participant.
WooCommerce users will be pleased to see that the data provided in the form are bound to the order item. In other words, your customers will be able to verify their data in their shopping cart and keep trace of them in their order summary.

View and change booking metadata
For each custom field created, the Advanced Forms add-on adds a column to the reservation list. You can find the field value in this column. You can see and edit all the custom fields values at once in another global column.

It is possible to add, modify and delete metadata to your reservations as you wish, including those made with a form with no custom fields. Similarly, you can add or delete participants and edit their data.
Finally, you will be able to filter the booking list by custom fields values. E.g.:
– If you have a “Country” field, you can display the bookings for which the customer has chosen “France” only;
– If you have a field “Hobbies” on each participant, you can display the bookings for which one of the participants has chosen “Football” only.
Use metadata in notifications
Finally, you can use several new tags in Booking Activities notifications to display the booking custom fields values.
To display the complete custom fields values list, use the global tag: {custom_fields}
. If you need to display only one specific value, individual tags have been provided for each custom field: {field_field_name}
. Similarly, you can display the fields values for each participant using the {participants}
tag.

Required
Advanced Forms is a Booking Activities add-on, so you will first need to install and activate Booking Activities plugin. Woocommerce-related features will automatically be activated when WooCommerce plugin will be installed and activated in conjunction with Booking Activities and Advanced Forms.
1.3.0 - 2023/05/23
- See the friendly release note
- Feature - Add the [bookingactivities_user_custom_fields] shortcode to allow logged-in users to change the values associated to their account
- Feature - Add the "Save custom field values" form field to allow the customers to save the custom field values and prefill the forms next time
- Dev - PHP hook baaf_current_user_can_edit_custom_fields_on_user_profile replaced with baaf_current_user_can_edit_user_custom_fields
- Dev - Compatibility with Booking Activities 1.15.13
1.2.29 - 2023/04/14
- Tweak - Add German translation (by @lillimarilli)
- Fix - Custom fields columns in backend booking list were not hidden if their name is numeric
- Fix - Custom fields filters dialog was not filled with current filters
1.2.28 - 2022/12/20
- Fix - Invalid nonce error when trying to update a custom form field
1.2.27 - 2022/11/24
- Fix - Date and Time custom fields value was empty if input value had invalid format
- Dev - Functions triggered on WC product pages only can now be triggered on any page having the "woocommerce" class
- Dev - Standardize the use of nonces with BA 1.15.5 (input name = nonce)
1.2.26 - 2022/10/06
- Tweak - Use select2 library for options using selectboxes with multiple values
- Fix - Custom fields values couldn't be managed on current user profile
- Dev - Change js and css minification processor to Google Closure Compiler (replace all .min files)
- Dev - Compatibility with BA 1.15.4
1.2.25 - 2022/08/31
- Dev - Compatibility with Booking Activities 1.15.0
1.2.24 - 2022/06/19
- Fix - Impossible to add a custom field to form right after creating it (needed to reload the page)
- Dev - (Beta) Compatibility with Persistent Object Cache (Memcached, Redis...)
1.2.23 - 2022/06/08
- Fix - Participants rows may not be at the correct position in the list during bookings export
- Tweak - Remove max height in admin dialogs
- Dev - Refactor custom fields CRUD
- Dev - Compatibility with WPML and Booking Activities 1.14.0
1.2.22 - 2022/02/25
- Fix - Do not add price in custom field label when exporting bookings
1.2.21 - 2022/01/10
- Fix - Cast to int or float before using abs to prevent PHP error with PHP 8
1.2.20 - 2021/12/06
- Fix - err_invalid_response error code may appear while trying to download a file tranferred via a custom field
- Fix - PHP error may appear when exporting booking groups
1.2.19 - 2021/10/27
- Tweak - Add an option in custom fields settings to hide the field price in the form
- Tweak - Support Total Price field
1.2.18 - 2021/09/23
- Tweak - Display the button to edit booking custom fields values only if current user has bookacti_edit_bookings capability on the backend
- Fix - Custom fields displayed in booking custom fields edit dialog were not correctly ordered
- Dev - Set the array_search to strict mode
1.2.17 - 2021/09/08
- Fix - Custom fields may not be taken into account if their name were numeric only
- Fix - Keep only the registration form custom fields when they are used in both registration form and booking form and login type is no_account or new_account - when form action is add to cart too
- Fix - Grouped bookings rows were not updated if they were already displayed after updating a booking group custom fields
- Dev - Switch the first two parameters of the baaf_booking_custom_fields_updated PHP hook for better compatibility
1.2.16 - 2021/08/23
- Fix - Display custom fields value and its price in a span rather than a div to avoid line breaks in emails
- Fix - Disallow the custom field name: quantity
- Fix - Display the booking custom fields values in the form fields order
- Fix - Keep only the registration form custom fields when they are used in both registration form and booking form and login type is no_account or new_account
- Fix - Allow to download and update files directly from user profile edit page
- Dev - Allow plugins to change FormData thanks to the js hook bookacti_before_submit_booking_custom_fields_form
- Dev - Refactor file storage and access according to latest security best practices (for File custom fields)
- Dev - Improve time fields values sanitization
- Dev - Compatibility with Booking Activities 1.12.0
1.2.15 - 2021/08/18
- Fix - Cannot use only file custom fields in participants fields
- Fix - Participants files were not uploaded if two same products and event were added to cart
- Fix - Participants files download links may no longer be displayed after updating bookings custom fields values from backend
- Fix - Wrong number of participants saved after updating participants custom fields values if participants were not displayed in order
- Fix - It was no longer possible to edit an intermediate participant custom fields values if it was deleted or empty
- Dev - Refactor file uploads and add hooks to tweak allowed mimes (baaf_allowed_mime_types) and size (baaf_upload_size_limit)
1.2.14 - 2021/03/12
- Fix - Custom fields displayed in registration form was not correctly ordered
- Fix - Custom fields values were not displayed if their name was numeric only
- Fix - Incorrect cart quantity after update if the number of participants per unit was not 1
1.2.13 - 2021/01/27
- Warning - Number of participants per unit should not be set to 0 in case of multiple bookings
- Fix - Display the paid options in WC cart with or without tax according to WC settings
- Fix - Custom fields price was not taken into account if the value was numeric (selectboxes, checkboxes and radio buttons)
- Dev - Compatibility with Booking Activities 1.9.0
1.2.12 - 2020/09/16
- Fix - Some texts were not translated
- Fix - Deprecation warning for the whitelist_options hook in WP 5.5
1.2.11 - 2020/08/26
- Fix - PHP warnings and custom fields price not displayed on existing bookings if the custom field is deleted afterwards
- Fix - Error when Number of participants per unit = 0 in Participants Fields settings and in activity settings (or group category settings)
1.2.10 - 2020/07/01
- Fix - Custom fields price were added twice to the product price if the customer created an account during checkout with WC
1.2.9 - 2020/06/04
- Tweak - Change the custom register fields values check for registration forms for Booking Activities 1.8.4+
- Fix - PHP error when trying to activate Prices and Credits if Advanced Forms is active first
- Fix - The add-on was not loaded on multisite intalls
- Fix - Misspelling of occurred
1.2.8 - 2020/05/21
- Tweak - Use WC additional settings to format price (thousand separator, decimal separator, number of decimals)
- Fix - Not possible to set a negative number as custom field price
- Fix - Not possible to set a decimal number as custom field price (not credits)
1.2.7 - 2020/05/12
- Breaking change - Drop backward compatibility and support with WooCommerce < 3.0
- Tweak - Support for BA 1.8 login forms (custom registration fields values are properly saved as user meta)
- Tweak - Compatibility with Booking Activities 1.8.0 bookings export options
- Tweak - Improve the participants display on admin order pages
- Fix - Conflicts with booking meta passed via URL while formatting booking filters. Replace inputs name from meta to booking_meta
- Fix - Incorrect display of the currency symbol in exports
1.2.6 - 2020/02/08
- Fix - Custom fields on registration option was not properly saved
1.2.5 - 2020/01/29
- Fix - Avoid serialization problems while updating metadata
- Fix - JS error while removing custom field
1.2.4 - 2020/01/09
- Tweak - Display IDs in form editor dialogs (useful for CSS)
1.2.3 - 2019/12/20
- Fix - Reschedule price matching didn't work with WC when the booking had paid custom fields
- Fix - Compatibility issue with woocommerce_email_styles with WC < 3.0
1.2.2 - 2019/12/03
- Fix - Select, radio and checkboxes values cannot be numeric
- Fix - Cannot use HTML in "Terms" fields
1.2.1 - 2019/11/02
- Fix - Incorrect display of custom fields prices in WC notifications
1.2.0 - 2019/10/25
- See the friendly release note
- Feature - Define a price for your custom fields and display it next to them on your booking forms
- Feature - Paid custom fields are fully integrated to WooCommerce, you can set up paid options for your activities!
- Feature - Option to multiply custom fields prices by the quantity (the displayed price changes dynamically)
- Feature - Option to multiply a number custom field price by its value (the displayed price changes dynamically)
- Feature - Custom fields prices and total price can be exported
- Feature - Paid custom fields price can also be set in credits with Prices and Credits 1.4.0+
- Tweak - Fill the price details column in the backend booking list with custom fields prices
- Fix - Support the value 0 for min and max attributes of number fields
- Fix - Incorrect scroll while adding a participant in Safari browser
- Fix - {custom_fields} tag didn't work in notifications
- Fix - Fields with hidden values appeared in WC cart
- Dev - Confusion between custom fields data and meta cleared
1.1.1 - 2019/08/18
- Fix - Empty user data in user booking list
1.1.0 - 2019/08/09
- Feature - Use custom fields for user metadata (instead of booking metadata)
- Dev - Replace PHP constant in text domain by a raw string
1.0.14 - 2019/07/02
- Fix - Remove custom fields meta from WC order item when deleting a booking and choosing the option to do so
- Dev - Support booking form loaded after page load, and booking form without form wrap
1.0.13 - 2019/06/14
- Fix - Empty custom field columns in user booking list
1.0.12 - 2019/06/06
- Tweak - Option to display one row per participant in booking export and in booking lists ([bookingactivities_list one_row_per_participant="1"]
- Tweak - Allow to add custom fields columns to the user booking list
- Fix - Filtering bookings by custom fields was not always accurate
- Fix - Cannot filter booking list by both participant meta and booking meta
1.0.11 - 2019/05/10
- Tweak - Compatibility with price categories and volume discounts features from "Prices and Credits" add-on
- Fix - Check participants field on quantity field "change" action too
1.0.10 - 2019/04/04
- Fix - Support the value "0" for "number" and "text" fields
- Fix - WC cart items with a defined number of participants may be merged if no custom fields were filled
1.0.9 - 2019/04/02
- Fix - Empty field error appeared even if they were not required
- Fix - "Participant #%d" couldn't be translated
1.0.8 - 2019/03/28
- Optimization - Change the way metadata are verified to filter bookings for a better scalability
- Optimization - Change the way custom form fields metadata are retrieved for a better scalability
- Fix - Custom fields should not be required when used as booking filters
- Fix - Add support for theme using javasript to change WC product quantity before adding to cart
1.0.7 - 2019/03/01
- Feature - Option to mark custom fields as "Personal data", so they can be exported / erased with WP tools
- Feature - Booking Activities 1.7 "Add a product to cart" form action is fully supported with custom fields
- Tweak - Check min, max and step requirements on server side too (for number, date and time fields)
- Tweak - Backend javascript and css files are loaded only on Booking Activities screens to avoid conflicts
- Fix - Do not allow to update cart item quantity when it is has a defined number of participants
- Fix - Do not allow to merge cart items when it is has a defined number of participants
- Fix - Field specific metadata were not updated if the master field didn't have these metadata
- Fix - Add index.php empty files in upload directories
1.0.6 - 2019/01/16
- {participants} notification tag fixed
1.0.5 - 2019/01/03
- Tweak - Add / Remove participants fieldset when the page is loaded with a predefined quantity (for BA 1.7)
- Fix - Booking group meta were not auto-completed while trying ot edit them
1.0.4 - 2018/11/29
- Feature - Export bookings: Custom fields columns
- Optimization - Less queries while displaying the booking list (backend)
- Tweak - Check BA option to delete all data before uninstall, in order to avoid accidental data deletion
1.0.3 - 2018/10/11
- Fix - JS error when increasing quantity if a participant field doesn't have any fields
1.0.2 - 2018/09/28
- Fix - jQuery error when participants field has no field to display
- Fix - Duplicated WC order item meta when updating a booking custom field meta
- Tweak - Reserve 'booking_pass' field name
1.0.1 - 2018/08/19
- Fix - Remove mbstring (PHP extension) dependency (use regex to check UTF8 if mbstring is not available)
- Fix - All "array" order item meta were lost while updating a WC order (replaced serialize with json_encode)
- Fix - Cannot add participant fields values on booking that were not made with a form having the "Participants" field
- Fix - Participants fields values were not added in WC order item meta if they didn't already exist
- Fix - Date and time fields values were not properly formatted
- Fix - New custom fields were not dynamically added to "Participants" settings, you had to refresh the page
1.0.0 - 2018/06/30
- Feature - Create and manage custom fields of any kind (text, textarea, checkbox(es), select, radio, file, email, password, tel, number, date, time, hidden)
- Feature - Add your custom fields to your forms
- Feature - Add custom fields for each participant
- Feature - Display custom fields values in notifications
- Feature - Display custom fields values on WooCommerce order item
- Feature - Display and edit custom fields values in the booking list
- Feature - Filter the booking list by custom fields values