This plugin is the result of a plugin I developed for one of my clients, Power to the People Kauai, a voter education and empowerment organization on the island of Kauai. The purpose of the plugin is to make it possible to build and maintain a large list of supporters, constituents and volunteers. For P2P Kauai (and many other organizations) it is very helpful to have a database of people that the organization can use to organize volunteer efforts, petition drives, send announcements and newsletters and other functions. This plugin is designed to play well with offline sources such as signup sheets and spreadsheet applications.
This database could be of use to any organization that needs to build and maintain lists of constituents, supporters, members, volunteers, etc. for any purpose. It is designed to be easy to use and serve multiple purposes, with several very powerful features to customize it’s functionality to the needs of your organization, club, sports team, or any other large group of people.
Some of the features of the Participants Database Plugin:
- fully configurable database for holding any kind of information about people (or anything, really!)
- customizable forms for collecting and maintaining records
- both front-end and back-end versions of the forms
- shortcode for inserting a configurable sign-up short form into WordPress pages, posts, etc.
- completing the sign-up form can direct visitors to another page for a thank you message or reward
- shortcode for inserting a full-length form for people to fill out and maintain their own records
- shortcode for displaying the list on the site, including the ability to select and order columns to display, sorting and filtering rules to dertermine which records are shown and in what order
- email notification and confirmation with secure individual access link
- email notification when a user edits a record
- searchable, sortable record listings in the WordPress admin
- many form elements to choose from including dropdowns, checkboxes, radio buttons, image upload, etc.
- export CSV files for interacting with other databases, mass email, print records
- import CSV files to add large numbers of records from spreadsheets such as Open Office or Google Docs
- form can be organized into groups of fields, making long forms easier to navigate and fill out
Database
The heart of this plugin is the participants database, which is completely configurable. It comes pre-filled with standard fields such as name, address, phone, etc., but you can define any fields you want, including the type of field, validation, help text and a print title for each field. Fields are also organized into groups so large amounts of information can be better managed, and long forms broken up into logical sections.
Fields can be defined as text-lines, text-areas, single and multiple-select dropdowns, checkboxes, radio buttons or image uploads. Each field has its own validation which can be required, not required, or validated with a regular expression.
Sign Up Form
The plugin provides a shortcode for a sign-up form that presents a customizable subset of the fields for a quick signup. For example, your signup form could ask only for a name and email address, creating an easy point-of-entry for new members, supporters or volunteers. The signup can generate two emails: one to an administrator to notify them of the signup, and also to the person signing up. Their email can contain a link to their full record, which they can return and fill out at their leisure. This full form (which is placed on the website with another shortcode) can include any information you want to collect from your signups.
Signup forms are now produced by a template, making it easy to add extra functionality and match the presentation of the form to your theme.
Frontend Form
This is where people who have signed up can fill in any additional information about themselves you wish to collect. It can be additional demographic info, survey questions, what they would be willing to offer in support. This form is accessible to the signups via an individual link containing an ID number, which is emailed to them when they sign up. They don’t need to register as a user or enter a password, they just need the link.
Backend Form
For your backend users, the ability to edit and enter new records is provided. This backend form can also contain administrative fields that won’t be visible to the front-end (not logged-in) user, so organization staff can keep internal records of volunteer activities, availability, contributions, personal notes, etc.
The backend form is set up for rapid manual entry of multiple records, such as after a signup drive, doorbelling, or public event.
For textarea fields, a rich-text editor will be used if enabled in the settings.
List Display
Display the list on your website with the ‘
| First Name | Last Name | City | Photo |
|---|---|---|---|
| Testing | The New Installation | Øæseåcfiπ | ![]() |
| Neelo | Weelo | Fez | ![]() |
| Leggy | Simpson | Lagos | ![]() |
| Krist | Fling | Atlanta | ![]() |
| Heelister | Grewot | ![]() | |
| Charled | Grey | John's Farm | ![]() |
| Debbie | freem | Lushong | ![]() |
| Breggy | Selly | Halafela | ![]() |
| Allson | Rell | Jalalabad | ![]() |
| Allie | Deen | Fignut | ![]() |
Record Display
Each individual record can be displayed usinf a shortcode and accessed by the ID if the record. A template file formats the output of the shortcode. A plugin setting determines how a link to the individual record may be placed on the list of records.
Import/Export Records
All records can be exported as a CSV-formatted text file that can be read by spreadsheet applications and used for mass email campaigns, hard-copy lists, and other applications. The records exported can be filtered by column values: for instance, only people who have consented to receive a newsletter will be included. Records may also be sorted by any column. Which fields are included in the export/import is determined by the “CSV” column of the field definition.
Records can also be mass-imported with a CSV file, allowing you to use existing lists from spreadsheets, or for offline compilation of records using a spreadsheet such as Open Office or Google Docs. A blank spreadsheet can be exported from the plugin to get people started in entering records offline.
Screenshots:
- Editing an Individual Record
- Importing CSV Files
- Managing Database Fields












