Participants Database 1.6 WordPress Plugin

This WordPress plugin is for the purpose of creating a simple database for use on a WordPress site. It is primarily intended as a way to manage information pertaining to people such as the members of a club or team, volunteers, students, anything like that. It gives you the ability to allow people to create and edit their own record while additional information can be managed by administrators or managers. The plugin may also be used as the basis for an index, directory or catalog.

The database is made up of fields, and each field may be one of several types that are uniquely suited to store a particular kind of information. These fields can also be divided into groups to help organize the information. Fields can also be provided with help text to assist users in providing the information.

Take a look at this video overview of the plugin contributed by user Fiona Blinco

Plugin Technical Support

Participants Database is a complex plugin and getting the most out of it often requires some basic technical knowledge. There are three main ways I support the plugin: the public forum, the comments section here, and by email.

Please read through the documentation and relevant support conversations before posting questions, you may find your questions have already been answered.

My support email is published in the plugin, please use it if you have questions or links you don’t want made public, or for special requests. While I try to provide good support for free, please remember this is what I do for a living and my time is limited. I am usually available to provide plugin customizations, so please contact me with inquiries about extending the functionality of the plugin.

>>WordPress Plugin Support Forum




Is it possible to add function that will populate one field depending on the value of the another one field?


We have Cities and P.O. Box numbers. I would like that when user selects City the P.O.Box automatically gets populated with it’s value that’s predefined.

Can you add something like that and how much would it cost?

by Ivan on February 3, 2016 at 5:44 am. Reply #

Hi Ivan,

This has to be done using javascript, with an AJAX call to get the value for second field when the first one is selected. That’s not too bad, but there needs to be some kind of user interface so the admin can set up the relational data. I’m too busy to take on a job like this anytime soon, unfortunately. The price would probably be around $200 from what you’ve described.

by Roland on February 3, 2016 at 7:24 am. Reply #

Ok. Thank you for the quick answer.

Some option to connect to newsletter like mailchimp or extract easily to SMS plugins would be also nice.

Have a nice day!

by Ivan on February 3, 2016 at 8:16 am. Reply #

Hi Roland,

Thanks for this nobly intentioned superb offering to people everywhere. I am sure it generates a good deal of positivie karma. I am thinking of setting up a website for a pet project of mine and been looking for a week into WordPress db potentials. Just came across this plugin, looks my best bet. I’m new to WordPress. It would be great if there is a page here with sample projects, or even one project to download with code and a table or two. So I could hack it into shape for my purposes. Any chance of a downloadable sample project?

Thanks again.

by Kass on February 1, 2016 at 6:04 pm. Reply #

Hi Kass,

I’ve never really gotten it together to do this, I’m sorry. I have a demo page, but it certainly doesn’t do justice to what is possible. The plugin is highly configurable, although it was designed with developers in mind, really getting the most out of it does require some coding knowledge to set up custom templates and functionality.

This page about setting up custom templates gives you some idea of the possibilities.

by Roland on February 2, 2016 at 7:37 am. Reply #

Hi Roland,

Thanks for your reply. I bookmarked those two pages yesterday. The templates guide page is well written & illustrated and useful for me for a mobile friendly responsive design as most are browsing on their phones these days. The demo page is also what sparked my interest in any sample code. The code for that page and maybe it’s csv table input would be great as a zip. Or if others have nice simple projects, maybe they can contact you to see if you would put their codes & tables/CSV online here.

Well I just have to get on with it I guess and code from scratch. But you know how it is, we all look to hack sample project codes in new envirnments if we can. Just had a quick scan read of readme. Your CSV input features look great to accept data from my MySQL tables and PHP code.

Thanks again for everything Roland.

by Kass on February 2, 2016 at 11:14 am. Reply #

Yes, good suggestions…but as you can probably appreciate, hard to find time to do all the things. If you have any specific questions, I’m happy to help out.

by Roland on February 2, 2016 at 4:36 pm. #

I am helping a small non-profit establish a WordPress Site for their upstart after school and summer programs. I am using the Participants Database for volunteer signup.
I love it so far. Thank you it is great.
I need to collect hours that a volunteer is available by day of week. How can I arrange a number of fields in a horizontal manner to for volunteer to enter something like:

From 1PM 8AM 8AM 9AM
To 5PM 3PM 3PM 12PM

In a matrix like table with days of week across the horizontal axis, FROM hour and TO hour as rows in the table and then a drop down field in each cell with hours 8AM, 9AM…. 9PM as possible values.

Thanks for any help

by Craig Deaton on February 1, 2016 at 11:02 am. Reply #

Hi Craig,

Yes, it’s possible. You’ll need to have a little PHP and HTML know-how to get it done, it will require creating a custom template for the [pdb_single] shortcode. Take a look at these articles to get you started:

Using Participants Database Custom Templates
How to Use Custom Templates: An Example
Using the PDb_Template class in your custom templates

by Roland on February 2, 2016 at 7:31 am. Reply #

