Filled In Plugin
Filled In is a generic form processing plugin that will validate and store data submitted through forms. You can use it for any kind of data input, from simple contact forms on a blog to full-blown questionnaires on a business site.
The basic features of Filled In are:
- Customizable data filters and data processors
- Central data storage, with exports to CSV and XML
- Email reporting, with attachments and inline images
- AJAX support (forms always work in browsers without JavaScript)
- Built-in CAPTCHA support
- Built-in poMMo mailing list support
- Built-in file upload support
Read the history for a complete list of features.
Filled In is available in the following languages:
- English
- Italiano, thanks to Simone Righini
- French, thanks to Zesty
Installation
Installation is like any WordPress plugin:
- Download filled-in.zip
- Unzip
- Upload the
filled-indirectory to/wp-content/pluginson your server - Activate the plugin
Note that if you are upgrading from 1.5 you will need to reconfigure your forms. As much information as possible is retained, but the configuration details of individual filters and processors are not. You are advised to backup your data before upgrading, just in case something bad happens.
You can find full details of installing a plugin on the plugin installation page.
Using Filled In - The Basics
Filled In takes an existing XHTML form and routes all data submission through it's own routines, providing you with a consistent interface for managing form validation, data processing, and data storage. In order to route data you give the form an ID that matches a receiving Filled In form name (as created in the Filled In interface).
Create a Filled In form recipient, giving it a unique name.
Create a form (or modify an existing form) and give the form element an ID attribute that matches the Filled In form recipient name.
Look forward to a fully validated form!
Note that all messages and styles are fully configurable.
If you are unfamiliar with HTML and don't understand how this all fits together then don't worry, there are plenty of pictures and even a few movies that will hopefully explain everything. You can use any application you want to create the forms themselves (for example, Dreamweaver), and the only required action is that the form ID must match a Filled In form.
If you were paying attention to the above images you might have noticed that no action or method attribute was needed on the form. As long as the ID can be matched, Filled In will insert the required form attributes, making sure the form is fully functional.
Taking It Further with Extensions
Filled In provides a lot more than just being able to change form attributes. When a form is submitted, Filled In passes the data through several customisable layers. These layers perform all kinds of tasks from validating the data, to sending out email reports.
Each layer can have any number of extensions. Filled In comes with a selection of default extensions, and you can download or develop third-party extensions to perform any additional task yourself.
The default extensions are:
- Pre Processors
- Exclude/include fields - remove specified fields
- Must be logged in/out - the user must/must not be logged into WordPress
- Filters
- CAPTCHA - add a CAPTCHA image to a field and ensure the field contents match the image
- Checkbox/Radio - ensures a field is a checkbox or radio button
- File upload - limit upload size and file type
- Is Email - ensure a field contains an email address
- Is Equal/Not Equal To - A logical equality comparison
- Is Greater/Lesser - A logical comparison
- Is Numeric - Ensure the field is a number
- Is Required - Ensure a value is given
- String Length - Ensure a certain number of characters are given
- Word Count - Ensure a certain number of words are given
- Post Processors
- Send as email - send the data in an email with full templating, attachments, and inline images (courtesy of the super Swiftmailer)
- Send to poMMo mailing list
- Save to CSV - suitable for use with Excel
- Save to XML
- Save upload - move uploads into a directory of your choice
- Login to WordPress - take submitted data and use it to login to WordPress
- Register in WordPress - take submitted data and use it to register a new WordPress user
- Result Processors
- Display a message - simple give feedback to the user
- Redirect to a post or URL
- Redisplay input form - pre-filled with original data or empty
If a failure is detected on any layer then the progress of data is stopped, and a message displayed back to the user. Regardless of what happens, all data is stored, allowing you to not only review correct data, but to check what problems people have with a particular form.
The rest of these instructions will be based upon the concept of creating a contact form. Naturally you can adapt the details to any kind of form you want.
Further documentation
You can learn more about using Filled In by reading the documentation or the SDK. Details on certain extensions can be found on the extensions page.
Support
Please direct all support questions to the Filled In support forum. Any support questions left on this page may not be answered.
Bugs & New Features
| Date | Current outstanding bugs | Status |
|---|---|---|
| 09 Mar 2008 | Creating CAPTCHA filter not working | |
| 06 Sep 2008 | Downloading attachments | |
| 14 Nov 2008 | Filled-in and MS Windows Server Installation |
A full list of all bugs can be found in the Filled In issue tracker.
| Date | Current requested features |
|---|---|
| 10 Nov 2008 | WPMU support |
A full list of all requested features can be found in the Filled In feature tracker.






