Filled In Plugin


Download: Filled In
Version: 1.7.7
Supports: WordPress 2.9-3.2.1
Other: This plugin is no longer actively maintained

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:


Installation is like any WordPress plugin:

  • Download Filled In
  • Unzip
  • Upload the filled-in directory to /wp-content/plugins on 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 (from a post or page) 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.

Edit Form Details

Create a form (or modify an existing form) and give the form element an ID attribute that matches the Filled In form recipient name.

Edit Page Xhtml

Look forward to a fully validated form!

Form Errors

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 & Bugs

This plugin is no longer actively maintained

174 thoughts on “Filled In Plugin”

  1. This is REALLY GREAT plugin, i will test it soon but i love it just by its description. Just i want to allow filling one form by some members and i need to add member id and also checking if logged. Does it support it?

  2. Wow! Have been looking for something like this for ages. it looks really impressive. I too can’t wait to try it out. Thanks for your investment in developing and releasing this plugin.

  3. I have been fugthing with this pluning all day. I have been using the sample code provided, and nothing I do seems to make this plugin work. I can setup everything in the admin interface no problem but it never actualy processes the form. Any ideas on where to start troubleshooting?

  4. Edward, i was having sme problems with this plugin too. WordPress sometimes adds extra markup when you publish a page such as p and br tags.

    this plugin will disable the wordpress markup adding feature for the purposes of adding the form to a page. Also make sure that the rich text editor option is turned off in your user profile.

    also, when you add the form to a page, you need to do proper comment tage for it to work (with double dashes, not single as in the example)

    like this…

    hope this helps

  5. Hi Mate,

    I am having the same problem as Edward above, the form doesn’t actually post so no linking with fill in is my guess. No experience with PHP etc. so have no idea what to troubleshoot. By the way I love your achive plugin.



  6. Thanks for the great plugin… But it seems to lack support for umlaut characters (üåäö). In results they are show up like this: öäå. Is the problem in Filled In plugin or am I just doing something wrong?

    My site is using UTF-8.

  7. I am having the same problem where the submit button just clears the form and nothing happens. I have activated the Filled In plug-in. Then, I created an new form and saved. Next I put the comments that are mentioned above in my website and created the page. Tested it out and
    nothing happened except it cleared the text boxes when I clicked “Send It”.

    I am pretty new to Word Press. I am not sure if when Word Press adds extra to the code that it would mess it up.

    Any ideas?


  8. John

    Kung Hei Fat Choy!

    I also having similar ‘nothing happens when you press the submit button’ issues.

    Would you kindly let people know if you are planning to continue development and support on this plugin?

    Thank you,

  9. There’s a major new update just released which should deal with all these problems and add a stack of new functionality – development and support is definitely continuing!

  10. Wah! Lei Hou Kan-lick!

    What a nice job. I have Filled-In working nicely in my 2.1 sand-box. It is a very powerful plug-in. Once people begin to understand what you have put together, you will get a lot of traffic. I hope you soon start a BB for your plug-ins so that your users more easily help with support issues.

    Thank you!

  11. Great job on this plugin… I have a question though. I am struggling with adding the captcha. How is this done?

  12. Just deleted 1.6 files and uploaded 1.6.1. Most everything OK but I this when I click on reports tab:

    Fatal error: Cannot pass parameter 1 by reference in /home/mydir/public_html/wp/wp-content/plugins/filled-in/controller/admin.php on line 275

  13. OK now I have 1.6.1 FTPed to the web server and have Activated it in the Plug-In screen.

    Simple question – Where is the Filled In administration interface? I don’t see it under Manage or Plug-Ins or anywhere. I am using Word Press 2.0.2

    Again, I am pretty new to Word Press.


  14. The interface is in the Manage section. Did you upload the whole filled-in directory to the plugins directory? If you did and have activated the plugin then it should appear in the menu

  15. 1.6.1 deactivated and deleted. 1.63 uploadeded and activated. Report tab gives following error:

    Fatal error: Call to a member function on a non-object in /home/mydir/public_html/wp/wp-content/plugins/filled-in/models/form.php on line 50

  16. I have the same problem as Theo in 1.6.3

    Fatal error: Call to a member function to_limits() on a non-object in C:\www\xampp\htdocs\wp_genesiswebdesign\wp-content\plugins\filled-in\models\form.php on line 50

    Thank you. This plugin is remarkable.

  17. Sorry guys, I uploaded 1.6.1. Re-download 1.6.3. I’ll delete this particular thread soon so as not to confuse other people!

  18. That fixed it. On to testing and learning.

    Thank you for the quick reply and excellent work. If all goes well you should be hearing from me soon.

    Thank again for the excellent plugin.

  19. I must be missing it. I have created a save to csv report. It runs ok. Where is the csv file. I just runs, report x reports processed with no errors… ???


  20. I’ve deactivated and deleted the old 1.6.3 and uploaded and actiovated the current 1.6.3. The Report tab opens and runs as it should. Thanks again for a remarkable plugin.

  21. I can’t get 1.63 to do anything

    Its not showing up under the manage window but its listed as active in the plug in window

    I deactivated all the other plugins (except hello dolly) and went back to the classic theme. Do I have to change the permissions on a file?

  22. Sorry for the double post, but would you reccomend an approach for listing the visitors referrer as a hidden field of the form?

  23. Ethan & Phil: If the plugin is active the only requirement to see the menu is that you can edit posts. No special file permissions are required. Make sure the plugin lives inside the ‘/wp-content/plugins/filled-in/’ directory.

    Ethan: Currently Filled In cannot insert data into the form before submission. You could try storing the referrer as a cookie and letting Filled In grab that?

  24. Load 1.6.4 go to activate plug in

    Will not activate

    Fatal error: Call to undefined function: wp_get_current_user() in /usr/www/users/bridgetf/philm/blog/wp-includes/capabilities.php on line 446

    Any ideas?

  25. 1.6.4 works like a charm on my WordPress 2.0
    Unbelievably useful plug-in.

    Some day I will use it to get rid of my current “contact us” plugin.

    I would suggest renaming “Reports” to “Batch Processing”, since that is what it actually is…

  26. It would appear that WordCount filter mis-behaves a bit: When Iask for Smallest=1, it only accepts inoput of 2 or more. Probably a simple typo in the code: strict “greater” instead of “not less”…

    ALSO: I have not been able to figure out the impact of “items required” in the “Is Required” Filter.

    Oh, and it would be nice to include a link to some “form generator” for the HTML-impaired 🙂

    I am just neat-picking – this plugin is too good to be true. I am tempted to write extensions!

  27. Just doing my part to make this amazing plugin better:

    I just spent my Saturday having fun with it and compiled a list of the very few rough spots:

    1) link to the page 2 of failed results /wordpress/wp-admin/&curpage=2 does not seem to work.

    2) would be nice to have an option to delete all failed results in one (or two?) clicks

    3) $browser$ is not recognised in email templates

    4) Would be nice to have $form_id$ or something like that. It seems to be a hard-coded feature of the default template, making it hard to create a good custom default template.

    5) In Options “Attachment Directory” and “Saved upload directory” need a bit more explanation: I have nothing specified and things are working fine… so why should I put anything there?

    6) This probably calls for a new extension… but it would be nice to have CSV and XML reports identify files uploaded and where and under which names they are stored. I wish I had the expertese to write this one!

    NOTE: attaching the uploaded files to an email automatically is a VERY nice and thoughtful touch! Well done!

    7) When looking at “Successful Results for..”, “Results per page” drop-down is not populated, and therefore does not do anything at all.

    8) When a report is generated, it would be nice to get a link to download it right away. I would probably manage this one, but the license for this plug-in is far from GPL… I do not want to step on John’s toes.

    9) Post Processor “Add to WordPress Profile” could really use an example in the documentation.

    10) Reports could use a few more ways to select the records – I have no doubt it’s coming 😉

    In conclusion: I am still amazed at the quality of this plug-in and the possibilities it opens. Best thing since Owen’s “Roles” plugin!

  28. uploaded, activated but not menu in MANAGE menu:

    Posts – Pages – Categories – Comments – Awaiting Moderation (0) – Files – Akismet Spam (0) – Subscriptions – Backup

    What should I check?

  29. Ok, this one is a design issue:

    function Filled_In_Admin in admin.php wants to include (ABSPATH.’wp-includes/pluggable-functions.php’);

    Unfortunately, it means that any other plugin that wants to override a pluggable function fails (at least when called from the admin UI).

    commenting the “include” out breaks everything, since “current_user_can” seems to depend on this.

    My understanding of PHP classes is less than zero, so I cannot offer a suggestion. I have commented out “if current_user_can” for now, even though I am probably creating a security loophole 🙁

    Oh, and changing plugin priorities does NOT help.

  30. andrabr, thanks for all the feedback. I’ve included some of your comments into the latest version. What plugin are you using that overrides a pluggable function?

    baldo: if you uploaded filled-in as a directory and activated it then it will appear in the management menu. If it doesnt then it means you didn’t upload it as a directory, or another plugin is doing something it shouldn’t.

  31. Hello,

    This plugin is great! I’ve been successful at a posting a form email with 1 attachment and would like to attach multiple files.
    I’ve set up unique names under each form input and I believe its setup the same with unique names in ‘Filters’ ‘PRe & Post Processors’ & ‘Result’ but what I’m not sure what else I can do.

    Thanks for this plugin and your help.

  32. Hi Tim,

    Can you tell me which part is not working? Is there an error message? Is it not uploading multiple files? Is it not attaching multiple uploads to emails?

  33. 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:

    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!

  34. 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.


  35. 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.

  36. 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!

  37. 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?

  38. 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:

    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
    – name
    – quick view
    – special options

    – 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.)



    – 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!

  39. Hello,

    Great plugin!

    I have a question, maybe is silly but i have to try 🙂

    Is it possible to use Filled in for Comments?


  40. Croco: Yes, Filled In works with WordPress 2.2.1 (it’s used here). Do you have JavaScript enabled? Are there any JavaScript errors?

    Brett: Did you upgrade from a previous version? It looks like your database is missing a column, and the only reason I can think for this is that you upgraded from a much older version and the upgrade procedure didn’t add the column.

    Animator: Currently, no. But there is no reason why an extension couldn’t be written to add data to comments. I’ll put this on the list for the next version

  41. I do apologize someone already has answered this. I am a webdesigner, but fairly new to the forms. I have
    the plugin and installed, but do not know how to configure it to be on the website.

    This is what I’m trying to achieve:
    -I would like to have a form were visitors come and, in order to upload a file, they have to register first and then is given access to the upload button.
    -Or simply have the users come to the site. And be able to register and then are allowed to upload files.

    Either would be great. I am trying to allow users the ability to have a login, but in order to use the upload file form they would have to be a logged in member.

    Hopefully I’m making sense. If you can help me or point me in the right direction I would be obliged.
    Thanks Again Guys,

    BTW-John Godley you are a God for creating such a SWEET plugin.

  42. Deuce,

    There are a couple of ways of tackling this. First you could create an upload page that is only accessible to logged in users (for example, making it ‘private’). On this page you would then create an upload form.

    Alternatively you could use something like Sniplets and create a sniplet that only displays a form if a user is logged in. You can display an alternative form if the user is not logged in.

    On the Filled In side of things you should make sure to restrict the form to logged in users.

  43. Maybe I don’t know wordpress like I think I do. I actually tried to make it private and it just says login with one password field for the password I set for it. And when I try to not put a password it lets you see the site.

    Do I need a permissions plugin or something. I guess I will try to use the Sniplets, but I definitely will be lost a bit after not being able to figure the login thing out.

    Is there any documentation for making a page prompt users to login to see?

    Thanks in advanced!

  44. I can’t get the Filled In forms to work. I have tried to add the id for the form and it seems to submit, but will not do anything other than that. I must be doing something wrong obviously. I would definitely listen and take any suggestions from anyone reading.

    I know this plugin in works. I’ve seen others using it. I just would like to see it used on my site.

    Thanks in advance

  45. I’ve been using Filled In for several forms and I love it. However, I’m now tackling a form that requires file upload and I can’t get it to work. It keeps returning a "failed to move upload" error. It’s not saving anywhere, though – in the Options-set dir or the move-to dir. I set a path in the Options and I added a move upload post processor. Both dir’s are writeable. I’m not sure what I’m missing.

    FYI, I tried entering the path as relative to the root /wp-content/uploads and also hard coded. Is there something like the WP bloginfo(‘url’) I could try?

  46. Deuce: Did you set the post status to private, or did you create a post password? Setting a password will just prompt the user for the password while a private post should require the user to be logged in.

    Also, did you create any result processors? You need to configure Filled In and tell it what data is valid (filters), what to do with the data (post processor), and what response to display to the user (result processor)

    samwithans: What are you referring to with the videos and pictures?

    Nathan: The paths need to be absolute (/home/username/storage/directory). The only reason for the ‘failed to move’ error should be either the path you specified is invalid, or the permissions are incorrect (+w for group/other). If this doesnt help then send me a screenshot of your form’s configuration and I’ll see if anything stands out.

  47. Hi John,

    Thanks for an amazing plugin – it’s great. I have one place that I would *really* like to use it however, it doesn’t work! I would like to be able to use it on the registration for (wp-login.php) as it would be great to able to have things visually validated as people go along (you know, like the username and email fields checking for duplicates as people type, and the email format being validated).

    I don’t mind adding some code to the wp-login.php file if I have to in order to get this sooner, but it would be absolutely killer if you could enable this in the next version!

    Thanks very much and keep up the hard work.

  48. Hi Luke,

    You can create your own login page and use Filled In there along with a WordPress Login processor. For example, create ‘/login/’, add a simple form with username and password fields, and then setup a Filled In form to take these details and pass them onto the Login processor.

  49. Hi John,

    Thanks for the reply 🙂

    I can see how you can pass the basics (username, email) to the registration processor, but what about custom values to be entered into the wp_usermeta table? It’s possible that I missed it, but I don’t think it was there?

  50. Luke, are you wanting to register new users, or login existing ones? You can’t currently add other details to the user when registering, although it makes sense to do so. I’ll include this in a future version.

  51. Hi John,

    I’d like to be able to have a relatively detailed sign-up form (for audit purposes, it’s a drag, but essential unfortunately), the login form only needs what it already has (email and password).

    So far I’ve hacked something together by hacking a more detailed form into my wp-login.php and processing it with a modified plugin. This adds the extra fields to the wp_user and wp_usermeta table and specifies a field as required. However, this has a few drawbacks in its current state since it is only server-based validation, doesn’t remember field values(!) upon refresh if you have missed a field/it is invalid and it’s a nasty ugly hack instead of a neat extension 😉

    If your plugin had a function that allowed you to extend the standard reg form that would be awesome and extremely slick with all the combined client/server validation 🙂

  52. Planner, you enter a standard HTML form into a page and set the form ID to be the same as a form in Filled In. You then configure your form in Filled In to do whatever you want, such as emailing the contact details to yourself

  53. Great pluging but I am having a few issues. After I submit my form I get the following…

    [[filled_in Membership]]

    Membership is my form name. The data is added to my XML files just fine and the email is sent to the admin okay. But nothing is shown for the thank you but the [[filled_in Membership]]

    Any ideas?


  54. Hi Jon,
    Since I updated Filled in to the latest release (1.6.7)

    I get something like [[filled_in form-id]] instead of the form, if you want to have filled in working on the front page. My code is:

    text_to_form (apply_filters ('the_content', $post->post_content));
    echo $text;

    This was working perfecly with Filled in 1.6.2

    Have any Idea ?

    Thanx !! 🙂

  55. Well it seeams that my code is not correctly displays… Here a simpler one.

    global $filled_in;
    $text = $filled_in->text_to_form (apply_filters ('the_content', $post->post_content));
    echo $text;

  56. I think I ripped during when I submit the post, here it is:

    Since I updated Filled in to the latest release (1.6.7)
    I get something like [[filled_in form-id]] instead of the form.
    This only happen if i want to use filled in on the front page (the gate of my site). My code to display a specific post containing filled-in form is like that

    if (have_posts()) :
    while (have_posts()) : the_post();
    show_edit_link ();
    global $filled_in;
    $text = $filled_in->text_to_form (apply_filters ('the_content', $post->post_content));
    echo $text;

    Before my update to the 1.6.7 this was working perfecly (with Filled in 1.6.2)

    Have any Idea ?

    Thanx !! 🙂

  57. How can I get a form to populate with fields when a form was not filled out correctly? For example, if email is a required field and they do not enter this but all the other fields the form returns telling them please enter a valide email address but all the rest of the fields and empty despite them filling these out already.


  58. More more questions. Can someone explain the use of Add to WordPress Profile? I can only assume that this would add fields to the user’s profile in WordPress. What I don’t understand is what to put in the following fields…

    Data key
    Append key
    Logic field

    Can someone explain. There is nothing in the documentation that I see.


  59. Great plugin!
    Ed, I had in the same problem and to be filled out correctly when on error you need to end your input html fields with a slash /.
    Would be nice that plugin have an option in every form to select if multi or single form is allowed as per user, then if single is checked the form should be pre-filled with last user entered data.
    (Sorry for my english)

  60. Hello John,

    To follow up on Jérémie’s post, I am having the same problem with the Result Processor’s ‘thank you’ message. The problem exists across multiple sites, although the sites do have a common configuration (2.2.3, same long list of plugins).

    We are getting [[filled_in application]] as a thank you message instead of our custom thank you message.

    Here is an image of the error.

    We didn’t have this issue with version 1.6.2 – thank you messages worked fine.

    Do you have any suggestions for resolving this issue?

    For now we are manually creating thank you pages elsewhere on the site and using URL redirect, but it’s a bit clumsy.

  61. i don’t know why this plugin, version 1.6.7, doesn’t work on my wp blog 2.3 …so i using
    kubrick/dfault theme, and wanna use this plugin effect when someone forgot to fill his
    username or email on the comment form. then, in the "Name" of "Form Edit" option, i adding
    "commentform" (its the form element of kubrick/default theme), but it doesn’t work 🙁

    so, can you tell me how to fix it?


  62. A new version has been released which fixes a few problems (specifically the thank-you problem reported by Ed, Jeremie, and Alec), and includes a few new filters.

    Ed, Miki is correct and your form must be XHTML in order for Filled In to detect the fields and fill the data back in.

    Eddi, the plugin is not designed to work with the comments form.

  63. Hmmm. Hey John, any idea why when it’s installed it kills the P formatting all through my site. I checks the CSS and it has nothing that would seemingly conflict….

  64. Hi, John

    Thanks for a great plugin!

    I was wondering if there is a way to make custom error message? It would be great if u could edit the error message for each form the same way u can edit filters error messages. I’m working on a multilingual site at the moment, and i have also different forms for different languages, but i have no way of controlling the error message or do I?

    At the moment my feedback form has select box that u can choose who u want to send mail. Option value is users login name. When processing the form the i use the login name to retrieve the email address. This way i don’t have to embed the email addresses in the code itself (for bots retrieve) and if user updates his/her information the feedback form stays up to date. Is it somehow possible to use the same logic with Filled In forms?

  65. Hi, John and Gerard

    The problem is that Filled-In disables wpautop for every page, when it only should do so in pages that has forms. To fix this I changed John’s wpautop function a little. So replace function wpautop located in file /plugins/filled-in/contoller/front.php with this:

    function wpautop ($text)
    // WordPress makes a mess of any form. Here we remove the form, manually wpautop it, and then put the form back
    if (preg_match_all ($this->regexp, $text, $matches) > 0)
    $text = preg_replace ($this->regexp, '[[form $2]]', $text);
    $text = wpautop ($text);

    foreach ($matches[2] AS $pos => $name)
    $text = preg_replace ('@(?:\s*)?\[\[form '.$name.'\]\](?:\s*)?@', $matches[0][$pos], $text);
    } else { // This line is added so pages without forms work correctly
    $text = wpautop($text);
    return $text;

  66. Hey John, first off let me thank you for some of the most detailed and thought out plug-ins for wordpress I’ve found. Would this plugin be able to submit a form and let someone download a file after successful form completion? I want to use this plugin for lead generation for my bands website.

  67. Hi Ken,

    Not directly, but it can be made to do so. One method would be to use Filled In to register the user on the site. Once registered you could then use another plugin I’ve written (Drain Hole) to restrict access to files to registered users. Would that be suitable?

  68. Hello Ken,

    I am in a similar situation where I want to use Filled In for registration and then Drain Hole for downloads.

    John is quite right that Drain Hole can be made to let only restricted users access the files. And Filled In can be used for registration. The issue with Drain Hole is that it has only a single restriction level. It would be very nice if we could allow further downloads as a user progresses (whether by payment or completing some task).

    But for single level access the combination of Filled In and Drain Hole can’t be beat. Drain Hole is a fairly sophisticated plugin requiring folders above public_html or www so you’ll probably want some programming hands on deck to implement it.

  69. I don’t think programming skills are needed to use Drain Hole and it should be fairly simple to understand if you are familiar with FTP and URLs.

    As it happens Drain Hole does have an undocumented feature whereby you can refine the access level by hooking into the filter ‘drain_hole_access’. This is fired whenever a file is being downloaded, and is passed an object containing all the file details. This leaves it open for another plugin to hook in and decide if the user can download the file (I didn’t want to hard-code the plugin with different variations of permissions).

  70. How would you recommend storing the on/off switch for a given user for a given file?

    In our hypothetical scenario, somebody makes a Paypal payment and is now eligible to download a certain file, as well as free files. There are four other paid files on the server all of which have separate permissions. Four of the files also can be purchased as a bundle.

    Scenario based on initial registration being handled by Filled In and WordPress, i.e. the purchaser is a registered user.

  71. It would have to be handled by some custom code. When a payment is made then something (automated via PayPal’s IPN, or manual toggle) could be stored in the user’s profile (arbitrary data can be attached to a profile). The same custom code would then provide the appropriate filter hook that would check a file against the user’s profile.

  72. Hi John,

    I’m running WP 2.3.1 and when I activate the Filled In plugin, some pages show up blank, e.g. Options > Reading and after Manage > Pages > Edit > Save.

    Any clues?

  73. I am trying to use Filled In to create my own WP login form. I am unsure how to proceed, and wonder if you could give me some direction.

    I have created a form, on its own page, outside of my WordPress installation. It needs to be outside, because I prevent people who are not logged in from seeing the blog at all, they get bumped to a login page. But since the form is outside, Filled In does not know about it, and thus, having no action or method in the form tag doesn’t work.

    Can I use Filled In this way?

  74. Where is Filled-In saving its reports? I’m getting 240 processed. 240 failed. messages when I try to save a CSV file. Are they being saved in a directory relative to filled-in or on the filesystem? Knowing that will help me set file permissions on the enclosing folder better. Thanks!

  75. Hi John,

    Filled In looks like a great platform for enhancing the interactivity of a WordPress-based site. Thanks for developing it. I haven’t had time to install it, but it appears to be done very professionally.

    In the js folder I see there is a file slider.js. I’m thinking this file contains the JavaScript to drive a slider control in a form. I would like to use this type of control. However, to my knowledge this type of control isn’t standard xhtml. What syntax do I use in a form to specify a slider control?

  76. I am wondering the same thing as Adam. Where are the .cvs reports that I have ran? Any help would be appreciated.

  77. How do you actually create a page? Sure, the options are great and all, but how do you add the form to your posts or pages?

Comments are closed.