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.

[email protected]

Next… Using The Participants Database Plugin


Hi Roland, I have not installed your plug-in yet but I’m keen to try it. I have a client who has 125 members in their organisation. They want their member’s directory searchable within certain criteria by site visitors. From what I’ve read in your documentation this seems to be possible with your plug-in. My question is, if their members renew their memberships online (assuming this is possible) is there a way that payment can be collected?
Many thanks,

by Karen on February 25, 2015 at 6:07 pm. Reply #

the plugin does not have a built-in way to handle payments. For most people it works to put the payment button on the “thanks” page if it’s a new signup, but for a renewal, you’ll need to put the payment button on the “Participant Record Page” where you have the [pdb_record] shortcode. Read the quick setup guide, it will make sense then.

by Roland on February 25, 2015 at 10:57 pm. Reply #

Good afternoon,
Could you please tell me how to remove the ‘Leave a reply’ section on the pages. It appears on some pages and others not. There is also a whole lot of code underneath it as well that you can see: You may use these HTML tags and attributes:

Is it possible to remove all this from my website? If yes, how do you do that.
Thank you,

by Rachel on February 25, 2015 at 4:24 pm. Reply #

Sorry another question also….

Is it possible to get the

Logged in as admin. Log out?

on the home page.

Thank you,

by Rachel on February 25, 2015 at 4:27 pm. Reply #

Hi Rachel,

I’m sorry, this is not related to my plugin, you’ll have better luck with your questions in the WordPress community forum.

by Roland on February 25, 2015 at 10:55 pm. Reply #

I wanted to know if it is possible to print the list after it has been sorted or searched. I so how is it done or what code eeds to be added so we can have a print function or even an export csv function o the current results.

by Bill on February 21, 2015 at 4:12 am. Reply #

Hi Bill,

Printing is handled by the browser, and so you’re just looking for a browser print button, a quick web search will answer that one. IF you check the Custom CSS setting, there is a place to put your print output rules so you can format the printed page.

The CSV export is quite a bit more complicated, I have it built into the backend, but there’s no easy way that I know of to make that available from the frontend.

by Roland on February 21, 2015 at 7:47 am. Reply #


Im currently using this plugin on the website

You will notice on this page this is an example code you can put in the search box. Is there any way (once the code has been entered and you are redirected) to show the url to be where XXXXXX is the code entered? Note that each record is viewed by entering in a private_id rather than the id.


by Alex Murray on February 18, 2015 at 5:07 pm. Reply #

Hi Alex,

It might be possible, but I’m not sure exactly how you’d do it. On the receiving end, you’d need an .htaccess rule that takes the id out of the URL and puts it back into the URL as a variable so the plugin knows which record to show. On the sending side, I don’t know…you’d need some way to alter the form redirect so the id is in the URL. I’ve never tried something like this, so I can’t be more specific.

by Roland on February 19, 2015 at 7:30 am. Reply #

We have members that will only need to “renew” their membership. Is there a way for a member to pull up their record from the website to just hit “renew”?

Thank you.

by Elaine on February 17, 2015 at 10:28 am. Reply #

The easy way to do this is to have them use their record edit link to update their record. That would use the standard setup of the plugin. If you need to do something different, it could get complicated, you’d need to do some coding to customize the functionality.

by Roland on February 18, 2015 at 7:56 am. Reply #


I have successfully done adding an edit link in pdb-list-default.php. Now I am planning to do the edit link in single record (pdb-single-default.php). Please help. Thank you.


by Joseph on February 17, 2015 at 4:51 am. Reply #

It works the same way in the single template.

by Roland on February 17, 2015 at 7:38 am. Reply #

Awesome that worked.

by David Terrazas on February 17, 2015 at 2:51 am. Reply #

Is there a way to have an approval process before the profiles go live?

I see an “approval” check box under “Administrative Info” not sure what that is for.
The issue is, that as soon as a user fills out a profile it is immediately listed. If spammers hit this form they will fill this list full of junk, right?

by David Terrazas on February 16, 2015 at 11:42 am. Reply #

This is touched on in the documentation. You should place a filter in your list shortcode that excludes unapproved records, like this:

[pdb_list filter="approved=yes"]

You can have whatever other attributes you’re using in there, too. Now, when a record comes in, to approve it, you’ll need to go to the admin and check the “approved” checkbox. The admin notification email can have a direct link to the record edit page for convenience.

by Roland on February 16, 2015 at 11:54 am. Reply #

Does this plugin do anything to guard against sql injection or spam entries (other than the captcha)?

by Lisa on February 13, 2015 at 8:44 am. Reply #

Hi Lisa,

The plugin uses all the standard methods of database input sanitation provided by WordPress. The upcoming release takes this even further with all user input (not just database queries, where SQL injection is a risk) getting sanitized to address other kinds of frontend attacks. For spam control, all I have in there now is a simple math captcha. It is effective enough for low- and medium-profile sites but wouldn’t be adequate for a site of high visibility. There are filters built into the plugin API so that strong spam control measures could be easily added if desired.

by Roland on February 15, 2015 at 9:07 am. Reply #

Sounds good.

Thanks for the great plugin!

by Lisa on February 15, 2015 at 3:19 pm. Reply #

Thanks for responding Roland.

Well everything you said , as you can tell by what I said, I had already done, but I never saw the template in the site after I uploaded it. So I tried other things and I finally had success.

I’ll share what I finally did to finally get the template incase someone else has the same problem

Rather than to go into wp-content this time as first did, this time I went to public_html. Then under THAT folder I found wp-content, then themes, then my theme (“silver-blue”) , and
then templates (which I created).

From THAT folder I uploaded the template.

To find it, I went back into the wp site in the left side bar under Appearance and then under Editor and once there in the right side bar is where I saw the template listed


Thanks again for responding and I hope this helps someone.


by Karl on February 6, 2015 at 12:03 pm. Reply #


I have a question. All 25,000 of our records are uploaded and the short code for the different categories we display work perfectly,(well as long as we do less than 1000). We are trying to upload a template we have created to display the different categories .

The template is created and we have been trying to upload the template from the host

We went into the files, as instructed clicked on wp-content, then themes, then clicked on the theme we are using called “silver-blue”

Your instructions then call for “templates” to be used. After several times of going in we never saw the templates folder your instructions call for , so we created a templates folder.

From there, we uploaded the template. It is uploaded. We see in but we don’t see it the our site (or perhaps we are looking in the wrong place) so we are unable to use it

Keep in mind we never saw the “templates” folder we were supposed to see,so we created it? ( I think I did see a folder there called “temp” but no templates folder other than the one we created)

Are we following the instructions correctly and if so where in the site should we be looking for the template?


by Karl on February 6, 2015 at 5:02 am. Reply #

You are supposed to create the “templates” directory in your theme directory if it doesn’t exist, this is in the instructions.

The templates should end up being in a location like: “wp-content/themes/YOUR_THEME/templates/” with “YOUR_THEME” being the name of your theme directory.

Sometimes it helps to add something like

<!-- <?php echo __FILE__ ?> -->

To your template so you can tell if it’s being loaded or not. You have to look at the page source to see it.

by Roland on February 6, 2015 at 10:40 am. Reply #

Hi, sorry I posted this on other page but probably should go here…

I have been looking for a plugin that can perform some features I need and think this one may come close, but am not sure as I am not a programmer and sometimes get lost in the technical talk.

What I need the plug in to do is:
* client registers them self using a form
* Client registers all their dogs by the number on their collar.

This information is kept in database

* on a separate form on website, if someone finds a lost dog, they fill out a form (place found, date found etc) and enter code on collar into the form and the message gets sent to the client with that code registered.

Is this possible?
Would it also be possible for the client to have their own private portal/page that they log into to receive these reports from the form in PDF format?

If so how would it be done?
Many thanks

by Bob on January 31, 2015 at 5:17 pm. Reply #

Hi Bob, sorry it took a while to get back to you. This plugin can’t really handle an application like that, the database is one-dimensional, so you can’t have “owners” that have “pets” that’s two dimensions…

