Participants Database WordPress Plugin

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.

>>How to Use This Plugin…

>> Quick Setup Guide

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.

This plugin has also been used to catalog businesses, items in a collection, and other things. Where this plugin is different from other cataloging plugins is it’s ability to allow site users to add content.

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
  • 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
  • search-able, 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
  • all shortcodes use a template that can be user-configured to match the look and functionality of your website

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, rich text, single and multiple-select dropdowns, checkboxes, radio buttons, image uploads and more. Each field has its own validation which can be required, not required, or validated with a regular expression.

Templates

Each shortcode uses a template to control it’s presentation. It’s possible to create custom templates, even multiple templates that can be selected by the shortcode. Several example templates are included with the plugin to help get you started. Templates are a great place to add extra functionality to the plugin. More on that here…

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.

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

List Display

Display the list on your website with the [pdb_list] shortcode. You can determine which fields get shown, and for long lists, the list can be broken up into pages. You can specify which records get displayed and in what order. Optionally, search and sorting controls can be displayed.

Record Display

Using the [pdb_single] shortcode any individual record can be displayed by including the ID of the record in the URL. A template file formats the output of the shortcode. You can set up the list display to include a link to this page for any record.

Admin Section

Admin List Records

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.

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.

A CSV export is not the same as a database backup. It is for the purpose of interfacing the plugin database with other applications and does not include plugin setup information.

Screenshots:

1,132 comments

Hello,
Firstly I must say great job on the plugin! Quite configurable and easy to use. I am having one issue:

When I try to export a CSV file, I am redirected to the site’s main page. I receive no error message or anything, just a redirect. I read on the WordPress support forum about someone who had the same issue and you asked what PHP he was running – I have version 5.2.

Might I get the download dialogue to work without a fresh install? Or should I just back up another way and start over? Can I save my data?

Many thanks!
Jeff

by Jeff on May 22, 2013 at 12:01 pm. Reply #

Hi Jeff,

Not sure what would cause this, although if there were an error, it would most likely show up in your PHP error log. That would be a good place to look to get an idea what’s going on. This would tell you if there were functions missing due to the version, but 5.2 should be good.

Of course, you can back up your database easily with any WordPress backup plugin that backs up the entire WP database, and most do. You can also export the plugin’s tables directly from the database using PHPMyAdmin or something like it. This is actually a far better way to back up…the CSV export is intended for interfacing with spreadsheets and other database applications, not backups.

Get a look at your PHP error log, and let me know if anything shows up there while you’re trying to export the CSV. I’d like to know what’s causing this if possible.

by Roland on May 22, 2013 at 12:24 pm. Reply #

Hi Roland,
I wonder if you received my request so I re-propose it.
I’d like to use the shortcode [pdb_list search="true"] in a page of the blog and I wonder if it’s possible to manage the witdh of the columns that display the data fields of the participants, if yes how to do it.
Thanks a lot in advance.
Yo

by Yo on May 21, 2013 at 7:49 am. Reply #

Yo,

Yes, you can, but the plugin doesn’t do it. You need to add some CSS rules to your theme to make those changes. Some themes have a “custom CSS” area, which makes a good place to add your new rules. Otherwise, it can go into the theme stylesheet.

by Roland on May 22, 2013 at 7:16 am. Reply #

Thank you for a wonderful plug-in. I am really happy with it. I have run into one “issue” which is not necessarily a bug but I wanted to inquire anyway (and apologies if this has been asked before, I went back several pages in comments without seeing it) Anyway~

Is there any way to make it so that clicking the back button will return the user to the previous view?

For example, if they have filtered a list by certain parameters, then click on an individual from the filtered list, and then click “back” – currently they are taken back to the default list that is not filtered to the criteria they were last looking at, which means they have to do the filter again – not a quick back/forward.

I am guessing since this is all dynamically displayed this is just how it works but in case I missed some functionality I wanted to inquire. Thanks again for your hard work!

by Janet on May 21, 2013 at 5:36 am. Reply #

Hi Janet,

The back button I have provided is very simple…I think I will improve it in the future so it works as you suggest. For now, the best way to make the back button work as you want is to use a custom template (instructions here) and make your own. You can do this with code like this:

<button onclick="window.history.go(-1)">Back</button>

This, of course, won’t work if the individual record opens in a new window or tab.

by Roland on May 21, 2013 at 6:55 am. Reply #

Roland
Perhaps I am missing something obvious. It has been a tough week….. I have the plugin installed and activated. I can see the Settings and change them. I can modify the database columns.

However:
The columns are apparently NOT being added to the database – at least they are not appearing in any form I can find and they do not appear in the WP dashboard.
The short code to return a record responds by saying no record exists. In fact it does since the person is logging in.
Is there a short code for logging in?
Thank you for your help.

by Falcon on May 14, 2013 at 10:14 am. Reply #

Roland
A follow up question: Does your plug-in actually add fields to the WP database? I noticed that the plug-in’s list of columns doesn’t include a user name – I added one – but how does your database relate to that used to manage users in WordPress.

by Falcon on May 14, 2013 at 10:33 am. Reply #

Thank you.
Actually, I am not trying to use this plug-in to create logins per se. I want to use it to create a more robust user profile.

by Falcon on May 14, 2013 at 3:24 pm. Reply #

This plugin can do that for you, but it won’t be helpful if you need to give your users any privileges other than keeping a profile.

Have you tried going through the “Quick Setup” page in the plugin menu? That will give you the rundown on how this works and how to do a default setup.

by Roland on May 14, 2013 at 4:36 pm. #

Well, I think the plugin does something different than what you’re thinking. It doesn’t have passwords or logins, and it has nothing to do with WordPress users. If you want to give your site visitors the ability to create login accounts, I suggest you try a plugin named “Front End Users” that does this very well.

