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:
- Input screen – Users enter their information
- Confirmation screen – Users review their input before submitting
- Completion screen – Thank you message after successful submission
The plugin also supports a simpler one-step submission process when confirmation is not needed.
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
- Security Measures: Protection against common vulnerabilities including CSRF attacks and header injection
Usage Guide
- Design and create the HTML for input screen, confirmation screen, and completion screen
- Register each screen as a WordPress page
- Create a new form from «Forms» in the WordPress admin panel
- 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)
- Use the «Parse HTML» button to automatically extract form fields from your input screen HTML
- Add the appropriate shortcodes to your pages
- 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
<input type="text">
<input type="tel">
<input type="email">
<input type="radio">
<input type="checkbox">
<textarea>
<select>
<select multiple>
Form Screen Placeholders
Input Screen:
* Use [lwsf_value_fieldname]
to display previously entered values
* Use [lwsf_error_fieldname]
to display validation error messages
* Use [lwsf_send]
for the submit button
Confirmation Screen:
* Use [lwsf_confirm_fieldname]
to display submitted values
* Use [lwsf_back]
for the back button
* Use [lwsf_send]
for the submit button
Completion Screen:
* Use [lwsf_field_fieldname]
to display submitted values
Email Settings
Available placeholders for email templates:
* [lwsf_field_fieldname]
– Display submitted form data
* [lwsf_site_admin_email]
– Display site admin email
* [lwsf_site_name]
– Display site name
* [lwsf_site_home_url]
– Display site URL
Additional Information
-
For items that allow multiple selections (
<input type="checkbox">
,<select multiple>
), you need to add [] to the name attribute.
Example:- For checkboxes:
<input type="checkbox" name="services[]" value="ServiceA"> Service A <input type="checkbox" name="services[]" value="ServiceB"> Service B
- For select multiple:
<select id="products" name="products[]" multiple size="4">
<option value="ProductA">Product A</option>
<option value="ProductB">Product B</option>
</select>
- For checkboxes:
-
Works in environments where JavaScript is disabled, such as screen readers
- The outputted source code uses entity references for security measures and stable operation
- Includes Japanese language files (UTF-8 only)
- Avoids using reserved WordPress query variable names for form fields to prevent conflicts
Data Storage and Security
- Form submissions are temporarily stored in the WordPress database (prefix_lwsf_form_data table)
- Data is automatically cleaned up after 1 hour
- All user inputs are sanitized before processing
- CSRF protection is implemented on all form submissions
- Email headers are validated to prevent header injection
Why This Plugin Was Created
This plugin was created because MW WP Form, which had been used for client work for many years, ended development. There was a need for a form plugin with confirmation screens that operated cleanly. The plugin was created primarily for web development work, and we thought many web development companies might have similar needs.
Future Implementation Plans
- The ability to change validation error messages
- PHP-based validation hooks that operate before and after form submission
- Additional validation types (URL, numeric values, custom regex patterns)
- Hooks to trigger at important timings such as just before and just after email sending.
- File upload handling
- reCAPTCHA
Privacy Policy
This plugin stores form submission data in the WordPress database (prefix_lwsf_form_data table) for the purpose of displaying confirmation and completion screens. Data is automatically deleted after 1 hour.
When enabled, user email addresses may be used to send confirmation emails to form submitters. The plugin does not share any collected data with external services.
Screenshots
Example of an Edit Form screen. Example of an Edit Form screen in Japanese. Example of embedding the form input screen shortcode in a static page. Example of the form input screen on the front end (CSS not applied). Example of embedding the input error screen shortcode in a static page. Example of the input error screen on the front end (CSS not applied). Example of embedding the confirmation screen shortcode in a static page. Example of the form input screen on the front end (with basic CSS applied). Example of embedding the submission completion screen shortcode in a static page. Example of the submission completion screen on the front end (CSS not applied).
Installation
- Upload the
lw-simple-forms
folder to the/wp-content/plugins/
directory - Activate the plugin through the ‘Plugins’ menu in WordPress
- Create a new form from the ‘Forms’ menu item
- Configure the form settings including HTML templates and email notifications
- Create pages for your form screens (input, confirmation, completion)
- Add the appropriate shortcodes to your pages:
[lwsf_input id="123"]
– For the input screen[lwsf_confirm id="123"]
– For the confirmation screen[lwsf_complete id="123"]
– For the completion screen[lwsf_error id="123"]
– For the error screen (optional)
FAQ
-
How do I create a form?
-
Navigate to LW Simple Forms
Add New Form in your WordPress admin, configure the form settings, and save. You’ll then need to add the appropriate shortcodes to your pages. -
How do I set required fields?
-
After creating your form HTML, use the «Parse HTML» button to detect form fields automatically. Then you can mark fields as required in the «Validation Settings» section.
-
Can I skip the confirmation screen?
-
Yes. Simply leave the «Confirmation Screen URL» field empty, and the form will skip straight to completion after submission.
-
How long is submission data kept in the system?
-
Data is temporarily stored in the database for one hour. After this period, the data is automatically deleted.
-
Will the form work if a user has JavaScript disabled?
-
Yes. The plugin is designed to work both with and without JavaScript. All validations and form processing have server-side fallbacks.
-
How do I show different error messages for different validation types?
-
Currently, the plugin uses standard error messages. Future versions may support customizable validation messages.
-
Can I use special characters in my forms?
-
Yes. The plugin properly handles special characters and different encodings, but it’s recommended to use UTF-8 encoding.
-
How do I send confirmation emails to users?
-
Enter a field name (usually an email field) in the «Recipient Email Address Field» setting under «User Auto-send Email Settings».
e.g. If the name attribute of the email field is set to «your-email», you should write it as [lwsf_field_your-email].
Reviews
There are no reviews for this plugin.
Contributors & Developers
“LW Simple Forms” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “LW Simple Forms” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release