It takes a bit of coding, but the closest this plugin can get to handling a situation like this is you use a WordPress registration for your owners, then when they are logged in, they can register their pets. It can get a bit tricky, though, you’ll need to do some goding to get it all working. I have written an article that covers some of the basics of a situation like this:

“Multiple Databases” with Participants Database

by Roland on February 2, 2015 at 7:38 am. Reply #

Actually, this article might be more on target:

Using Participants Database with WordPress Users

by Roland on February 2, 2015 at 7:56 am. Reply #

Hi Roland,
Is there a way to set up the groups/fields such that a field in one group becomes the key for another group? In other words, a field in one group references another group? Thanks.


by Josiah on January 27, 2015 at 7:35 am. Reply #

The plugin in it’s current form is one-dimensional, so that kind of thing isn’t possible without custom code. If you’re a coder, there is an API that give you ways to create custom field types, that is the best way to go for this kind of functionality.

Participants Database API

by Roland on January 27, 2015 at 9:05 am. Reply #

Thanks for the info. Unfortunately that’s a little beyond my coding skill right now but I’ll see what I can do. Much appreciated!


by Josiah on January 27, 2015 at 12:19 pm. Reply #


Yes … After I posted I copied this code that Andrew gave me

[pdb_list filter=”county=Wayne” fields=”address,city,state,zip”]

and it was still leaving out the address and zip

so I altered it to
[pdb_list filter='county=Wayne' fields='address,city,state,zip']

and it worked. Don’t know why the first code didn’t work but, the one I altered did.


by Karl on January 27, 2015 at 3:03 am. Reply #

I meant county=”Wayne” of course…

by Andrew on January 27, 2015 at 1:18 am. Reply #

1. I recall you had some fun loading the data in the first place. Glad that you have moved on but make sure you have data to display in those fields by using List Participants where County=Marin and have a look.

2. If 1. shows the data is there, look in Manage Database Fields to make sure you are using field names and not field descriptions eg it might be zip_code.

by Andrew on January 27, 2015 at 1:16 am. Reply #


That worked a little. I copied what you sent directly to the page but it only gave me the state and the city. No address or zip. Im bot sure why?

by Karl on January 26, 2015 at 6:01 pm. Reply #

Hey Roland

I’m trying to post a list on my page of all the address’s in my PDB that are in a specifc county

I’m using the shortcode ….

[pdb_list filter="county=Wayne&address&city&state&zip"]

I;ve tried this as well

[pdb_list filter='county=Wayne&address&city&state&zip']

With both I’m just getting email address’s and they are not even in the equation. I’m not getting address, city, state or zip at all.

What do you think the problem might be?


by Karl on January 26, 2015 at 1:33 pm. Reply #


I think you will find that you want [pdb_list filter="county=Wayne" fields="address,city,state,zip"]

by Andrew on January 26, 2015 at 4:18 pm. Reply #

Hi again,
I had no idea what post ID meant because it is not included on the list of posts. Been a blogger but never needed IDs before. Finally downloaded the plugin ‘Reveal IDs’. The author Oliver Schlobe indicates that as of WordPress 2.5, IDs on all admin pages have been removed. His Plugin lists the record ID for pages and posts similar to the way it was prior to 2.5
After downloading and using the posts ID numbers, it worked like a charm.
New users of WordPress need a reference to the plugin.
Your Participants plugin is indeed incredible.
Thank you for sticking with me and for your answers.

by Morgan on January 25, 2015 at 2:36 am. Reply #

I’m glad you got it working. Most people use the name (slug) of the page in the setting, so they don’t need to know the Post ID, but WordPress can be set up a lot of different ways.

by Roland on January 25, 2015 at 7:34 am. Reply #

Great plug-in.
I am having trouble trying to save a post ID on record form. Does not update or saved and email notice to new subscriber has no link.
Thanks for any help.

by Morgan on January 22, 2015 at 8:11 am. Reply #

I’m not clear what you’re trying to do here. Are you using a hidden field to capture the post ID of the page the form is on?

The record edit link in the email notice requires the “Participant Record Page” be configured under the “Record Form” tab in the plugin settings. Take a look at the “setup guide” for details on that.

