Field types
All 19 field types in Sense Forms, what each one stores, and when to use it.
Sense Forms includes 19 field types. All of them are free — none are held back for a paid tier.
Standard fields
| Field | Stores | Notes |
|---|---|---|
| Text | Single line of text | The general-purpose field |
| Email address | Format-validated on the server | |
| Phone | Phone number | No format enforced by default |
| Textarea | Multiple lines | For messages and longer answers |
| Number | Numeric value | Accepts min and max validation |
| Website URL | A URL | Format-validated on the server |
Choice fields
| Field | Behaviour |
|---|---|
| Dropdown | Pick one from a list |
| Radio Buttons | Pick one, all options visible |
| Checkboxes | Pick any number, stored as a comma-separated list |
Radio buttons suit three or four options where you want them all visible. A dropdown is better beyond that.
Advanced fields
Name (First/Last) — two inputs stored as separate values, so you can greet someone by first name in a confirmation email.
Address — street, city, state, postcode and country as separate sub-fields.
Date Picker — a date value using the browser’s native date control.
Time Picker — a time value using the browser’s native time control.
File Upload — see below.
Hidden Field — not shown to the visitor. Useful for passing a fixed value such as which page or campaign a form belongs to. Note you do not need hidden fields for attribution data; Sense Forms captures that automatically.
Layout elements
These structure the form and do not collect data:
- Heading — a section title within the form
- Divider — a horizontal rule
- Custom HTML — arbitrary markup, for explanatory text or images
- GDPR Agreement — a consent checkbox with text you control
About file uploads
Uploaded files are checked in two ways before being accepted. The extension is validated against WordPress’s allowed types, and wp_check_filetype_and_ext() inspects the actual file contents — so renaming virus.exe to photo.jpg does not get it through.
The default size limit is 5 MB. Developers can change it:
add_filter( 'sense_forms_max_upload_size', function () {
return 10 * MB_IN_BYTES;
} );
Your server’s own upload_max_filesize and post_max_size limits still apply and are usually lower on shared hosting. If large uploads fail silently, that is normally why.
Validation
Any field can carry an additional format check beyond required/not required: email, url, number, date, time, or a custom regular expression via pattern.
Validation runs on the server as well as in the browser, so a visitor cannot bypass it by disabling JavaScript.