Comments (page 5 of 13)
Jun 29, 2007 1:18 am
Thanks for sharing this great plugin!
Any chance a future version will include the ability to build the individual forms? The folks I work with aren't very comfortable even cutting and pasting basic HTML code.
Here's an example of what I'm thinking:
Right now, when you edit a form, you are presented with the options to set the extension options (pre-processors, filters, post-processors, result processor).
How about instead adding fields and setting options on each individual field. Here's a sketch of how the editing screen might look:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
FORM EDIT
- name
- quick view
- special options
FIELDS
- name of field
- field type (text line, text box, email, upload, etc.)
- field values ("First name", "Add me to your mailing list", etc.)
- filters to run on this field (email, is greater, is required, etc.)
POST PROCESSORS
RESULT PROCESSOR
CUSTOM OPTIONS
- submit to top of page
- custom submit code
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Of course, you'd need to use a tag system like [form="contact"] to place your form on a page.
Thanks for taking these ideas into consideration!
Jun 29, 2007 12:45 am
I am using Filled-in 1.6.7 with Wordpress 2.1.3. On the Manage.. Filled In .. Forms page, I get the following error:
WordPress database error: [Unknown column 'type' in 'where clause']
SELECT * FROM wp_filled_in_forms WHERE type='form' ORDER BY name ASC LIMIT 0,25
Anybody know how to fix this?
Jun 28, 2007 12:20 pm
Hi there! The plugin is great. However, I can't add any extensions. Each time I click on the 'add' button, nothing happens except that I'm directed to the top of the page that I am on. I have WordPress 2.2.1 installed, the Filled In plugin is the only one enabled so far, and the form is processed without problems. Only the extensions that make this a problem...Any idea? Isn't the plugin WP 2.2.1 ready?Thanks!
Jun 11, 2007 6:16 pm
I have posted my extension (Post-Processor) "Send as Email (If...)" here: http://n0tablog.wordpress.com/my-wordpress-plug-ins/plug-in-for-a-plug-in-send-as-email-if-for-filled-in-for-wordpress/
Enjoy!
Jun 11, 2007 1:50 am
Hi Andrabr,
The 'to' field should already be configurable. For example, if you have a field 'email' in your form then entering the 'to' as '$email$' will send the email to the value entered in the form.
One of the features I have planned for a future version is conditional logic for all filters and processors. This would be very similar to your email extension, but applied to everything else and allowing you to create logical requirements before a filter/processor is executed.
I have no problems with you putting it on your blog.
Jun 6, 2007 4:11 am
John,
I have sinned. Horribly. Mea culpa!
I have derived from your code, and created a new extension - an "email if" post-processor. It is a (slightly) creative merge of "email" and "if_equal" extensions.
The idea is to make it possible to route emails to different destinations depending on field values: you just specify several email _if post-processors with different destinations (and templates) and different conditions [on the downside, even if a submission "falls through the cracks" because of this, it is still considered successful]
So, now I need to get it into your hands for approval and posting - I would not just put it up on my blog, since 96% of the code is yours anyway (although I bet that at least 50% of sweat and anguish are mine
Drop me an email, let me know how to proceed.
Thx!
Jun 6, 2007 12:21 am
John,
sorry it took me a while to answer your question. The conflict in your admin.php is with "Themed Login and Register" plug-in: http://www.jameskelly.org/wordpress-plugins/custom-login-and-registration-forms-plugin/
One could argue that you provide all the functionality necessary to replace it with Filled-in... yet who needs one more project?
[ I just used Filled-in to replace my old contact form plug-in and with all the formatting and fiddling it took a couple of hours.]
I notice that the email template still mentions "To" filed as being configurable by template while in fact it is not...
It would be extremely useful to be able to send "conditional" emails, as in "to different addresses based on field values". This could be done in the email post-processor, or in the template processor, or even as a "Filter" branch... - just think about it! I will give it a try tonight, but if my meager PHP powers fail me... you will know it by the follow-up silence ;-(
Oh, I just upgraded to 1.6.7. Very nicely polished!
May 22, 2007 6:24 pm
Sweet thanks for the update and the notification that it was available.
The form with multiple uploads work!
Kudos to you!
Tim
May 4, 2007 6:50 pm
Is it not uploading multiple files?
For details
http://www.pimpyourtalent.com/image/
May 3, 2007 7:01 pm
oops, the link would help too, huh?!
http://www.pimpyourtalent.com/upload
Leave a comment