=== LW Simple Forms ===
Contributors: furao77
Tags: form, contact form, custom form, contact, email
Requires at least: 6.0
Tested up to: 6.9
Stable tag: 1.2.0
Requires PHP: 7.4
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
A flexible form plugin that implements the flow of input → confirmation → completion screen, while also supporting simple one-step submissions.
== Description ==
LW Simple Forms is a versatile WordPress form plugin that allows you to create customizable forms. It supports the Japanese-style workflow of a complete form submission process:
1. Input screen - Users enter their information
2. Confirmation screen - Users review their input before submitting
3. Completion screen - Thank you message after successful submission
The plugin also supports a simpler one-step submission process when confirmation is not needed.
A sample form with all supported field types is automatically created on first activation, so you can get started right away.
**Important: Cache Plugin Compatibility**
If you are using a caching plugin (e.g., WP Super Cache, W3 Total Cache, WP Total Cache, LiteSpeed Cache) or a CDN (e.g., Cloudflare), form submissions may not work correctly because cached pages do not process POST data. Please exclude the form page URLs (input, confirmation, completion, error) from caching.
**CSS Styling**
This plugin does not include any frontend CSS for form display. You are expected to style the forms using your own theme's stylesheet. HTML/CSS samples are available for reference on the plugin's website.
== Development Concept ==
* **HTML-First Approach**: This plugin is designed to faithfully reproduce your designed HTML forms, confirmation screens, and error screens without forcing you to adapt to plugin limitations. The forms conform to your design, not the other way around.
* **Built for Web Professionals**: LW Simple Forms does not provide CSS or HTML templates for the frontend. It's specifically created for web designers and developers who already have designed their form screens and need a way to implement the functionality. (HTML/CSS samples are available for reference.)
* **Minimalist Philosophy**: This plugin intentionally maintains a minimalist approach, focusing on core functionality rather than excessive features. We prioritize site speed and minimal data usage to keep your websites running efficiently.
== Key Features ==
* **Complete Form Workflow**: Create forms with input screen, error screen, confirmation screen, and completion screen
* **Flexible Design**: Customize each screen with your own HTML
* **Form Validation**: Server-side and client-side validation for each input field (required fields, email format, phone number validation)
* **Email Notifications**: Send confirmation emails to both administrators and users
* **Security Features**: CSRF protection, data sanitization, input validation, and secure data handling
* **Multiple Field Types**: Support for text fields, text areas, checkboxes, radio buttons, select menus, and multi-select menus
* **Shortcode Support**: Easy integration into WordPress pages via shortcodes
* **Custom HTML**: Design your forms with complete HTML freedom
* **Multi-Form Support**: Create and manage multiple forms on a single site
* **Database Storage**: Form data is temporarily stored in the database rather than in sessions or cookies, allowing for unlimited submission data
* **JavaScript/No-JavaScript Support**: Forms work properly even in environments where JavaScript is disabled (e.g., screen readers)
* **Field Validation**: Extensive validation system with customizable error messages
* **reCAPTCHA v3 Support**: Optional Google reCAPTCHA v3 integration for spam protection
* **Duplicate Submission Prevention**: PRG (Post-Redirect-Get) pattern prevents duplicate form submissions on page reload
* **Security Measures**: Protection against common vulnerabilities including CSRF attacks and header injection
== Installation ==
1. Upload the `lw-simple-forms` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Create a new form from the 'Forms' menu item
4. Configure the form settings including HTML templates and email notifications
5. Create pages for your form screens (input, confirmation, completion)
6. Add the appropriate shortcodes to your pages:
* `[lwsf_input id="123"]` - For the input screen
* `[lwsf_confirm id="123"]` - For the confirmation screen (optional - leave empty to skip confirmation)
* `[lwsf_complete id="123"]` - For the completion screen (optional - displayed on the input screen URL if omitted)
* `[lwsf_error id="123"]` - For the error screen (optional - errors are displayed on the input screen if omitted)
== Usage Guide ==
1. Design and create the HTML for input screen, confirmation screen, and completion screen
2. Register each screen as a WordPress page
3. Create a new form from "Forms" in the WordPress admin panel
4. Configure each section. You can configure the following:
* HTML for each screen (input, confirmation, completion)
* URL for each screen
* Administrator email settings
* User email settings
* Validation settings (required fields, email format, phone number validation)
5. Use the "Parse HTML" button to automatically extract form fields from your input screen HTML
6. Add the appropriate shortcodes to your pages
7. Test the form operation before going live
Note: This plugin is designed to give you maximum freedom in writing form HTML, so you need to write the HTML for your form pages yourself. The plugin does not provide CSS or images for form display. HTML samples are available for reference.
== Supported Input Fields ==
* ``
* ``
* ``
* ``
* ``
* `