{"id":338921,"date":"2026-09-09T16:34:19","date_gmt":"2026-09-09T16:34:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/elzo-forms\/"},"modified":"2026-09-09T16:33:53","modified_gmt":"2026-09-09T16:33:53","slug":"elzo-forms","status":"publish","type":"plugin","link":"https:\/\/ko.wordpress.org\/plugins\/elzo-forms\/","author":23564385,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Elzo Forms","header_author":"Elzo Forms","header_description":"A WordPress plugin for creating forms.","assets_banners_color":"b2c5c8","last_updated":"2026-09-09 16:33:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/elzoforms.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":30,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"elzoforms","date":"2026-09-09 16:33:53","revision":3688680}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3688680,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3688680,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3688680,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3688680,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3688680,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3688680,"resolution":"1","location":"assets","locale":"","width":2400,"height":1720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3688680,"resolution":"2","location":"assets","locale":"","width":2400,"height":1720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3688680,"resolution":"3","location":"assets","locale":"","width":2400,"height":1720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3688680,"resolution":"4","location":"assets","locale":"","width":2400,"height":1720},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3688680,"resolution":"5","location":"assets","locale":"","width":2400,"height":1720},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3688680,"resolution":"6","location":"assets","locale":"","width":2400,"height":1720},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3688680,"resolution":"7","location":"assets","locale":"","width":2400,"height":1720}},"screenshots":{"1":"Visual form builder with drag-and-drop field arrangement and individual field settings.","2":"Form style settings for colors, input appearance, borders, typography, and other visual options.","3":"Conditional field visibility based on form values, visitor login state, or page context.","4":"Multi-step forms with step labels, progress information, and configurable navigation text.","5":"Stored submissions with submitted field values, visitor information, and uploaded files.","6":"Email notifications, custom success messages, and optional redirects after form submission.","7":"Custom field type example showing how developers can extend Elzo Forms with their own field UI and behavior."}},"plugin_section":[],"plugin_tags":[358,8251,5887,2253,2419],"plugin_category":[],"plugin_contributors":[279978],"plugin_business_model":[],"class_list":["post-338921","plugin","type-plugin","status-publish","hentry","plugin_tags-contact-form","plugin_tags-custom-forms","plugin_tags-file-upload","plugin_tags-form-builder","plugin_tags-spam-protection","plugin_contributors-elzoforms","plugin_committers-elzoforms"],"banners":{"banner":"https:\/\/ps.w.org\/elzo-forms\/assets\/banner-772x250.png?rev=3688680","banner_2x":"https:\/\/ps.w.org\/elzo-forms\/assets\/banner-1544x500.png?rev=3688680","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/elzo-forms\/assets\/icon.svg?rev=3688680","icon":"https:\/\/ps.w.org\/elzo-forms\/assets\/icon.svg?rev=3688680","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-1.png?rev=3688680","caption":"Visual form builder with drag-and-drop field arrangement and individual field settings."},{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-2.png?rev=3688680","caption":"Form style settings for colors, input appearance, borders, typography, and other visual options."},{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-3.png?rev=3688680","caption":"Conditional field visibility based on form values, visitor login state, or page context."},{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-4.png?rev=3688680","caption":"Multi-step forms with step labels, progress information, and configurable navigation text."},{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-5.png?rev=3688680","caption":"Stored submissions with submitted field values, visitor information, and uploaded files."},{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-6.png?rev=3688680","caption":"Email notifications, custom success messages, and optional redirects after form submission."},{"src":"https:\/\/ps.w.org\/elzo-forms\/assets\/screenshot-7.png?rev=3688680","caption":"Custom field type example showing how developers can extend Elzo Forms with their own field UI and behavior."}],"raw_content":"<!--section=description-->\n<p>Elzo Forms is a form builder for WordPress. You build a form in the admin, place one shortcode where the form should appear, and every submission is stored on your own site. No page builder, no account, and no external service is required to run a form.<\/p>\n\n<p>Use it for contact forms, request and quote forms, lead forms, application forms, feedback forms, file upload forms, and other everyday site forms.<\/p>\n\n<h4>Building forms<\/h4>\n\n<ul>\n<li>Visual form builder inside the WordPress admin.<\/li>\n<li>Field types: text, textarea, select, checkbox, radio, range, file upload, hidden, content, and button.<\/li>\n<li>Text fields also cover email, telephone, URL, number, date, time, and password input, with matching validation.<\/li>\n<li>Responsive field widths (full, 1\/2, 1\/3, 1\/4) for multi-column layouts.<\/li>\n<li>Multi-step forms with configurable step navigation text.<\/li>\n<li>Conditional field visibility based on field values, visitor login state, or page context.<\/li>\n<li>Shortcode output with width and alignment options.<\/li>\n<\/ul>\n\n<h4>Submissions and notifications<\/h4>\n\n<ul>\n<li>Submissions are stored in the WordPress admin with the submitted values, uploaded files, and visitor details.<\/li>\n<li>Email notifications with configurable recipients, subject, and message text.<\/li>\n<li>AJAX or standard form submissions.<\/li>\n<li>Custom success message, or a redirect after a successful submission.<\/li>\n<li>File uploads with size limits, allowed file type checks, and chunked uploads for large files.<\/li>\n<\/ul>\n\n<h4>Spam protection<\/h4>\n\n<ul>\n<li>Minimum time before a form can be submitted, and a minimum interval between submissions.<\/li>\n<li>Blocked IP addresses and blocked words.<\/li>\n<li>Blocked submissions can be discarded or kept and marked as spam for review.<\/li>\n<li>Optional Google reCAPTCHA v3 and Akismet modules. Both stay disabled until you enable them and add your own keys.<\/li>\n<\/ul>\n\n<h4>Styling and customization<\/h4>\n\n<ul>\n<li>Global and per-form settings for form behavior, texts, and styling.<\/li>\n<li>Template overrides from an <code>elzo-forms<\/code> directory in your theme.<\/li>\n<li>Hooks and filters for custom field types, validation, and submission handling.<\/li>\n<li>Optional read-only JSON form sources, so a developer can ship forms with a theme or plugin and keep them under version control.<\/li>\n<\/ul>\n\n<h4>Free and paid versions<\/h4>\n\n<p>Everything described above is included in this plugin. No field type, module, or setting is locked behind a purchase.<\/p>\n\n<p>Post-submission automations, including webhooks, conditional automation actions, and cookie actions, are part of Elzo Forms PRO, a separate commercial plugin available at https:\/\/elzoforms.com. Elzo Forms PRO replaces this plugin instead of extending it: while it is active, Elzo Forms (free) stops loading and can be deactivated.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Elzo Forms stores form submissions on your own site, in your WordPress database.<\/p>\n\n<p>For each submission the plugin stores the submitted field values, the time of submission, the visitor IP address and browser user agent, the WordPress user ID if the visitor is logged in, and the page the form was submitted from. Files uploaded through a file field are stored in your uploads directory under <code>elzo-forms\/user-uploads<\/code>.<\/p>\n\n<p>None of this data leaves your site by default. It is shared with a third party only if you enable one of the optional anti-spam modules described below, and only in the way those sections describe.<\/p>\n\n<p>Elzo Forms does not add submission data to the WordPress personal data export and erasure tools. Submissions are managed from Forms &gt; Submissions in the WordPress admin.<\/p>\n\n<h3>Third-party Services<\/h3>\n\n<h4>Google reCAPTCHA v3<\/h4>\n\n<p>Elzo Forms includes an optional Google reCAPTCHA v3 module for spam protection. The module is disabled until a site administrator enables it and configures Google reCAPTCHA v3 site and secret keys.<\/p>\n\n<p>Service provider: Google LLC.<\/p>\n\n<p>When the module is enabled and a protected form with a configured site key is rendered, Elzo Forms loads the Google reCAPTCHA JavaScript API from:<\/p>\n\n<pre><code>https:\/\/www.google.com\/recaptcha\/api.js\n<\/code><\/pre>\n\n<p>Before a protected form is submitted, the browser asks Google reCAPTCHA to generate a token for the form action. During submission, Elzo Forms sends the token, the configured secret key, and the visitor IP address to Google's verification endpoint:<\/p>\n\n<pre><code>https:\/\/www.google.com\/recaptcha\/api\/siteverify\n<\/code><\/pre>\n\n<p>Google may receive information required for reCAPTCHA risk analysis and verification, such as the site key, reCAPTCHA token, action name, visitor IP address, browser\/client information, and interaction signals. Elzo Forms uses the returned verification result, action, and score to decide whether the submission should be accepted or rejected as spam.<\/p>\n\n<p>If reCAPTCHA logging is enabled in the module settings, Elzo Forms may store the returned reCAPTCHA score in submission metadata and write verification pass\/fail messages to the site's PHP error log for debugging.<\/p>\n\n<p>Google reCAPTCHA is governed by Google's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms: https:\/\/policies.google.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/policies.google.com\/privacy<\/li>\n<li>reCAPTCHA documentation: https:\/\/developers.google.com\/recaptcha\/docs\/v3<\/li>\n<\/ul>\n\n<h4>Akismet<\/h4>\n\n<p>Elzo Forms includes an optional Akismet module for spam protection. The module is disabled until a site administrator enables it and configures an Akismet API key.<\/p>\n\n<p>Service provider: Automattic Inc.<\/p>\n\n<p>Elzo Forms does not contact Akismet or send submission data to Automattic unless the Akismet module is enabled and configured with an API key. By enabling and configuring the Akismet module, the site administrator chooses to use Akismet as a third-party spam protection service.<\/p>\n\n<p>During submission, Elzo Forms sends contact-form spam check data to Akismet's comment-check endpoint:<\/p>\n\n<pre><code>https:\/\/rest.akismet.com\/1.1\/comment-check\n<\/code><\/pre>\n\n<p>Akismet may receive submitted text content, likely contact identity fields such as name, email address, or website URL when present, visitor IP address, browser user agent, referrer, form page URL, site URL, site language, and site character set. Elzo Forms uses the returned spam\/ham result to decide whether the submission should be accepted or marked as spam.<\/p>\n\n<p>If Akismet logging is enabled in the module settings, Elzo Forms may store the Akismet result and reason in submission metadata and write verification pass\/fail messages to the site's PHP error log for debugging.<\/p>\n\n<p>Site administrators should review Automattic's terms and privacy policy and update their own privacy policy or visitor notices as needed before enabling Akismet.<\/p>\n\n<p>Akismet is governed by Automattic's terms and privacy policy:<\/p>\n\n<ul>\n<li>Terms: https:\/\/automattic.com\/terms\/<\/li>\n<li>Privacy Policy: https:\/\/automattic.com\/privacy\/<\/li>\n<li>Akismet documentation: https:\/\/akismet.com\/developers\/detailed-docs\/comment-check\/<\/li>\n<\/ul>\n\n<h3>Support<\/h3>\n\n<p>For support, use the WordPress.org support forum for this plugin or visit https:\/\/elzoforms.com.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install Elzo Forms from the WordPress.org plugin directory, or upload the <code>elzo-forms<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin through the Plugins screen in WordPress.<\/li>\n<li>Go to Forms &gt; Add New in the WordPress admin.<\/li>\n<li>Add fields, configure form settings, and publish the form.<\/li>\n<li>Copy the shortcode, for example <code>[elzo_form id=\"123\"]<\/code>, into any post, page, or widget area that supports shortcodes.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20do%20i%20display%20a%20form%20on%20my%20site%3F\"><h3>How do I display a form on my site?<\/h3><\/dt>\n<dd><p>Add the form shortcode to a post, page, or shortcode-enabled widget area:<\/p>\n\n<pre><code>[elzo_form id=\"123\"]\n<\/code><\/pre>\n\n<p>You can also pass layout options:<\/p>\n\n<pre><code>[elzo_form id=\"123\" max_width=\"600px\" form_align=\"center\" text_align=\"left\"]\n<\/code><\/pre><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20block%20editor%3F\"><h3>Does it work with the block editor?<\/h3><\/dt>\n<dd><p>Yes. Elzo Forms does not register its own block in this release, so add the form with the core Shortcode block, or paste <code>[elzo_form id=\"123\"]<\/code> into any block that renders shortcodes. The same shortcode works in the classic editor, in widget areas, and in theme templates.<\/p><\/dd>\n<dt id=\"where%20are%20submissions%20stored%3F\"><h3>Where are submissions stored?<\/h3><\/dt>\n<dd><p>Submissions are stored on your site as Elzo Forms submission records and can be opened from Forms &gt; Submissions in the WordPress admin.<\/p><\/dd>\n<dt id=\"can%20i%20receive%20email%20notifications%3F\"><h3>Can I receive email notifications?<\/h3><\/dt>\n<dd><p>Yes. Enable email notifications in the form settings and configure the recipient address, subject, and message text.<\/p><\/dd>\n<dt id=\"can%20visitors%20upload%20files%3F\"><h3>Can visitors upload files?<\/h3><\/dt>\n<dd><p>Yes. The file field supports upload size limits and a list of allowed file types, and it splits large uploads into chunks. Executable file types such as <code>.php<\/code> and <code>.phtml<\/code> are always rejected.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20include%20conditional%20logic%3F\"><h3>Does the plugin include conditional logic?<\/h3><\/dt>\n<dd><p>Yes. Field visibility can depend on the values of other fields, on whether the visitor is logged in, and on the page the form is displayed on.<\/p><\/dd>\n<dt id=\"is%20google%20recaptcha%20required%3F\"><h3>Is Google reCAPTCHA required?<\/h3><\/dt>\n<dd><p>No. Google reCAPTCHA v3 is optional. Elzo Forms does not load the Google reCAPTCHA API or verify submissions with Google unless the reCAPTCHA module is enabled and configured with API keys.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20data%20to%20third-party%20services%3F\"><h3>Does the plugin send data to third-party services?<\/h3><\/dt>\n<dd><p>No, not by default. Submissions are processed on your WordPress site. The optional anti-spam modules connect to their third-party services only after you enable and configure them. See the Third-party Services section for details.<\/p><\/dd>\n<dt id=\"where%20does%20elzo%20forms%20store%20files%3F\"><h3>Where does Elzo Forms store files?<\/h3><\/dt>\n<dd><p>All generated files are stored below the site-specific directory returned by <code>wp_upload_dir()<\/code>. Files uploaded through a form go to <code>elzo-forms\/user-uploads<\/code>, and generated CSS goes to <code>elzo-forms\/assets<\/code>.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20the%20plugin%3F\"><h3>What happens when I delete the plugin?<\/h3><\/dt>\n<dd><p>Your forms, submissions, uploaded files, and settings are kept. Deleting Elzo Forms does not remove them, so you can reinstall the plugin without losing data. Remove the forms and submissions yourself first if you want the data gone.<\/p><\/dd>\n<dt id=\"can%20developers%20customize%20the%20output%3F\"><h3>Can developers customize the output?<\/h3><\/dt>\n<dd><p>Yes. Themes can override plugin templates from a theme <code>elzo-forms<\/code> directory, and WordPress hooks and filters cover custom field types, validation, and submission handling. A filter can also register read-only JSON form sources: Elzo Forms never creates or modifies those JSON files, it only reads forms from the paths a developer configures.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release for WordPress.org.<\/li>\n<li>Added the form builder, core field types, multi-step forms, AJAX and standard submissions, submissions storage, email notifications, redirects, file uploads, conditional field visibility, spam controls, optional Google reCAPTCHA v3 and Akismet protection, template overrides, and read-only JSON form sources.<\/li>\n<\/ul>","raw_excerpt":"Build contact and custom forms with a visual builder: multi-step, file uploads, conditional logic, email alerts, and spam protection.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/338921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=338921"}],"author":[{"embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/elzoforms"}],"wp:attachment":[{"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=338921"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=338921"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=338921"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=338921"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=338921"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ko.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=338921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}