659 comments
I’m building a site for a budding intentional community and am using mingle forum – buddy press was just tootoo much. ;-)
I’d like to have a robust and customizable back end db for member info and also restrict access to members for the forum and member info, etc…
I’m wondering if your signup integrates with the wp user – mingle does apparently…
Thanks!
by fry on May 17, 2012 at 5:55 am. #
fry,
The plugin database is completely separate from the WP users, so no cross-privileges. Have you checked into a plugin called Front End Users? It’s one I’ve used to do something like what you’ve described.
by Roland on May 17, 2012 at 6:46 am. #
;-(
But thanks for the suggestion, I’ll try that!
Any words of wisdom on why you’d keep it separate? I guess because this app is more for “outside” info, as opposed to a more “inside” approach?
Does that even make sense? lol
by fry on May 17, 2012 at 8:40 am. #
fry,
The original intention of the plugin was for a non-profit organization who needed a way to coordinate volunteers. They didn’t need to be WP users, it’s more like a membership/contact database.
I’ve gotten several requests for integrating the plugin’s users with WP users, but it’s one of those things that that just gets more complicated the more you look at it. Plugin development is all about incorporating features that have general applications, you don’t really know how any one person is going to use it, so you have to make it flexible. That tends to make things more complex, so I’ve decided not to add this feature to the development queue. It would be far better to design a whole new plugin with that in mind from the beginning.
By the way, I find it interesting that you are working with an intentional community. Different kind of thing, I’m sure, but I lived for several years in the Findhorn community in Northern Scotland and it was a wonderful experience.
by Roland on May 17, 2012 at 9:21 am. #
Hello Xnau, I love this plugin you’ve developed. I’m using it to record some data from customers who purchase a product. I works great. My only concern is I’m having difficulty matching the stylesheets to what my site currently looks like.
I have a support thread going on WordPress asking the same question:
http://wordpress.org/support/topic/plugin-participants-database-css-help?replies=2
Here’s the dilemma:
This page contains the a contact form that is styled appropriately:
http://monkeybreadbooks.com/contact/
This page contains the plugin you’ve developed:
http://monkeybreadbooks.com/about/survey/
I’m attempting to locate the code that controls the sign up form. That’s all I’m really interested in editing. When visiting the plugin editor in WordPress I only have access to 4 CSS files:
participants-db.css
PDb-admin.css
pdb-list.css
PDb-record.css
I’m having great difficulty locating the style for the sign up form, and how I would convert my existing style for this plug-in. If you could help that would be fantastic!
by Daniel on May 16, 2012 at 3:56 pm. #
Daniel,
It’s always best to do this kind of thing in your theme stylesheet by overriding the plugin’s styles. That way, you won’t lose anything when you update the plugin. I left the CSS pretty simple so it would be easy to override.
Also, try using Firefox with the Firebug plugin. Makes editing and interpreting the CSS a lot easier.
by Roland on May 16, 2012 at 9:46 pm. #
Hello, please help, I’m sure this question has a simple answer but I just cannot fathom it!
In the template file, if I want to call just the value of first_name (or any specific firld) what would the code look like?
Your standard template has the loop in it but if I want to call one specific value, how to do it?
Thanks, Tc
by Tom Course on May 14, 2012 at 7:38 pm. #
Tom,
Well, perhaps not a simple answer.
The loop is started with this function:
Participants_Db::single_record_fields( $id, $exclude );What that does is create an object that contains all the fields for the record of $id organized into groups. If you want to pull out one value, you have to give it the ID of the record you want, and assign the result of the function to a value:
$record = Participants_Db::single_record_fields( $id );Then, to get your individual field you have to address it by group (‘Participant Info’) then field name (‘first_name’) then by which property of the field you want (value):
$first_name = $record['Participant Info']->fields['first_name']->value;If you’re familiar with PHP objects and arrays, this will make sense–if not, a little reading on how PHP arrays and objects work will help.
by Roland on May 15, 2012 at 9:45 pm. #
hi roland,
still thinking of integrating your amazing plugin on a client’s site with some that provide access control and mailchimp integration.
anmari the developer of amr users plug in sent me this on integration, but, my php knowledge does not extend to understand it yet. Can you tell me if what she suggests is possible? Here is her reply to me when I asked her about Participants Database Plug in integration.
>>”I’m not familiar with that plugin (Participants Database). (Amazing how many do not use standard wp – which then limits the integration of their plugins.)
As to an ‘easy’ way – that depends on the skill set you have and how their data is stored. I have provided filters
http://wpusersplugin.com/support/documentation/filters/
and pluggable functions
http://wpusersplugin.com/support/documentation/formatting-and-pluggable-functions/
to enable these sorts of things.
IN addition some of the ‘addons’ are working examples which use the filters and actions.
If the data is freely accessible then one can write some php calls to add the data in and make it look like wp user meta data. [some plugins (ok one I know of - apply own adjectives here!) encrpyt the data, so one cannot access it except via their plugin. And if their code does not have an 'api' - ie a function one can call to access the data, then it is pretty well impossible to get at the data.]
So basically, how they have stored their data determines the ease of access. Wp usermeta being the easiest.
Read this post on the forums: http://wordpress.org/support/topic/plugin-amr-users-participans-database-plugin-integration?replies=2#post-2816183
You’re getting this email because you subscribed to ‘[Plugin: amr users] Participans Database Plugin Integration?.”
many thanks for all your work,
eve lurie
by eve lurie on May 14, 2012 at 11:12 am. #
Eve,
What you are trying to do is complicated and I’m not sure you’ll be well served by trying to do this by integrating two plugins. That is usually more work, and less reliable, than just getting the custom work done because plugins need to be generalized for different installations and applications. I get a lot of requests for this sort of thing, and usually the answer is you just have to spend the money and get a programmer to do a custom application, that way you’ll get exactly what you want. I’m sorry if this isn’t helpful, but being on the programming end of things, I see the pros and cons of custom work versus off-the-shelf themes and plugins.
–Roland
by Roland on May 14, 2012 at 11:35 am. #
Thanks Roland for your reply. I appreciate it. Is that something you might do if I were able to get funding for it from my client?
all best,
eve
by eve lurie on May 14, 2012 at 6:29 pm. #
Possibly. If you can provide me with an overview of what you want the website to be able to do, I can provide you with an estimate for time and costs. Respond to my email: webdesign@xnau.com
by Roland on May 14, 2012 at 6:49 pm. #
Hi Roland.
Thanks for a great database program. I have designed my own care of fantastic instructions…but I am now stuck. How do I place it upon the website. It is activated etc…but not visible on the website – ideally on the Recruitment page. Thanks! Rebecca, Perth Australia
by Rebecca on May 13, 2012 at 8:52 pm. #
Rebecca,
I would refer you to: http://wordpress.org/extend/plugins/participants-database/other_notes/
Let me know if you still have questions after looking that over.
by Roland on May 14, 2012 at 9:18 am. #
Hi Roland
If you remember I had an issue with your plugin a while ago, and I couldn’t work out what the problem was.
I’m still not sure, but after the latest wordpress update, it seems to be working fine now, allowing more then one person to sign up and the pages are displaying properly.
Over the next couple of months I’ll set it up, will let you know if I come across anything else.
Many thanks for your help
Sam
by sam on May 12, 2012 at 9:25 pm. #
You’re welcome!
by Roland on May 14, 2012 at 9:19 am. #
Hi Roland,
Thank you for developing such a great plugin. My wishlist item is for the settings area to be enhanced to select formating options for the form out put that overrides the theme format.
In my implementation the table cells in the form are all centred. As the field hint is next to the field input the field input is all over the place. Simply putting a break after the field input would then ensure all form input fields were centred with the hint centred below.
Ideally being able to left justify both would be the ideal outcome.
I hope you understand what I am trying to suggest.
Thank you
Gary Oo
by Gary Oo on May 12, 2012 at 1:14 pm. #
Gary Oo,
Thanks for your suggestion. What I am doing for the next update is creating a template for the output of each shortcode. That should give people all the control they need. Meanwhile, I believe you can achieve what you want with some CSS in your theme stylesheet. I left the CSS pretty simple so it would be easy to override.
–Roland
by Roland on May 13, 2012 at 11:17 am. #
Hello, I’d like to install your plugin on my wordpress site since it seems to be the best for me, but I get this error while I try to activate it thru the plugin page:
Fatal error: Call to undefined function spl_autoload_extensions() in /my-site/wp-content/plugins/participants-database/participants-database.php on line 107
Can you please help me? :)
Thank you very much
by Francesca on May 11, 2012 at 5:31 am. #
Francesca,
It looks like your PHP version is not recent enough to run the plugin. It should be 5.3 or later, but anything over 5.1.2 should do. If you don’t know what this means, contact your web host about your PHP version.
by Roland on May 11, 2012 at 9:25 am. #
I’ve been experimenting with dozens of forms over the past couple months. Yours meets most of my needs. The search functions sometimes don’t seem to work as expected, but I can work around that. However, what I really really really need is to have different forms for different categories of users. For example, we have people applying to be vendors at our event and others registering as volunteers – two completely different sets of information needed from each. What is so fantastic about your plugin is that it allows the user to go back and edit their submitted information. Brilliant! I just wish I could get the same functionality with all our forms. Will the ability to have multiple forms be added anytime soon? If so, approximately when could I expect it to be released?
by Matt Todd on May 10, 2012 at 11:12 pm. #
Matt,
The “multiple forms” update is not going to happen soon because it will require a deep rewrite of the plugin because I wasn’t planning for it.
Now, I don’t know how you are handling your different categories of users, but there is some possibility a javascript solution will work for you. Separate the fields into several groups: one might be common to all users, others only for certain categories of user. When someone is filling out the form, you’d have a place for them to choose what they’re signing up as. This field (a radio button, for instance) would trigger javascript to show those groups of fields that pertain to that kind of user. They would then just fill out the rest of the form. You’d have only one database for all the different kinds of users. Does that make sense?
by Roland on May 11, 2012 at 9:23 am. #
I need to exclude names from appearing with the word “team” in them but am not clear on how to put it into a shortcode.
filter=”name!=%team%”
Is it possible or do I need to go with a custom SQL query?
by Bill on May 10, 2012 at 6:20 am. #
Bill,
No need to add the ‘%’ it will just try to find those characters. != should work— it doesn’t?
by Roland on May 10, 2012 at 9:15 am. #
Does not work. I dumbed the shortcode down to the basics:
[pdb_list fields="player_name" filter="name!=team"]
by Bill on May 10, 2012 at 10:48 am. #
I meant my shortcode is:
[pdb_list fields="player_name" filter="player_name!=team"]
by Bill on May 10, 2012 at 10:49 am. #
Bill,
Yes, the “not” operator doesn’t work with string fragments, I see. I’m going to change how this works to be more flexible, but for now, you can alter the code so this will work for you:
In classes/PDb_List.class.php on line 464 you’ll find:
Change this to:
Now it will work with partial matches.
Also, the operator needs to be one character…so just
[pdb_list fields="player_name" filter="player_name!team"]by Roland on May 10, 2012 at 11:26 am. #
Hello, great plugin, thank you.
Is there any way we can accept file-upload instead of image-upload? We would like participants to upload files as .doc, .pdf, .docx, .rtf, etc
In the profile it should simply have a link to the file URL on the server, so that it’s clickable for download, rather than display an image…
If this could work, then we can definitely use your great plugin.
Thank you,
Paul
by Paul on May 10, 2012 at 3:46 am. #
Paul,
Others have tried this mod, and it is possible, but complicated as there are several places where the authorized file type is checked. I do have an upgrade in the works that will allow this, but for now, you’ll have to mod the plugin to get this. If you search the comments here you’ll probably find some helpful info. Definitely don’t try it if you’re not a programmer, there are security issues.
by Roland on May 10, 2012 at 9:13 am. #
Hi!
Is there a captcha available for this plugin?
Thanks!
by Kat on May 2, 2012 at 8:07 pm. #
Kat,
Not yet, I have it inn the works. I’m suggesting to people they set up a simple question to answer then REGEX the response to validate the submission.
check this comment: http://xnau.com/wordpress-plugins/participants-database/comment-page-4/#comment-932
by Roland on May 3, 2012 at 9:59 am. #
Great plugin, but menu looks defected in Multisite mode.
But looks like i have fixed this, as after searching I found some more people who have the same error and dev don’t know what’s wrong…
the error is:
Warning: include(database.php) [function.include]: failed to open stream: No such file or directory in /blabla/blabla/….
I have opened a topic in support forum, but fixed it myself :)
Fix is there:
http://wordpress.org/support/topic/plugin-participants-database-looks-like-databasephp-file-is-missing?replies=2
Maybe dev will include this in next update ;)
by Gleb on May 2, 2012 at 3:55 am. #
Gleb,
Nice. Do you think that other than this, the plugin works OK in multisite?
by Roland on May 2, 2012 at 6:56 am. #
Yes, all is working great, no more errors or warning were found :)
by Gleb on May 2, 2012 at 7:08 am. #