I love your database plugin. I am trying to get it to work for registering multiple events…Looks to have only 1 signup form. I have multiple events and would like to have more than 1 form that can be displayed based on what the event is. It seems like I could the Group Fields to identify different fields for different events but I don’t see where the filter works on the pdb_signup. Basically if i could filter to show only certain groups, think I could get to where I need. Is this possible? Also, could I create a field called event and then populate it with an event name based on the page the short code is located? would appreciate any help. thanks!

by susan on January 20, 2016 at 5:59 pm. Reply #

HI Susan,

Determining which groups are shown with the signup form is easy, you can use the “groups” attribute like this:

[pdb_signup groups="main,address,personal" ]

On your second question, yes it’s possible, it will require a little knowledge of PHP because you’ll need to create a custom template for that. I have a brief tutorial on using custom templates here: Using Custom Templates Then, it’s a matter of setting the value of your field in the loop…like in the example.

by Roland on January 20, 2016 at 6:43 pm. Reply #

Hi, I have had multiple events (two competitions and a training course, and on another site a membership system, club competition and the annual dinner booking/menu choices) and managed without any php.

Once you have, as Roland described, separate sign up pages with post->post_name in an Event field (an edited slug to give a short code for filtering) and post->post_title in an Event Name field (long name for use in confirmation emails etc) all reporting can be done with pdb_list filter=’event=xxx’.

You direct users to the correct signup form from your menu/link and to the correct confirmation page (if you need a different one for each event)using target=’/page’ in the pdb_signup short code.

You must edit records in the admin area, then the event name and event code are maintained.

Using pdb_single or a pdb_record page to edit records overwrites the event information at present. (I am providing feedback to Roland on this).

by Andrew on January 21, 2016 at 12:39 am. Reply #

great! thank you. Is there a way to have 2 participant databases. once that has the signup information (i.e. address, phone number, etc) and then have a second database that I capture the event details and not make the participant reenter all their details.

by susan on January 21, 2016 at 2:18 pm. Reply #


It’s not really possible to do this…you can use the plugin to represent two similar kinds of things, like two different types of member. Unless you only plan to have a limited number of events per person, the plugin won’t be able to do both. Take a look at this article, you may get some ideas from it: “Multiple Databases” with Participants Database

by Roland on January 21, 2016 at 6:01 pm. #

I’ve used your Participants Database and found it to be very useful (thank you). I have since put together a 5 minute video on the plug in. The video is mostly aimed at beginner WordPress site makers who haven’t downloaded the plug in so that they can get an idea if it is the right plug in for them. Please feel free to refer to it if it is useful. I’ve sent a few people to this site when they’ve asked me a question on my You Tube channel that I’m unable to answer. Hope that’s ok!

by Fiona on January 20, 2016 at 5:38 pm. Reply #

by Fiona on January 20, 2016 at 5:38 pm. Reply #

Hi Fiona,

I’m pleased you chose to make a video about the plugin, very nicely done. I would like to place a link to it on the site here, if you don’t mind. Thanks, I appreciate the help.

by Roland on January 20, 2016 at 6:38 pm. Reply #

I was incorrect about post>post_name, etc., being updated by the back end edit. It is only updated from the single record edit page. I am using a modified template with a record link to the single edit record page. (couldnt find my original query to update it). Thanks

by Andrew on January 6, 2016 at 5:36 pm. Reply #

Have you tried checking “read-only” on those fields? Another possibility is you should not include those fields in the singe record edit form. You can control which fields are shown in the shortcode using either the “fields” or “groups” attribute.

by Roland on January 6, 2016 at 8:26 pm. Reply #

Hi Roland, Thank you, I have tried your suggestions. Setting read only on the fields prevents pdb_signup populating them in the first place(!) even when ‘required’. The fields are ‘hidden’ and I have ensured the fields are not in the group being edited. Tried both pdb_single and pdb_record (not sure of the difference!) and also used fields= instead of groups= with same result. Have also tried ‘required’ and ‘not required’.

My work around was originally a SQL Update query but then renamed the linked record editing page to have the same prefix as the pdb_signup page and use filter=event~ etc for reporting but this only works with a single event.

I can think of a workaround using a different template for each event but as events have different names, that’s a bit inflexible and needs php editing for each new event which I cannot give to a customer to maintain.

Somehow we need to rewrite the edited record with only the edited fields and leave the rest alone?

by Andrew on January 21, 2016 at 1:22 am. Reply #

Andrew, This is a bug in the current version of the plugin, fixed in the next release. IF you want to fix it yourself, you can perform the following edit:

classes/PDb_Shortcode.class.php on line 846 you’ll find:

if (Participants_Db::is_dynamic_value($field->default)) {

change that to:

if (Participants_Db::is_dynamic_value($field->default) && $record_value === '') {

It won’t overwrite an existing value.

by Roland on January 21, 2016 at 5:57 pm. #

Leave your comment

Please note: comments are moderated by someone who is usually pretty busy and may not appear for several hours.


Required. Not published.

If you have one.