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 type | What it is |
|---|---|
| Field Group | Combines several fields into one set. There is only one set |
| Repeater | Repeats 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
- In the Fields tab of the form editor, click + Add Field
- Choose Field Group or Repeater
- Enter a field name and a label on the Basic tab
- Open the Sub fields tab and use + Add sub field to add the fields that make up the set
- 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.
| Setting | What it does |
|---|---|
| Name | The identifier used when storing values and in merge tags. Must be unique within the set |
| Label | The field name shown to visitors |
| Type | The kind of field (see below) |
| Required | Makes the field required |
| Placeholder / Default value / Description / Options | The same as on a normal field |
| Columns to span | How many columns this field occupies in the columns layout |
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)
| Setting | What it does |
|---|---|
| Minimum rows | How many rows are shown from the start (default 0). Visitors cannot go below this number |
| Maximum rows | The maximum number of rows (default 10, maximum 100) |
| Row heading | The wording of the heading, which gets an automatic number, as in "Participant 1". Defaults to the field label |
| Add button text | The 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.
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.
| Layout | Result |
|---|---|
| Stacked | Fields are listed one below another |
| Columns | Fields are arranged in 1–4 columns. "Columns to span" changes how wide each field is |
| Table | Repeaters only. Each row becomes one table row. Best with a small number of fields |
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 type | Why |
|---|---|
| Field group, repeater | Nesting is not supported |
| Acceptance | One consent checkbox per form is enough |
| Password | There is no use for one per row |
| HTML, page break, custom mail tag | They are not input fields |
- 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
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
| Output | How it looks |
|---|---|
| Confirmation screen | Repeaters 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 export | One field goes into one cell, with rows separated by line breaks inside that cell |
| Submission detail in admin | Shown row by row. Files become download links |
| Webhook | The 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).
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.
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