This plugin has it’s own separate database and it is usually used to register and store membership lists and things like that where a login account is not desired.

by Roland on May 14, 2013 at 10:40 am. Reply #

We’re using your database and it works great. However, were getting a lot of erroneous signups, much like from a robot. Whats the easiest way to prevent this with requiring a sign in to the website? I have seen other plugins with an extra entry like “1 + 2 =?” answer.

by bdenison on May 13, 2013 at 11:00 am. Reply #

Yes, you can do that with this plugin as well. I have the procedure outlined here under CAPTCHA: http://wordpress.org/extend/plugins/participants-database/other_notes/

by Roland on May 14, 2013 at 10:31 am. Reply #

I wants to display my customer birthd..ay in every day..how can i do this using participant database

by janath on May 12, 2013 at 10:46 pm. Reply #

Hi, I’m not sure how to help you. The plugin does not do this…it is not a calendar application.

by Roland on May 13, 2013 at 7:24 am. Reply #

Help.

This appear on my web
Participants_Db::parse_date tried to parse timestamp from Vary: Cookie X-Pingback: http://www.smada88madiun.org/xmlrpc.php Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Pragma: no-cache Content-Type: text/html; charset=UTF-8 Link: ; rel=shortlink

can you solve this problem, this appear after update
tq

by ariefwm on May 9, 2013 at 3:35 am. Reply #

This is not an error, just a warning. Your PHP is configured to show all errors and warnings, you probably need to set your WordPress WP_DEBUG to false in your wp-config.php file.

by Roland on May 9, 2013 at 8:07 am. Reply #

I understand the origin of the plugin is to have a visitor do a quick register and then come back to the site to fill out the long form. I can do all that without error…..but I’d rather just get the [sign_up] to show all the fields I have added in the first place rather than just the default ..name,city email, mailing list. I tried to eliminate the link to [prb_record] to no avail and have numbered all fields in the Main. This must be an easy fix but I am far from a pro. I’m using Safari. thxs much

by paul hart on May 8, 2013 at 6:02 pm. Reply #

Paul,

What may not be clear is all this can be configured on the “manage database fields” page. In the right column is a checkbox to determine if the field is in the signup form.

Define all the fields you want to use and delete the rest. They are just there to get you started.

Check out the documentation for more.

by Roland on May 9, 2013 at 8:04 am. Reply #

Ha. That’s what happens when you work on a small screen. Unbelievable I didn’t open the whole page…sorry to waste your time…Now this plugin is king- and I’ll support! Thanks

by paul hart on May 9, 2013 at 5:26 pm. Reply #

Hi,

I’m trying to use this to maintain a list of recurring weekly meetings. Is is possible to sort by day/time order? It wants to put the days in alphabetical/numerical order.

I added a work around column that gives a numerical order to the meetings, but it’s kind of clunky.

Thanks so much.

by Jenn D on May 8, 2013 at 6:57 am. Reply #

Jenn,

On the plugin’s “other notes” page I have a section on how to set up a numeric sort. Look for it under “Numeric Sorting”

by Roland on May 8, 2013 at 10:45 am. Reply #

Hi, thank you very much for your work! I’ve a problem, i use the shortcode [pdb_list search="true"] for search inside a database and display the results. Now i can select only one field for the search,but i need to make a search crossing two field by AND or OR. Is it possible? How i can do it?

Thank you for the help,
regards
Leonardo

by Leo on May 7, 2013 at 10:08 pm. Reply #

Leo,

This will require coding a custom search form. If you know how to write code in WordPress, I can give you more details.

by Roland on May 8, 2013 at 10:44 am. Reply #

Hi Roland, i don’t know how to write code in WordPress but it’s very important for me solve this problem. If you can give me more detalis i ask help to my friend that is more able to me. Is enough to create a form that allows me to make a search in AND between two fields

Thank you very much for the help,
Leo

by Leo on May 10, 2013 at 5:18 am. Reply #

The basic idea is you place the shortcode in the WP theme template using the “do_shortcode” function. This allows you to build a filter string into the shortcode that includes the search terms. For instance, if you wanted to show the result of all the peole in the state of California that like the color red, you’d do something like this in your theme template for your results page:

<?php echo do_shortcode('[pdb_list filter="state=' . $_GET['state'] . '&color=' . $_GET['color'] . '"]') ?>

It just a matter of creating the form that supplies the values, which is straight HTML.

In the upcoming major release this is made much easier, but that is several weeks off.

by Roland on May 10, 2013 at 6:55 am. #

Roland I’m really pumped about your plugin! I created a usable regex which solves some of my other problems. Keeping things simple, makes life so much easier.
My question to you in revising the signup template is this:
If I have 2 email fields and only the first one is visible by default. Then, if a visitor had filled out the field name “email1″, could I write some condition in the signup template like:

if ( $this->field->name == 'email1' ) {
if ( ! is_isset() ) $this->field->value = 'show->field->name == "email2"';
}

So, if someone fills out email1, then email2 shows up, if they fillout email2, then email 3 shows up…

by RW on April 30, 2013 at 6:08 am. Reply #

Bob,

No, not really. You can’t do anything with user-entered data in the template, because the template has done it’s job by the time the user sees it. If you need to copy data that someone enters into another field, it’s best to do that in Javascript. It can also be done in PHP post-submit, but that is perhaps even more complicated.

by Roland on April 30, 2013 at 1:08 pm. Reply #

Leave your comment

You can use these XHTML tags: <strong> <em> <code> <pre> <a href="" title=""> <img src="">

Required.

Required. Not published.

If you have one.