Participants Database 1.5 WordPress Plugin

Call for Beta Testers!

Release of version 1.6 is coming, with new features & many code improvements.

I need beta testers, so if you have an install of Participants Database in a non-critical application and want to run it through it’s paces for me, email me.

what’s new in 1.5

There’s lots of improvements under the hood, and a list of new and better user features too:

Plugin Overview

This WordPress plugin is for the purpose of creating a database for use in 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.

>> Quick Setup Guide

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.

Please read the documentation fully, as this is a complex plugin that can be used in a lot of different ways.

I have created a page that gives a step-by-step method for setting up a typical application of the plugin. I suggest you begin with that, it will help you understand how the plugin works and also give you a working baseline so you know the plugin works on your site. You can make your modifications to the plugin functionality from there.

Next… Using The Participants Database Plugin


I was trialling your plugin in the hope of getting an easy to use/modify and lite staff directory set up. Unfortunately when I open the “manage database fields” I get the following error. I have tried to trace it but cannot see where it comes from.

Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\wp_cppt\wp-content\plugins\participants-database\manage_fields.php on line 467

I was following your instructions, have I missed a step?

by Dawn Clampin on September 15, 2014 at 5:28 am. Reply #

Hi Dawn,

That is a curious warning message, I can’t really account for it, unless the database isn’t set up correctly. Are you seeing a database error in the PHP error logs?

Did you try to go on configuring the plugin anyway?

by Roland on September 15, 2014 at 9:40 am. Reply #

Need Beta :


WHY WHY WHY ,, just WHy ,, didnt you add AJAX submit calls , instead of a full page refresh . So awesome plugin …. if it just has the Ajax submit that wud be just beauty , plain beauty

by Saad Zaman on September 13, 2014 at 5:51 am. Reply #

Hi Saad,

I can’t keep adding new features, I have to stop long enough to release! Yes, AJAX is a good idea, but I will do it as an add-on plugin, not in the main plugin.

If you want to beta test the plugin, visit this page: Participants Database Beta Test

by Roland on September 13, 2014 at 7:34 am. Reply #

Hi I’m looking if your (excellent) plugin fits the need for a new site user management, I need to add comments in paragraph [pdb_single] for each participant, in my tests the shortcode is an entry you come from list, but evidently not show comments per participant, but which are common to all.
What solution you propose to adapt this need? I think it would be best that each perticipante was a check in wordpress or perhaps a link between tables with private ID.
There are other small changes to make, as well as the translation into my language (Catalan / Spanish), image size, etc …

by Albert Roig on September 12, 2014 at 9:19 pm. Reply #

Hi Albert,

You can add text-area fields to the participants record, go to the “Manage Database Fields” page and create a new field, change it to “text-area” or “rich-text.”

The plugin records are not connected to WordPress users, that is not it’s purpose. There are many plugins that add custom fields to WP users if that’s what you need to do.

I would be very happy to add Catalan Spanish translations to the plugin.

Image sizes can be easily changed using custom CSS rules.

by Roland on September 13, 2014 at 7:32 am. Reply #

Hi, so far I am loving this Plug-in and it is working really well for me. It currently has the capacity to put a link to a single record page where details of the record are shown. I was wondering does it also have the facility to set up 2 of these links (links on different fields)(e.g. ‘view my full profile’ and ‘view a brief synopsis’) to different pages so that one page shows lots of details with information from many fields and another only chose one or two key pieces of information? Thank you

by Carol Dawson on September 10, 2014 at 12:15 pm. Reply #


You’ll need to create a custom template for this. Use the usual “single record link” for one of your destinations, then choose another field to link to the second one. In the template, you then add a link which you construct to that field. Using the “pdb-list-detailed.php” template as a starting point, you’d put something like this on line 179 right after the regular single record link is placed:

if ($this->field->name == 'extra_link') {
$value = empty($value) ? $this->field->default : $value;
// add the record ID to the link
$link = '' . '&pdb=' . $this->record->record_id;
// now print the linked field
echo '<a class="extra-link" href="' . $link . '" rel="nofollow">' . $value . '</a>';

You will of course need to adapt that with your own values.

by Roland on September 11, 2014 at 9:33 am. Reply #

Hi Roland,

Just a simple question – I hope. When the user is provided with the link to edit their own entry is there a way I can enable them to be able to delete their entire entry too? Because I only see the possibility of them altering what they have inputted and then saving the changes currently…

Many thanks,

by Craig on September 10, 2014 at 3:25 am. Reply #

Hi Craig,

No I have not provided a way for the user to delete their own record. You could provide them with a checkbox that you could use as an indicator to hide the record (by filtering such records out of the list display) and delete it from the backend if you really want it gone.

by Roland on September 10, 2014 at 6:53 am. Reply #

In the email requesting a forgotten link. I was testing it on myself, as you do.. The debug plugins on the beta might be useful for this sort of thing too?

by Andrew on September 6, 2014 at 8:01 am. Reply #

I am attempting to set up a website in WordPress 3.9.2 which will consist of a database of organisations with a facility for approved organisations to insert their own data, including three fields with downloadable PDF files. Parallel to that, will be a registered membership which will have access to the database and, therefore, a means of direct contact to any featured organisation.
The organisations would ideally also be able to host a blog/comments page on the website, specific to their organisation. Participants would appear to be eminently suitable for this but I am struggling to find the right theme. Any comments, advice or recommendations would be very much appreciated.

by Philip Allum on September 4, 2014 at 10:37 pm. Reply #

Hi Philip,

There are a lot of WordPress themes out there, but with such a specialized application as you’re creating you’ll be doing a lot of custom work to get all the pieces to work together. You may find that a “membership” type plugin works better for your purposes because they will give your users a login that will also give them selective access to your forum and contact list. The Participants Database is more informal, it doesn’t involve logins, for instance, so it does not naturally work with controlled-access setups…although of course it can be accomplished with some custom code.

by Roland on September 5, 2014 at 7:27 am. Reply #

YES!!!! Thank you Roland. Your Plugin is fantastic, and your support even better!

by Molly Morris on September 4, 2014 at 2:39 am. Reply #

Hello, Roland,

How are you?
I need to do something like this
[pdb_list fields='nickname,from,to' filter='last_name~Str|(fromSeptember 30 2014|to=)']

Basically, those records either with last_name including “Str”, or with available dates starting from Sep. 1 2014 and ending on September 30 2014 or no ending date. “from” and “to” are date field type, “last_name” and “nickname” are text field type.

But it seems the parenthesis in my above example won’t work, the shortcode lists all records from the DB. So how do I write a complicate filter for the pdb_list shortcode?

Also, in my example, the “to=” is for no value in the “to” field (empty field), but the way I put there did not work either. How do I get records with some empty fields?

Could you help please?

Thank you very much! Great plugin!

by Melody on September 3, 2014 at 4:17 am. Reply #

Hi Melody,

The syntax for setting up the filter attribute is detailed on this page: Filtering which Records Get Shown with the List Shortcode

You have operators such as “less than” and “more than” that can give you date ranges, for instance.

by Roland on September 3, 2014 at 7:23 pm. Reply #

Hi, Roland,
After reading the part “Filtering which Records Get Shown with the List Shortcode”, I still can’t make my filtering work correctly.

Can I add parenthesis myself in the filter string to indicate the correct logic I want?

For example,
[pdb_list fields='nickname,from,to' filter='last_name~Str|((fromSeptember 30 2014|to=))']

It did not work as expected. What is the correct syntax for such more complicated filters?


by Melody on September 4, 2014 at 2:59 am. Reply #

Oh no, my shortcode example got truncated.

My filter is:
last_name~Str | (( from < September 01 2014 | from = September 01 2014 ) & (to > September 30 2014 | to = ) )

Hopt this time it shows correctly.


by Melody on September 4, 2014 at 3:11 am. #

Parentheses are not allowed, so you just have to chain your statements with “&”

OR statements are automatically parenthesized.

Try it and see if the results aren’t correct.

by Roland on September 4, 2014 at 8:24 am. #

Yes, send me the Beta and I will have a look.

by Andrew on September 3, 2014 at 12:06 am. Reply #

Ok, I found the Beta instructions. Always happens just after you post a request…

by Andrew on September 6, 2014 at 2:32 am. Reply #

I’m using this plugin on a site for a nonprofit environmental group; the initial request was to get people to sign up to participate, at which point they’d be added to our Google Group. However, some people are overwhelmed by the amount of email the Group generates, so we’ve decided to offer an email newsletter as an alternative. So my question is: is it possible to add fields to the sign-up form where a user could specify if they prefer the newsletter or the Google Group (or both), and have that choice become a record in the database? I have enough understanding of PHP to edit existing files, if that’s necessary.


by John Prusinski on September 2, 2014 at 12:05 pm. Reply #

Hi John,

It’s not difficult to configure multiple-choice controls such as radio buttons or check boxes. This is detailed on this page: Defining Participants Database Fields

by Roland on September 3, 2014 at 6:41 pm. Reply #

Hi Roland, thanks for the great work with this plugin!

I have a question: I made the signup form with a dropdown field called ammount, the participants can select the value here and it´s ok. But in some cases, I need to edit the value for another that is not in the “list of valid values for the dropdown”. For example, dropdown has the “5,10,15,20” valid values and for some records I need to set the value as “12”. I see I can´t do it in the “edit record page” because it’s showing me the same dropdown. Is there any way to achieve this?

Thank you in advance.

by Alexpardo on September 2, 2014 at 4:43 am. Reply #

You have to do this in the admin. It’s also possible to use a dropdown/other element where an amount can be written in.

by Roland on September 2, 2014 at 9:51 am. Reply #

In the admin page I can’t free edit.. It would be great if I could have dropdown for the signup form but dropdown /other for admin. Is there any way to achieve this? Thanks

by Alexpardo on September 3, 2014 at 5:00 am. Reply #

The plugins doesn’t have a way to do this. You can do it with a custom template: Using Participants Database Custom Templates

You’d need to know some PHP and HTML to take advantage of that.

by Roland on September 3, 2014 at 7:25 pm. #

The easiest work around is to right click the record to be edited and open it in a new tab/window. Make your change, then close it to return to your list in admin. It wont show the update of course but it’s easy to move on to the next record without re-doing the filter.

by Andrew on September 6, 2014 at 2:09 am. #

Hi again Roland,

I try to change the permalink of the page with my list, but then, from the list, when I clicked on a name I got a 404 error. I changed the list permalink back to what it was but I’m still getting the 404.

Before I messed with the permalink everything was working perfectly.

How do I get it back?

by Molly Morris on September 1, 2014 at 4:56 pm. Reply #

There is a quirk in WordPress that if you throw a page in the trash, it’s slug is still in the database, so you can’t use it on an existing page. You no doudt tried to get rid of the “-2″ in your permalink and found it didn’t work. You need to go in to your pages and click on the “trash” link at the top of the list. Find the page, then click on the “delete permanently” link. Now, you can change the slug of your page with the list. Then to seal the deal, go to your “permalinks” setting and re-save the permalinks.

by Roland on September 1, 2014 at 6:06 pm. Reply #

OK, Roland, I tried your fix – deleting the file in Trash. Now I’m not getting the 404 error, but when I click on a name in the list from the list page at it just takes me to the same list page, although the slug appears to be the single post.

Any other ideas?

by Molly Morris on September 3, 2014 at 2:45 am. Reply #

You getting closer. Now go to the plugin settings and make sure the “single record link” setting is correct.

by Roland on September 3, 2014 at 6:42 pm. #

Hi Roland, Have had a gap to do some testing of I know you are testing 1.6 but just in case you have time to look at these.
1. Captcha not working. Whatever answer I give it rejects!
2. Dates… Cannot use Form Element type Date Field. Best case it ignores invalid entries and also clears the field if any other field trips an error (2012 Theme). Worst case I get a white screen and hangup as soon as Submit is clicked and the record is not saved. (2011 child theme.) I have to use text dates.
3. Dates again affects both sites. The Date Recorded is correct for a new record but if records are downloaded to spreadsheet, changed and uploaded the mm/dd/yyyy is transposed to dd/mm/yyyy but only if there has been a change to the record. As a result my Date Recorded field is in a bit of a mess with mixed formats now!
4. I am getting prefix , (comma+space) appearing in both types of multi-select check Form Elements fields. (Ithink you already know this one).

PS I am in the UK but date format settings are consistently dd/mm/yyyy from Apache server and WP down to PDB(d/m/Y) with strict date format selected. Thanks!

by Andrew on September 1, 2014 at 3:53 pm. Reply #


Yes, slashes with the UK style dates and PHP/Apache can be tricky. It works great if you don’t use numeric dates. That said, the date code has gotten a lot of attention in the latest version, and should be more stable. If you are willing to go with the beta version. I’d love to hear how it works for you.

by Roland on September 1, 2014 at 4:40 pm. Reply #

Hi Roland, I did respond before it doesnt seem to have posted… but do send me the beta.

BTW the update record link is presenting a blank record. Is this correct? I thought the existing data would be displayed?

by Andrew on September 6, 2014 at 2:15 am. Reply #

Hi Andrew,

Thanks for getting onboard for beta testing.

Update record link? Where are you seeing this link?

Comments aren’t seen until I approve…too much spam otherwise.

by Roland on September 6, 2014 at 7:48 am. #

Hi Roland.
Of cause this was my fault. Sorry!
I found a plugin called “Responsive Maintenance Pro With Countdown”. When I deactivated that, the Participant Database turned up.

by Jacob on September 1, 2014 at 12:40 pm. Reply #

That makes sense…I was going to suggest turning off other plugins.

by Roland on September 1, 2014 at 2:00 pm. Reply #

Hi Roland:
The heading “Participants Database” is not in the Admin.
I’ve tried to install several times. Is there something I can do?

by Jacob on September 1, 2014 at 9:47 am. Reply #

Hi Roland.
Now I’ve tried to install the Participant Database in 3 different ways with the same result. The Manage Database Fields page don’t show anywhere.
What to do?

by Jacob on September 1, 2014 at 7:46 am. Reply #

Jacob, when you are in the admin, it should be on the right, under the heading “Participants Database” it it’s not there, then something is wrong.

by Roland on September 1, 2014 at 8:41 am. Reply #


I’m currently running WordPress 3.9.2 and Participants Database Each time I make an adjustment in the Settings area of the plugin (after pressing “Save Plugin Settings”), I immediately get a “Connection interrupted” error in all browsers. What could this be?

Thanks in advance,

by Adam on August 31, 2014 at 6:13 am. Reply #

This kind of server-level problem is often caused by security rules in force on the hosting server, or in some environments (such as schools or internal corporate networks), the network itself. I suggest you contact your web host and ask them to look into any security rules that might prevent these transactions.

by Roland on August 31, 2014 at 8:04 am. Reply #

Hello Rowland,

I spoke with my hosting provider and they’ve fully inspected all logs and there is nothing blocking the plugin from changing the settings. They suggest it is an issue with the plugin. Would you like complete details about what version of software (on the server) my website is currently hosted on?


by Adam on September 3, 2014 at 5:25 am. Reply #

Hello Roland,

Reinstalled with no luck – sadly your plugin is the only one out there suitable for my needs. Happy to donate to come to a solution for this.

by Adam on September 6, 2014 at 2:00 am. Reply #

Would the fact that I’m running an addon domain also with WP installed be an issue? Desperately trying to come to a resolution for this.

by Adam on September 8, 2014 at 3:01 am. Reply #

An addon domain is usually a completely separate install, so as long as your DNS records are correctly configured, and all the WP settings that relate to the domain and directory structure are correct you should be good. I presume you’ve taken a look at the POST requests that are failing to make sure they are correct? That would be one indication that the settings are incorrect somewhere.

Did you copy the WP install and/or database from another location?

by Roland on September 9, 2014 at 2:21 pm. #

Hi Roland

I have an issue with the Participant Database read only fields. I have selected some fields to be read only so the user can only see the content and will not be able to modify the read only fields. My issue in the advanced setting I selected a different role for “Record Edit Access Level” other then Admin so that I can have one of the staff access to the database and do updates with out giving them full admin access. When the staff updates read only fields the data does not get updated. Is there a way to restrict to allow my staff to update the read only fields

by Jim on August 30, 2014 at 8:48 pm. Reply #

Hi Jim,

This may be a bug, I will have to look into this. Users with this level of access should be able to edit all fields in the backend.

by Roland on August 31, 2014 at 8:01 am. Reply #

ok perfect for letting me know and hope there will be a fix to this bug soon.

Thanks again Jim

by Jim on August 31, 2014 at 7:49 pm. Reply #

OK, just to confirm, your users that have “edit record” access cannot edit read-only fields in the admin edit record page?

by Roland on September 1, 2014 at 8:44 am. #

Yes that is correct.

by Jim on September 1, 2014 at 8:55 am. #

Hmmm, I just tested this and I’m not seeing the problem. I wonder what’s different about your setup. So your other user is an “Editor” and you have the “Record Edit Access Level” set to “Editor” as well? When they try to change a “read only” value, they can edit the field, but when they save the record, the change doesn’t stick?

by Roland on September 1, 2014 at 2:09 pm. #

I played around with the user role editor and got it work. So you are correct there is no bug the functionality is working fine it was just my settings we wrong. Thanks a lot for your help.

by Jim on September 1, 2014 at 5:35 pm. #

Glad to hear you got it working.

by Roland on September 1, 2014 at 6:07 pm. #

Hi Roland,

I clone my entire wordpress and data base to another host with a plugin named “duplicator” until now everything works except when I try to add a field just in one of me field groups, the error is
You don’t have permission to access /wp/wp-admin/admin.php on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

Apache/2.4.10 (Unix) OpenSSL/1.0.1e-fips mod_bwlimited/1.4 Server at Port 80

Any idea to solve this issue,

Thanks in advance

by Vladimir on August 29, 2014 at 1:06 pm. Reply #

Vladimir, you will need to contact your web host about this. It looks like the request is hitting a security exception.

by Roland on August 30, 2014 at 9:12 am. Reply #

I am using the participant database to manage faculty profiles. It worked for a while but now seems to give most users an 500 internal error when they request the private link be sent to them. Strange thing it works away from the school but not at the school… any ideas? here is the URL

by Tommy Davis on August 28, 2014 at 5:03 am. Reply #


This is no doubt due to security filters in place at the school. You will need to talk to the IT folks there to see what rules might be getting triggered by the request.

by Roland on August 30, 2014 at 9:14 am. Reply #

I want to style or replace the Submit and Clear buttons in the Participant Database search page I’m setting up on this site, but I cannot find the buttons in any of the files.

I also want to add text to the search box – something like “enter instrument, teacher;s name or location”, but I can’t find the file where I’d do that, either.

PLEASE help!

Thanks for a great plugin that does exactly what I want it to do.

by Molly Morris on August 27, 2014 at 3:45 pm. Reply #

Hi Molly,

To style your buttons, you don’t need to change the code, you can just create some CSS rules to change how they look. There is a place for your CSS rules in the plugin settings under “custom CSS.”

For you second one, you’ll need to create a custom template to add your own text to the search form. Sorry, it’s not very user-friendly.

Check this article for how to create a custom template: Using Participants Database Custom Templates

If that’s more trouble than you want to go to, you can put that text on the page where the shortcode is.

by Roland on August 27, 2014 at 4:00 pm. Reply #

Thank you Roland. So, for the custom CSS what exactly am I styling? submit_button and clear_button or is it something else?

by Molly Morris on August 27, 2014 at 4:33 pm. Reply #

If you look at the HTML you’ll see the submit buttons are input tags:

<input type="submit" value="Search" name="submit_button">
<input type="submit" value="Clear" name="submit_button">

The pretty much the same, except for the value, so if you want them to be different, you’ll need to use a selector for the value as well as the name: input[name="submit_button"][value="Clear"]

by Roland on August 27, 2014 at 9:01 pm. #

Hi Roland. I’d like to thank you for your patient replies and professional, humane help!

I’ve been contacting you about the issue with empty string and comma in the list results when using a checkbox or multiselect checkboxes. I figured it would be more beneficial for everyone to see in case other people are experiencing the same issues.

I have found what’s causing this to happen with my stored serialized arrays. There’s a blank hidden field that has a value of “0” which appears to be causing this.
The code, ‘aux_plugin_settings . ‘[%1$s]” type=”hidden” value=”0″ />’ seems to be the root of this issue. In Chrome dev tools, when I delete the hidden field where ever I’m using multi checkboxes, and submit the form, it stores and displays my checkbox values the way I expect without the leading empty string, integer, and comma.

Is it possible for me to comment out this code in the proper PHP files? Would this cause any future problems and which files?


by Robert Wilkins on August 20, 2014 at 7:40 am. Reply #

Yes, that is the issue, it’s a documented bug I’ve got fixed in the next release. The only problem with your fix is that you won’t be able to store a “nothing selected” state. That’s what the hidden field does, although I needed to improve the code so it works under all circumstances.

by Roland on August 20, 2014 at 9:31 am. Reply #

Thanks for your reply. If I just grabbed the affected files you’ve posted in the new release on github would it still work?

Can you point me to the PHP files that have this code?

Thanks again!

by Robert Wilkins on August 20, 2014 at 9:35 am. Reply #

Bob, if you’re going to use the new release, you have to use the whole thing. Check this page out for instructions:

Participants Database Beta Test

by Roland on August 20, 2014 at 9:53 am. #

So is there no way to remove the hidden field? I tried to remove this code from my forms ‘aux_plugin_settings . ‘[%1$s]” type=”hidden” value=”0″ />’ from the code in PDB_Aux_Plugin.class.php but that file had no effect on my form.

I know you mentioned the beta version but I’m a little worried about testing it on a production site.

Can you let me know what code I’d have to modify to eliminate the hidden field(s) for checkboxes? When I remove them in my browser, the records seem to save just fine.

Thanks again,

by RW on August 20, 2014 at 3:55 pm. Reply #

OK, I got it. I’ve resolved the issue and edited the code. I will make sure to be careful when you release the Production version of your updated plugin.

Thanks again,

by RW on August 20, 2014 at 7:13 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.