by Roland on January 22, 2015 at 8:35 am. Reply #

I input the name of the file for the Participant Record Page but when updating the page, the Post ID area comes back empty.
By the way, the same Post ID in the Signup Form updates correctly.
Another problem:
When trying to display an individual record, I get a blank because, as you indicate, the id of the record must be in the URL, but apparently I don’t know how this is generated. I thought I followed all the instructions perfectly.


by Morgan on January 22, 2015 at 10:41 am. Reply #

Did you try selecting the name of the page instead of the Post ID? The Post ID selection is so you can select a blog post or custom post type if you want. Normally, you’d choose the name of the page where you placed the [pdb_record] shortcode.

Displaying an individual record is usually done by providing a link to the page in the list display. How to do this is explained in the Setup Guide, look for “Setting Up the List Page and Detail Page”.

by Roland on January 22, 2015 at 11:09 am. #

Thank you for your message.
There seems to be a basic problem with one of the input fields. The editable ID field in Record Form does not retain a typed in file name and returns only a blank upon updating.
I tried it also without specifying an alternative page, and in the Signup Form letter to user specified the following line:
This is your private link: [record_link]
The user’s letter received contains other specified fields [first_name], etc. but only a blank in place of the link.
Perhaps there is a step I’m missing to activate the /participants/detail?pid=

As for display of single record, I completed the instructions, but clicking on the link field only reloads the whole user display listing.

I thought reinstalling would solve the problem, so reinstalled Participants DB on suggestion of Jeriff Cheng by editing the version number of the plugin and then updating from the (WordPress Admin Panel).

Perhaps I need to reboot myself to an earlier me when I could solve all problems on my own. Thanks for your help.

by Morgan on January 24, 2015 at 10:25 am. #

The “post ID” is only for a post ID number, not a file name. You just need to find the name of the page with the [pdb_record] shortcode in the dropdown. Same goes for the single record page. These have to be be correctly set in order for the email and list links to work.

by Roland on January 24, 2015 at 3:12 pm. #

Hi there, I’ve checked through the support forums and documentation but can’t seem to find a solution to my issue. I’ve got a large database, and it seems that when I reached 1000 members, the pdb_list stopped displaying new members. The members are successfully added to the database and I can find the user in the front end list by searching, but the pdb_list just stops at member #999. I need to be able to display members in the 4 digit range. If you can help at all it would be greatly appreciated. Thanks!

by Justin on January 21, 2015 at 12:32 pm. Reply #

Hi Justin,

Not sure what the problem would be here, I have many users with databases much larger than 1000 records without problems. What exactly are you seeing? Are you using pagination?

by Roland on January 22, 2015 at 8:32 am. Reply #

After reading your reply I went through the settings and was able to work around the bug by ordering my list by “date recorded” instead of my custom field “membership number”. Thanks for the reply though!

by Justin on January 22, 2015 at 9:50 am. Reply #

Hi Justin

I had the very same problem a couple of weeks ago. My database had 25,000 records and for weeks I checked every source and did everything I could to load them but I was never able to load.
Finally after weeks and weeks rather than trying to load the hold the whole thing I finally was able to get them all in but I had to do 1000 at a time 25 loads (it wouldn’t even do 1500). They are all finally in. Now my challenge is to try to load a few of the fields from the 25,000 records through the shortcode to my page. I haven’t quite figured that out yet. I’m not sure how many actually get loaded but I’m sure its not 25,000. If anyone can figure that out please let me know.

by Karl on February 6, 2015 at 12:15 pm. #


2 questions:

1) Is there a shortcode to drop in the private link request on it’s own page in WordPress (rather then as part of the “Forget your private link? Click here to have it emailed to you”?

2) Can I send out private links to all my list participants?

Thank you.


by Janak Rajani on January 19, 2015 at 12:16 pm. Reply #

You can use the [pdb_request_link] shortcode as explained here:
Using the Participants Database 1.5 Plugin

You can only send out the private links manually, the plugin doesn’t have the ability to send those emails on command.

by Roland on January 20, 2015 at 8:25 am. Reply #

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.