Description
LocalForm is a form builder for WordPress. Build a form in minutes in a clean, distraction-free builder, publish it to an auto-generated page, and share the link – no page building, no shortcode wrangling, no fighting your theme’s CSS.
The name says what it does: every response stays local, on your own site, under your own domain and branding. Nothing is sent to a third-party form service, which keeps you in control for GDPR purposes. And unlike heavyweight form plugins, there is nothing to configure before your first form is live.
Why LocalForm?
- Simple. A distraction-free builder: add questions, drag to reorder, pick your colors, publish.
- Share a link. Every form gets its own fullscreen page with a configurable URL – or embed it anywhere with a shortcode or block.
- Your data stays yours. Responses live in your WordPress database, exportable as XLSX – or stored nowhere at all with webhook-only mode.
- Built for automation. Signed webhooks (HMAC-SHA256) with retries and a delivery log connect responses to your own backend or any automation tool.
- No external requests. Fonts are bundled with the plugin and served from your own domain. LocalForm never calls home.
LocalForm works great for surveys, feedback and intake forms, sign-ups, and especially event registrations: set a maximum number of registrations, open/close date-times, an event date, time, location, organizer and price, and send registrants a confirmation email.
Fully functional, no locked features
Every feature described here is included and fully functional. There is no license key, no trial period, no usage quota, and nothing is disabled until you pay.
A separate premium add-on plugin, LocalForm Pro, is distributed by the author outside WordPress.org and adds further features (conditional fields, file uploads, reusable field templates, global webhook fields, prefill from URL). It is a wholly separate plugin: none of its code ships in, or is required by, this one.
Features
- Visual drag-and-drop form builder in the WordPress admin.
- Field types: text, email, phone, dropdown, single choice (radio), number, checkbox (multi-select), date, date range, rating, and textarea.
- Auto-generated pages with configurable slugs, including nested paths.
- Embed forms anywhere with the
[localform id="123"]shortcode or the LocalForm Gutenberg block. - Share dialog in the builder: copy the form’s link, copy the embed shortcode, and download a QR code generated on your own site.
- Email notifications: notify the site admin on each registration and send registrants a customizable confirmation email with placeholder support.
- Registration limits: maximum number of registrations, and open/close date-times with a configurable closed message.
- Fullscreen frontend template independent of the active theme, with an optional per-form setting to use the active theme’s page template instead.
- AJAX submission with inline validation and a configurable success message.
- Responses screen with a per-question summary: answer counts and bar charts for choice questions, min/average/max for numbers, per-day counts for dates, and the latest answers for open questions.
- Submissions stored in custom database tables and viewable per form in the admin.
- Export submissions as XLSX from the submissions screen.
- Backup and restore: download every form, submission and setting as one JSON file, and restore it here or on another site.
- Webhook-only mode: per-form option to skip saving submissions and send only to a webhook.
- Webhooks: POST JSON to a configurable URL with HMAC-SHA256 signature and retry logic (max 3 attempts with exponential backoff).
- Webhook log viewer with 30-day retention.
- Event details: event date, time, location, organizer and payment price per form, shown on the form page and included in the webhook payload and confirmation emails.
- Settings page for default webhook URL and secret key.
- Built-in security: invisible honeypot field, IP-based rate limiting, and duplicate submission protection.
- Phone number validation and improved server-side validation for all field types.
- Seven bundled font families for the form’s design, served from your own domain.
- Fully translatable, with translations contributed through translate.wordpress.org.
External services
This plugin does not connect to any external service on its own. It contains no analytics, telemetry, license checks or remotely hosted assets.
The one outbound request it can make is entirely under your control: if you enter a webhook URL on a form (or as the site-wide default under Forms > Settings > Webhooks), each submission is POSTed as JSON to that URL, signed with HMAC-SHA256. That destination is chosen and operated by you – the plugin has no default endpoint and sends nothing anywhere if no webhook URL is configured. The payload contains the submitted answers, the form title and slug, the event details you set on the form, and any custom fields you added. Consult the privacy policy and terms of the service you point the webhook at, since they are the party receiving the data.
Screenshots




