Skip to main content

Field Groups and Repeaters

Pro adds field groups, which combine several fields into one set, and repeaters, which repeat that set as rows. Use them for things like "register up to 5 participants" or "treat the preferred contact method as one set".

Field typeWhat it is
Field GroupCombines several fields into one set. There is only one set
RepeaterRepeats a set of fields as rows that visitors can add and remove

Both are configured in almost the same way; a repeater adds row settings. The fields inside a set are called sub fields.

Creating a group or a repeater​

  1. In the Fields tab of the form editor, click + Add Field
  2. Choose Field Group or Repeater
  3. Enter a field name and a label on the Basic tab
  4. Open the Sub fields tab and use + Add sub field to add the fields that make up the set
  5. Save the form

In the sub field list, Edit expands the settings, and you can Duplicate, Remove and reorder sub fields with the up / down arrows.

Sub field settings​

Which settings appear depends on the type you choose.

SettingWhat it does
NameThe identifier used when storing values and in merge tags. Must be unique within the set
LabelThe field name shown to visitors
TypeThe kind of field (see below)
RequiredMakes the field required
Placeholder / Default value / Description / OptionsThe same as on a normal field
Columns to spanHow many columns this field occupies in the columns layout
Naming sub fields

A name must start with a letter and contain only lowercase letters, digits and underscores. Double underscores (__) are not allowed. The names year, month, day, part1, part2, part3, postal_code_part1, postal_code_part2, family, given and middle are reserved for internal use. The editor warns you as soon as you enter a name it cannot use.

Row settings (repeaters only)​

SettingWhat it does
Minimum rowsHow many rows are shown from the start (default 0). Visitors cannot go below this number
Maximum rowsThe maximum number of rows (default 10, maximum 100)
Row headingThe wording of the heading, which gets an automatic number, as in "Participant 1". Defaults to the field label
Add button textThe text on the button that adds a row (default "Add row")

Visitors add rows with the Add row button, and each row has buttons to remove it or move it up and down. The add button is disabled once the maximum is reached.

Set the minimum rows to 1 or more

With a minimum of 0, the form opens with no rows at all and no input fields appear until the visitor clicks "Add row". Set the minimum to 1 to show one row from the start.

Layout​

Both groups and repeaters can arrange the set in three ways.

LayoutResult
StackedFields are listed one below another
ColumnsFields are arranged in 1–4 columns. "Columns to span" changes how wide each field is
TableRepeaters only. Each row becomes one table row. Best with a small number of fields
On small screens

The table layout needs horizontal space. For repeaters with many fields, columns or stacked is easier to read.

Field types you can use in a set​

Available

  • Text, textarea, email, URL, number, hidden
  • Telephone (single or split inputs), postal code (single or split inputs)
  • Date (calendar), date (dropdowns), time
  • Dropdown, radio buttons, checkboxes, prefecture (single or multiple selection)
  • Name (parts), kana (parts), address
  • File upload

Not available

Field typeWhy
Field group, repeaterNesting is not supported
AcceptanceOne consent checkbox per form is enough
PasswordThere is no use for one per row
HTML, page break, custom mail tagThey are not input fields
Settings that do not apply inside a set
  • Postal code address auto-fill is not available inside a group or repeater (the setting is not shown)
  • Sub fields cannot have custom validation rules such as length or pattern
  • Prefilling from URL parameters does not apply to fields inside a set. Prefilling from a post (?post_id=) with {post_title} in the default value does work
Required name and address fields

When a name or kana field is required, the last name and first name are required (the middle name stays optional). When an address is required, the building, address line 2 and state stay optional. This matches how the same fields behave in the free plugin.

How the values are stored and displayed​

OutputHow it looks
Confirmation screenRepeaters are shown row by row, as in 1. Name: Taro Yamada / Email: taro@example.com. Groups are shown as Contact method: Email / Time: Morning, Evening
Notification emails{all_fields} and {field:<field name>} insert the same text as the confirmation screen, one row per line
CSV exportOne field goes into one cell, with rows separated by line breaks inside that cell
Submission detail in adminShown row by row. Files become download links
WebhookThe structure is sent as JSON as-is. Files are replaced by their file names

Name and address fields are combined into a single value for display (for example Name: Taro Yamada).

Sub fields cannot be inserted individually into emails

Tags such as {field:<group>.<sub field>} are not supported in this version. Use {field:<group field name>} to insert the whole set.

File uploads inside a set​

Add a File upload sub field to attach a file per row. The maximum file size and allowed extensions are set per sub field.

Uploaded files are stored like any other file field and can be downloaded from the submission detail screen in the admin.

Limit on files per submission

Servers limit how many files one request may contain (PHP's max_file_uploads, 20 by default). If "maximum rows × file fields per row" exceeds that limit, the editor shows a warning. Lower the maximum number of rows, or use fewer file sub fields.

Combining with conditional logic​

Groups and repeaters can have conditional logic attached, which shows or hides the whole set. While hidden, nothing inside the set is submitted, and required sub fields do not block submission.

However, conditions cannot be attached to individual fields inside a set, and fields inside a set cannot be used as the trigger of a condition.

When you use an HTML template​

In an input screen HTML template, [fplant_field name="members"] outputs the whole set at that position. The fields inside a set cannot be placed individually.

In a custom confirmation template, [fplant_value name="members"] displays the contents of the whole set.

Limitations​

  • Nesting groups or repeaters inside one another is not supported
  • Conditions cannot be attached to individual fields inside a set, and those fields cannot trigger a condition
  • Postal code address auto-fill is not available inside a set
  • Rows cannot be reordered by dragging (the up / down buttons work)
  • Acceptance and password fields cannot be placed inside a set
  • Per-sub-field merge tags such as {field:<group>.<sub field>} are not supported
  • Groups and repeaters do not work in JavaScript embeds (the snippet for external sites). They do work in iframe embeds