Registration form formatting

The registration form is called inside a single event by using the placeholder #_ADDBOOKINGFORM (or alike) or independently on a page via the shortcode [eme_add_booking_form] or the shortcode eme_add_multibooking_form.

The registration form can be completely customized. You can define any number of fields in the “Events => Form fields” page, then go to the “Events => Settings” page and change the general layout of the registration form format. The default is:

<table class='eme-rsvp-form'>
<tr><th scope='row'>Name*:</th><td>#_NAME</td></tr>
<tr><th scope='row'>E-Mail*:</th><td>#_EMAIL</td></tr>
<tr><th scope='row'>Phone number:</th><td>#_PHONE</td></tr>
<tr><th scope='row'>Seats*:</th><td>#_SEATS</td></tr>
<tr><th scope='row'>Comment:</th><td>#_COMMENT</td></tr>
<tr><th scope='row'>Please fill in the code displayed here:</th><td>#_CAPTCHA</td></tr>
</table>
#_SUBMIT

You can use the standard placeholders for events AND the extra placeholders mentioned below:

  • #_LASTNAME (*) displays a text field for the name of the respondent.
  • #_EMAIL (*) displays a text field for the e-mail address of the respondent.
  • #_PHONE (*) displays a text field for the phone of the respondent.
  • #_FIRSTNAME, #_ADDRESS1, #_ADDRESS2, #_CITY, #_STATE, #_ZIP, #_COUNTRY (*) (pretty obvious …)
  • #_SEATS (**) or #_SPACES (**) displays a dropdown field for the number of seats to reserve.
  • #_SEATS{xx} (**) or #_SPACES{xx} (**) (with xx being a number): displays a dropdown field for the number of seats to reserve for a specific price for multiprice events.
  • #_SUBMIT{} (*) displays displays the submit button with between the braces the text you want for the button (qtranslate compatible).
  • #_SUBMIT (*) displays displays the submit button with the text you want for the button the text configured on the Settings page.
  • #_COMMENT (*) displays a text area for a possible comment.
  • #_CAPTCHAHTML{...} (*) displays the html between the braces for the captcha, but only if the captcha option has been activated. Inside the braces, you should use the shortcode #_CAPTCHA to display the captcha itself, otherwise nothing will happen. This option is deprecated!
  • #_CAPTCHA (*) displays the captcha part.
  • #_RECAPTCHA (*) required if Google reCAPTCHA is configured to be used.
  • #_FIELD{xx} (***) displays custom made fields (replace xx by the ID or the name of a field you created in the “Events => Form fields” page.
  • #_FIELDNAME{xx} (***) displays the title/name of the custom made fields (replace xx or the name by the ID of a field you created in the “Events => Form fields” page.
  • #_DYNAMICPRICE (*) shows the total price to pay in the rsvp form already (taking regular discounts into account).
  • #_DYNAMICDATA can ask for extra data based on the amount of seats booked (see below)
  • #_OPT_IN and #_OPT_OUT Both will display a yes/no choice for massmailing preferences for the person entering the form (used in e.g. the newsletter feature). #_OPT_IN will by default select “yes” for massmailing, #_OPT_OUT will be default select “no”. The #_OPT_OUT option is not GDPR compliant, so it is recommended not to use it. If neither is used, “no” is taken.
  • #_DISCOUNT shows a field where a discount code can be entered (can be used multiple times). See the doc on discounts for more info on discounts.
  • #_PASSWORD will show a field to enter the RSVP password in, in case the form submit is protected by a password (defined in the RSVP settings for an event).

For any shortcode, if you start with “#REQ_” instead of “#_”, the field becomes required and cannot be left empty or 0 upon registration (e.g.: #REQ_COMMENT or #REQ_FIELD{xx})
Warning: if the shortcodes #_LASTNAME, #_EMAIL, #_SEATS or #_SUBMIT are not present, the form is not valid and will not be shown.
Also, #_NAME and #_EMAIL are always required fields, so no need to use #REQ_NAME or #REQ_EMAIL.

(*) When creating a multi-booking form, those with a single ‘*’ can only be used in the header/footer template
(**) When creating a multi-booking form, those with double ‘**’ can only be used in the “list entry” template
(***) When creating a multi-booking form, those with tripple ‘***’ can be used in both header/footer and “list entry” templates, however: since this only concerns the FIELD placeholders, if you use them in the header/footer templates you need to be sure that all events in the multibooking form have the same fields defined in their RSVP format, otherwise the result will be undefined and can result in bugs.

Dynamic data

EME is able to ask for extra RSVP info based on other info in the form.
This is called ‘dynamic data’ in EME terms and can be controlled in the RSVP section of an event:

The ‘Field’ parameter is to be filled out with any valid placeholder used in the RSVP form (most commonly: #_SEATS, #_SEATS{1}, etc … but you can also use other placeholders as long as they are identical to the ones used in your form definition).
The template being shown (based on the condition being valid) can contain other placeholders. However, placeholders that are considered “personal info” are not allowed (like address info and such, since those are linked to the booker, not the booking), so best is to use only custom created fields.
The ‘Grouping index’ parameter should be a unique index per condition. This is used to set/retrieve all the entered info based on this condition in the database (so once set, always keep it to the same value for that condition). Since EME shows the dynamic fields in the order they are defined here, this allows you to change the order as long as you keep the grouping index the same (in order to match with previously stored answers).
The most common use case would be: if the number of selected seats is equal or higher than the indicated value, the selected template will be shown repeatedly based on the difference between the indicated value and the actual number of booked seats.
You can add multiple conditions (useful for multiseat events) and also select a template to be shown above/below the dynamic fields.
In your form, you can use #_FIELDGROUPINDEX to show the grouping index (see above) and #_FIELDCOUNTER to show the repetition count of a template (if set to “repeat”).

Once you defined your seat conditions, you can choose where they will appear in your form by using the placeholder #_DYNAMICDATA . The same placeholderĀ can be used in mails to show people what they entered.