Blocks
This plugin provides 1 block.
- LocalForm
Installation
- Upload the plugin files to
/wp-content/plugins/localform/, or install the plugin through the WordPress plugins screen directly. - Activate the plugin through the ‘Plugins’ screen in WordPress.
- Go to ‘Forms’ in the admin menu to create your first form.
- Configure webhooks and default settings under ‘Forms > Settings’.
FAQ
-
Does LocalForm send any data to an external service?
-
No. The plugin makes no outbound requests of its own: no analytics, no license checks, no telemetry, and no remotely hosted fonts or scripts. The only outbound request it can ever make is to the webhook URL you configure yourself, and only if you configure one.
-
Can I embed a form in an existing page?
-
Yes. Use the
[localform id="123"]shortcode (or[localform slug="my-event"]), or add the LocalForm block in the block editor. The auto-generated form page keeps working alongside embeds. -
Does LocalForm send confirmation emails?
-
Yes. Each form can email the site admin on every registration and send the registrant a confirmation email. The confirmation subject and message support placeholders such as
{form_title},{event_date}, and any field name in braces. -
Can I limit the number of registrations?
-
Yes. Set a maximum number of registrations and/or an open and close date-time per form. When the form is full or closed, visitors see a configurable message instead of the form. The capacity limit requires “Save submissions in WordPress” to be enabled.
-
Can I use the active theme’s page template instead of the fullscreen template?
-
Yes. Each form has a setting to use the active theme’s page template instead of the built-in fullscreen template.
-
Does LocalForm save submissions when webhooks are enabled?
-
By default, yes. You can enable “Webhook-only mode” on a per-form basis to skip saving submissions and send data only to the webhook.
-
How are webhook requests signed?
-
Webhook payloads are signed with HMAC-SHA256 using the secret key configured in the form or default settings.
-
How does LocalForm protect against spam?
-
LocalForm includes an invisible honeypot field, IP-based rate limiting, and duplicate-submission protection. All three can be configured under Forms > Settings > Security.
-
What happens to my forms and submissions if I delete the plugin?
-
Deactivating LocalForm never touches your data. Deleting it removes everything by default: the forms, submissions and webhook log tables are dropped and the plugin’s options are deleted. If you want that data to survive a delete, enable “Keep my data when the plugin is deleted” under Forms > Settings > Data before removing the plugin.
-
Can I back up my forms and move them to another site?
-
Yes. Forms > Settings > Data has a Backup & Restore card. “Download backup” gives you a single JSON file containing every form, its submissions and your plugin settings, and the restore form on the same screen reads that file back. Because forms are re-created through the normal validation path rather than by copying database rows, a backup restores onto a different site just as well as onto the one it came from. Webhook logs are not included.
-
What happens on restore if a form already exists?
-
Forms are matched on their slug. Forms in the file that do not exist on the site are always added; for ones that do, you choose whether to leave the existing form alone or replace it with the backed-up version. Replacing a form also replaces its submissions, so importing the same file twice never duplicates them.
-
Which fonts does the form builder use, and where do they come from?
-
Seven families (Inter, Roboto, Open Sans, Lato, Montserrat, Poppins and Nunito) are bundled with the plugin and served from your own site. They are not loaded from Google Fonts or any other CDN, so choosing one never discloses a visitor’s IP address to a third party. All seven are licensed under the SIL Open Font License 1.1; the license text is included at
assets/fonts/OFL.txt.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“LocalForm Form Builder for Surveys and Registrations” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “LocalForm Form Builder for Surveys and Registrations” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.4.0
- Renamed the plugin to LocalForm. Existing forms, submissions, webhook logs and settings are migrated automatically on upgrade.
- Event details (date, time, location, organizer, price) are now part of the free plugin, with their own settings card in the form builder.
- Fonts are bundled with the plugin and served from your own domain; the form page no longer requests anything from Google Fonts.
- All request data is sanitized at the point it is received, before it is shaped, stored or passed to any filter.
- Per-form colors and fonts are attached to the enqueued stylesheets instead of being printed as inline
<style>tags. - Translations are now delivered through translate.wordpress.org rather than bundled with the plugin.
- New “Keep my data when the plugin is deleted” setting under Settings > Data, for sites that want their forms and submissions to survive an uninstall.
- Backup & Restore under Settings > Data: download every form, submission and setting as one JSON file, and restore it here or on another site.
0.6.0
- Email notifications: per-form admin notification and registrant confirmation emails with placeholder support.
- Registration limits: maximum registrations plus open/close date-times, with a configurable closed message.
- Embedding:
[localform]shortcode and a LocalForm Gutenberg block to place forms on any page or post. - New field types: single choice (radio) and date.
0.5.0
- Tag management for organizing forms, with tag filtering in the forms list.
- Slug field enhancements in the form editor.
0.4.0
- Text and image blocks for adding static content to forms.
- Performance improvements to form resolution and template loading.
0.3.0
- Per-form event date and payment price, included in the webhook payload and shown on the form page.
- Semantic-release based build and packaging pipeline.
0.2.0
- Initial public release.
