=== HTML Forms - Simple WordPress Forms Plugin ===
Contributors: linksoftware
Donate link: https://htmlformsplugin.com/
Tags: form, contact form, html form, email form, upload form
Author: HTML Forms
Author URI: https://htmlformsplugin.com/
Requires at least: 4.6
Tested up to: 6.8
Stable tag: 1.5.5
License: GPLv3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Requires PHP: 5.3
A simpler, faster, and smarter WordPress forms plugin.
== Description ==
With [HTML Forms](https://htmlformsplugin.com/), you can easily add multi-purpose forms to your WordPress site.
The idea behind HTML Forms is different than most other form builder plugins: **You manage the form HTML. The plugin manages the PHP and a tiny bit of JavaScript**.
That's right. No "intuitive" drag & drop interface. We believe that dynamic form builders can be great, but they also severely limit your options. Also, they're slow and overly complicated from a technical point of view.
HTML Forms aims to be simpler, faster and smarter. It's the ideal plugin solution for developers looking for a simple way to create a contact form or other HTML form.
You define your form fields in HTML and the plugin takes care of submitting the form, saving the data and running a configurable set of form actions.
> ### 1. Define your form fields
> You can use anything that is valid HTML. Just ensure all `input` elements in your form have a `name` attribute to save the data entered in that field.
> ### 2. Configure your form actions
> By default, form submissions are automatically saved for you. You can configure several other actions to run when a form is submitted, like sending an email notification or subscribing to Mailchimp.
> ### 3. Show the form somewhere on your site
> Show your form by using the `[hf_form]` shortcode in your WordPress posts, pages or widget areas.
## HTML Forms Features
- Full control over the HTML for the form fields. If you want, we'll help you in generating the field HTML though.
- Each form submission is automatically saved in your database and can be viewed in a simple table format.
- Configure an unlimited amount of actions to run when a form is successfully submitted. For example, sending out email notifications.
- Access form field values by referencing the field name, eg `[NAME]` or `[EMAIL]`.
- Hide form or redirect to URL after a successful submission.
- Configurable & translatable form messages.
- Field validation.
- Developer friendly. HTML Forms comes with a myriad of [JavaScript events](https://htmlformsplugin.com/kb/javascript-events/) and WordPress hooks that allow you to modify or extend the plugin's default behavior.
## The Perfect WordPress Form Plugin For Everyone
HTML Forms is for everyone that wants a flexible & high performing form solution.
- Users. Managing your own site? With HTML Forms, you don't need any technical knowledge to setup a contact form.
- Developers. Building a site for your client? You supply the form HTML, HTML Forms takes care of validating and processing the form.
- Theme developers. Shipping a theme? HTML Forms allows for complete blend-in with your theme, and you don't have to write yet another contact form plugin.
With HTML Forms you can create any type of form. A contact form, email form, registration form, price quote form, you name it.
For more information, please visit [htmlformsplugin.com](https://htmlformsplugin.com/).
## HTML Forms Premium
HTML Forms Premium is a paid add-on that extends the functionality of the free plugin. It includes:
- Submission Notifications
- File Uploads
- Webhooks
- Submission Export
- Submission Limits
- Require Users to Log In
- Data and Column Management
- and more...
For additional information, please visit [htmlformsplugin.com/premium](https://htmlformsplugin.com/premium).
### Support
The [HTML Forms knowledge base](https://htmlformsplugin.com/kb/) covers a wide range of frequently asked questions.
Use the [WordPress.org plugin forums](https://wordpress.org/support/plugin/html-forms) for community support where we try to help all of our users.
### Contributing
You can contribute to HTML Forms in various ways. For example:
- Write about the plugin on your blog or share it on social media.
- [Translate the plugin into your language](https://translate.wordpress.org/projects/wp-plugins/html-forms/stable/) using your WordPress.org account.
== Installation ==
1. In your WordPress admin panel, go to *Plugins > New Plugin*, search for **HTML Forms** and click "*Install now*"
1. Alternatively, download the plugin and upload the contents of `html-forms.zip` to your plugins directory, which usually is `/wp-content/plugins/`.
1. Activate the plugin
For more information, please refer to the [HTML Forms Knowledge Base](https://htmlformsplugin.com/kb/#utm_source=wp-plugin-repo&utm_medium=html-forms&utm_campaign=installation-instructions).
== Frequently Asked Questions ==
#### Where can I find help?
Start by going through the [HTML Forms knowledge base](https://htmlformsplugin.com/kb/#utm_source=wp-plugin-repo&utm_medium=html-forms&utm_campaign=plugin-faq) where we cover a wide range of frequently asked questions.
#### How to display a form in posts or pages?
Use the `[hf_form]` shortcode or the included block, in the block editor, to embed your form.
#### How to display a form in widget areas like the sidebar or footer?
Go to **Appearance > Widgets**, add the "Text Widget" to any of your widget areas and use the `[hf_form]` shortcode.
#### How do I show a form in a pop-up?
We recommend the [Boxzilla pop-up plugin](https://wordpress.org/plugins/boxzilla/) for this. You can use the `[hf_form]` shortcode in your pop-up box to render any of your forms.
#### Can I send an email when the form is submitted?
Yes! You can configure this by opening up the "Actions" tab when editing your form and clicking the "Email" button under "Available actions".
### Does the plugin include anti-spam measures?
The plugin comes with built-in spam protection that should stop many automated attacks. When the built-in protection doesn't cut it, we currently recommend using the [hCaptcha plugin](https://wordpress.org/plugins/hcaptcha-for-forms-and-more/). You can learn how to integrate hCaptcha with HTML Forms by reading our [guide](https://htmlformsplugin.com/kb/hcaptcha/).
== Screenshots ==
1. Overview of forms in HTML Forms.
2. Editing form fields.
3. Sending an email when a form is submitted.
4. Viewing saved form submissions.
5. Hide form or redirect to URL after form submission.
6. Configurable form messages.
7. Details of a specific form submission.
== Changelog ==
#### 1.5.5
- Minor PHP syntax cleanup and interface change.
#### 1.5.4
- Minor changes to the form submission process.
- Improved integration with the hCaptcha for WordPress plugin.
#### 1.5.3
- Bug fix for shortcode.
#### 1.5.2
- Bug fix to prevent XSS on Referrer URL data.
- Interface changes.
#### 1.5.1
- Bug fix when getting error code responses when submission data is unavailable.
- Bug fix for _load_textdomain_just_in_time error when plugin text is being translated.
- Interface changes.
#### 1.5.0
- New Variables for HTML Forms Submission Data (Timestamp, User Agent, IP Address, and Referrer URL).
- Interface changes.
#### 1.4.2
- Bug fix to prevent XSS on HTML Forms list table.
#### 1.4.1
- Added hooks for HTML Forms Premium features.
- Added Knowledge Base links throughout.
- Interface changes.
#### 1.4.0
- Added a "Submissions" column to the forms table.
- New "Wrapper Tag" setting to configure what HTML tag wraps fields in the form editor.
- Added "Hide Preview" option to the form editor.
- Improved integration with the hCaptcha for WordPress plugin.
- Interface changes.
#### 1.3.34 - July 7th, 2024
- Made the Submissions tab a direct link.
- Raw submission data is now scrollable.
- Added nonce verification to bulk actions on the HTML Forms list table.
#### 1.3.33 - June 24th, 2024
- Fix for adding additional choices to the Dropdown, Checkboxes, and Radio Buttons fields.
- Fix to prevent XSS on form Messages.
- Fix for the Mailchimp action's check for an email field.
- Interface changes.
#### 1.3.32 - June 17th, 2024
- Better handling for line breaks in field data.
- Fix for the "d/m/Y" date format not being handled correctly.
#### 1.3.31 - May 20, 2024
- Interface changes.
#### 1.3.30 - Mar 7, 2024
- Run form mark-up through KSES filter if user lacks `unfiltered_html` capability.
#### 1.3.29 - Feb 6, 2024
- Fix `get_field_count()` used for anti-spam protection not correctly counting fields when attribute key came directly after a line-break. Thanks [yann1cks](https://github.com/yann1cks)!
- Fix `data-hide-if` attribute not updating required fields correctly. Thanks [yann1cks](https://github.com/yann1cks)!
- Remove unused class input from Gutenberg block. Thanks [yann1cks](https://github.com/yann1cks)!
- Remove use of `tlite` JS dependency.
- Update JS dependencies.
#### 1.3.28 - Sep 19, 2023
- Update browserslist to support the same set of browsers as WordPress core.
- Delay initializing the field builder component until the DOM has fully loaded. Fixes an issue with the file upload button (from HTML Forms Premium) not appearing.
#### 1.3.27 - Jun 30, 2023
- Fix PHP notice for calling `WPDB::prepare` with mixed argument types.
- Update JS dependencies.
#### 1.3.26 - Nov 15, 2022
- Add pagination to submissions overview page if there are more than 500 items to show.
- "Move to trash" action for submissions now properly called "Delete permanently". Thanks to [Rakesh Sabale](https://github.com/ghubrakesh).
#### 1.3.25 - Oct 21, 2022
This release fixes a SQL injection vulnerability where users with the administrator role could execute arbitrary SQL commands.
Thanks to **Nguyen Duy Quoc Khanh** via [WPScan](https://wpscan.com) for the responsible disclosure.
Other changes:
- Use default WordPress collation when creating tables. Props [bengs](https://github.com/bengs).
#### 1.3.24 - Sep 23, 2022
- Compatibility with Swup.js, thanks to [Sam Brown](https://github.com/sam98brown)
- Update JavaScript dependencies.
#### 1.3.23 - Mar 2, 2022
- Add support for swup.js in [conditional fields](https://htmlformsplugin.com/kb/conditional-elements/) logic.
- Safer support for Full-Site Editing by splitting up registering and enqueueing of JS and CSS assets.
#### 1.3.22 - Jun 7, 2021
- Always load minified asset files, regardless of SCRIPT_DEBUG constant.
- Optimize JavaScript event callbacks in form editor.
- Fix required fields logic for when field names have multiple spaces in them.
- Add action parameter to AJAX endpoint for submitting forms.
#### 1.3.21 - May 14, 2021
- Add multisite compatibility for storing form submissions. Thanks to [Ismail Hardoum](https://github.com/elhardoum).
- Fix required fields logic for fields with spaces in their name.
- Fix replacement variables logic for fields with spaces or special characters in their name.
- Add nonce verification to all URL's using `_hf_admin_action`.
#### 1.3.20 - May 7, 2021
- Change type of referer_url column in database to `TEXT`.
- Pass form object to `hf_form_markup` filter hook.
- Refresh form editor after navigating via tabs.
#### 1.3.19 - Feb 16, 2021
- Add filter for file-uploads to use direct links to file instead of WP media attachment.
- Fix field variables not showing correctly in available tags for email action message body.
#### 1.3.18 - Jan 13, 2021
- Updated JS dependencies.
- Change plugin domain to htmlformsplugin.com.
#### 1.3.17 - Dec 21, 2020
- Forms are now sortable by name on overview page.
- Update internal dependencies to their latest versions.
- Add `role="alert"` to form messages.
- Optimize size of public JavaScript file (25% size reduction) by rewriting some dependencies.
- Add filter for tabs in admin area.
#### 1.3.16 - May 6, 2020
- Add filter hook for successful form responses: `hf_form_response`
- Only try to detect WPBruiser hidden input fields whenever that plugin is activated.
- Stop explicitly enabling shortcodes in text widgets as this is now handled by WordPress core (as of version 4.9).
- Explicitly set engine and charset on submissions database table.
#### 1.3.14 - Nov 6, 2019
**Improvements**
- Stop using `supress_filters` argument when retrieving forms, for a possible performance improvement.
- Prevent extra SQL query for options when global settings have not been saved yet.
#### 1.3.13 - Oct 18, 2019
**Fixes**
- Special HTML characters being encoded even in plain text emails.
**Improvements**
- HTML tags are no longer stripped from field values, so forms can now accept HTML. HTML is still escaped upon display to prevent XSS.
#### 1.3.12 - Oct 11, 2019
Compatibility with Mailchimp for WordPress 4.6.
#### 1.3.11 - Sep 17, 2019
**Improvements**
- Write results from Mailchimp action to MC4WP debug log.
#### 1.3.10 - Sep 5, 2019
**Fixes**
- PHP warning introduced in latest update when using array fields.
#### 1.3.9 - Sep 2, 2019
**Fixes**
- Strip out [WPBruiser](https://wordpress.org/plugins/goodbye-captcha/) token field to prevent it from being stored.
**Improvements**
- Add filter hooks to variables inside the email action. Thanks to [Ryan Salerno](https://github.com/ryansalerno).
#### 1.3.8 - May 28, 2019
**Fixes**
- Invalid HTML for generated textarea tag.
**Improvements**
- Improved HTML escaping, preserve double and single quotes.
- Explicitly set charset of HTML emails to UTF-8 by default.
- Escape HTML after limiting string length, not before.
#### 1.3.7 - April 8, 2019
**Additions**
- Add Gutenberg block for adding shortcode to content.
- Add setting in field builder for the `multiple` attribute on `