Description
This plugin offers all the functionality needed to build and maintain a database of people or anything you want. The database is fully configurable, allowing you to define all the fields of information you want to store for each record. The records can be entered individually in the WordPress admin section, imported with a CSV file, or let the individuals themselves create their own record. Display lists of records can be sorted and filtered by any field, and the result exported as a CSV file.
This plugin was developed for an organization with the mission of educating and empowering voters. This organization needed to quickly build a database of concerned voters, supporters, and volunteers, giving them an ability to collect input and feedback, organize volunteers, and mobilize its voter constituency with actions such as petition drives and voter education campaigns.
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 its functionality to the needs of your organization, club, sports team, or any other large group of people.
The plugin can be easily adapted to work as a database for other applications such as indexes, directories, catalogs, or anything, really. The plugin uses a system of customizable templates for all its displays, and an API for the customization and extension of its capabilities. The plugin is fully internationalized with a growing set of translations.
GDPR Compliance Information for users of Participants Database
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
- plugin enhancements and add-ons are available from a growing list of free and premium downloads on xnau.com
- 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 determine which records are shown and in what order
- shortcode for showing a search form that takes the user to the search results page
- 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, rich text, 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
- forms can be organized into groups of fields, making long forms easier to navigate and fill out
- comes with a comprehensive API for deep customization of the plugin functionality
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 (with a rich-text editor), 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 produced by a template, making it easy to add extra functionality and match the presentation of the form to your theme.
Frontend Record Edit 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 Record Editing
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 [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. Each record listing can be linked to the full record showing all the details of the record.
Record Display
Each individual record can be displayed using 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 Libre Office or Google Docs. A blank spreadsheet can be exported from the plugin to get people started in entering records offline.
Internationalization and Translations
This plugin is fully compliant with WordPress Internationalization standards and includes several translations, some of which are incomplete at the moment. All of the front-end text is user-customizable, so even if a translation isn’t available for your language, your users will be able to use the plugin in their language.
Translation Credits
-
Belarusian: Natasha Dyatko UStarCash
-
Danish: LarsHdg
-
Dutch: At Voogt www.wederzijdsgenoegen.nl
-
Estonian: Laura Vunk
-
Farsi: Mohsen Azarteymoor CodHa
-
Finnish: Visa Jokela
-
French: Pierre Fischer
-
German: Martin Sauter
-
Greek: Toni Bishop Jrop
-
Hebrew: Gila Baam
-
Indonesian: Jordan Silaen ChameleonJohn.com
-
Italian: Michele Balderi
-
Norwegian: Anders Kleppe
-
Polish: Łukasz Markusik
-
Brazilian Portuguese: Eric Sornoso Mealfan.com
-
Romanian: Cornelia Năescu
-
Russian: Konstantin Bashevoy Полиатлон России
-
Serbian: Cherry, NBG, www.trade.in.rs
-
Slovak: Branco Radenovich WebHostingGeeks.com
-
Spanish: Chema Bescos IBIDEM GROUP
-
Ukranian: Michael Yunat, getvoip.com
If you are multi-lingual and feel like contributing a translation, please contact me at: support@xnau.com.
Please note that several of these translations are out of date. If your language is in this list and you’d like to help me provide the latest translation, please contact me.
The latest POT file is always available here.
Key Image Credit
By Tukulti65 (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons
Plugin Support
Plugin manual and documentation is published on the developer’s website, xnau.com
Plugin technical support is available on the WordPress Plugin Plugin Support Forum, and on xnau.com in the comments section.
A growing list of plugin add-ons and functionality enhancements are also available on xnau.com.
Screenshots
Installation
- In the admin for your WordPress site, click on “add new” in the plug-ins menu.
- Search for “participants database” in the WP plugin repository and install
- Activate the plugin through the ‘Plugins’ menu in WordPress
- Place
[pdb_record]
in your blog posts and pages to show the signup form - Additonal features and instructions can be found on the help tab of the plugin’s settings page
or
- Download the zip file
- Click on “Add New” in the plugins menu
- At the top of the “Add Plugins” page find and click the “Upload Plugin” button
- Select the zip file on your computer and upload it
- The plugin will install itself. Click on “activate” to activate the plugin
Using the Plugin:
This is a complex plugin that can be configured in many ways. I am happy to answer support questions, but please read the documentation, there are also many articles and tutroials to help you get the most out of Participants Database. Here are some helpful links:
FAQ
-
How do I get the form to display? Where does the shortcode go?
-
Put the
[pdb_signup]
shortcode where you want your signup form to go. -
I can’t find the shortcode. Where is it?
-
A shortcode is a WordPress feature that lets you insert plugin content into your posts and pages. It is just a special bit of text that is replaced with the plugin content when the page or post is viewed. Just put this:
[pdb_signup]
into your page, and when you view the page, the signup form will be displayed. -
What happens when someone signs up?
-
Their record is added to the database with the information provided in the signup form. Also, two emails will be sent (if you want) one to the admin to notify them of the signup, and also to the user to tell them they’ve signed up and also give them a private link to their record edit page so they can update or add to their record.
-
What do you mean by a users record edit page?
-
This form appears on the page where you have placed the
[pdb_record]
shortcode. It is another form where the record can be edited on the frontend.An individual record can be edited on the frontend of your website by someone who has the private link to that record. The purpose here is to let people maintain their own records. It’s also possible to put things like survey questions in the form so you can get feedback from people. You have complete control over what fields appear on this form. Fields can be designated as showing up on the signup form, on the frontend user’s form, and on the backend admin form.
-
The email goes out to the person when they register, but the “edit link” is blank
-
This means your “Participant Record Page” is not configured. First, you need a page for the record edit form. On that page, place the [pdb_record] shortcode. Then, look under the “Record Form” tab in the plugin settings, make sure the page where you have the [pdb_record] shortcode is selected in the Participant Record Page setting.
-
How do I delete all the records but leave everything else in place?
-
The best way to do this is to perform a “truncate” on the table. You’ll need to get direct access to the database to do this, usually using phpMyAdmin, which is typically found in your hosting control panel. Open the database and find the main participants database table…usually called “wp_participants_database”. Perform a truncate on that table only. The truncate command is found by selecting the table, then under the “operations” tab in the lower right.
-
What if I just want them to sign up and fill out all their info at that point?
-
OK, just assign all the fields you want them to fill out to the signup form (this is done in the “manage fields” page). That form can be as big as you want. Then, remove the private link from the email they get when they sign up.
-
How do I change the text “Participant Info” seen at the top of the single record page?
-
This is a group title. Groups are defined on the Manage Database Fields page under the “Field Groups” tab. You will see that each group has a title and a description that you can use to organize and label the ouput of the plugin.
-
How do I let people upload an image or file?
-
Go to the “manage database fields” page and create a new field for your image. Give it a descriptive name like “avatar” or something. Click “add field” and when your new field appears, set the “field type” to “image upload” for images and “file-upload” for other types of file. Be sure to check “signup” if you want it to appear in the signup form. When the form is presented to the user, they will be allowed to upload an image.
There are several settings you should look at before you go live with your uploads fields. Under the “General Settings” tab, you’ll find:
* File Upload Location – this tells the plugin where to put the uploaded files
* File Upload Limit – this is the size limit in Kilobytes for your file uploads. Be careful not to put this too high, if you have lots of users, it could use a lot of space on your server!
* Allowed File Types – this is a comma-separated list of allowed file extensions. You can also define this on a per-field basis.
* Allow File Delete – if this is checked, the file will be removed from the server when a user deletes it.Each file upload field can have its allowed files determined in the “values” field on the Manage Database Fields page. For instance, if you want them to upload only a pdf file, put “pdf” in the values field for that field. The maximum size is determined globally in the settings only.
-
When someone signs up, are they now users on my WordPress site?
-
No, these signups and records are separate from people who can register on your site as users. If there are things only registered users can do (such as a forum or comments), they will have to register or sign in as usual.
The idea is to use the database as a roster of volunteers, supporters, etc. for the organization, not the website.
If you are interested in having this plugin work with WordPress users, read this article: Using Participants Database with WordPress Users.
-
People are signing up, but emails are not getting sent
-
Use my Email Troubleshooting Flowchart to help you diagnose the problem.
Of course make sure your settings are set to send emails.
The most common reason emails are not being sent is because the WP application cannot send email. If you are having this problem, I suggest you install an SMTP plugin (like WP-Mail-SMTP) and use that plugin to test your email sending. Sometimes it is necessary to set up and use SMTP (which is not the default on most systems) to successfully send email.
Another common source of email trouble is other plugins that send email. It is not uncommon for such plugins to “hijack” the WP mail function and this can break it for other plugins. Try turning off other plugins that send email to see who the troublemaker is.
Finally, your emails may be getting caught in spam filters. If you find the plugin’s emails in the spam folder, using a “from” email from the same domain as the site can help. If you are using HTML email (the default) keep it short and don’t include lots of links, images or spammy words.
-
I don’t see anything on the page where I put the `[pdb_record]` shortcode. What’s up?
-
The form will only appear if someone uses a valid private link to access the page. All that’s required for a private link is a valid “pid” value has to be included in the URI. (it looks like “pid=TH65J” in the link) This code can be seen in the record if you want to make your own links.
-
I don’t want Administrative Fields showing up on the user’s edit record page. How do I control that?
-
You can control which groups of fields show up in the frontend record edit screen (the one with the
[pdb_record]
shortcode) by going to the “manage database fields” page, clicking on the “field groups” tab and deselecting the “display” checkbox for those field groups you don’t want shown on the frontend. -
I want people to provide their email when they sign up, but I don’t want that information showing to the public
-
It’s a good practice to use field groups for something like this. Place all your “don’t show to the public” fields in a group with its “display” checkbox unchecked. This will prevent those fields from being shown in record detail pages, and also the signup form, but you can force them to display by specifying in the shortcode which groups you want included. The normally hidden groups will be included, but only those fields marked with the “signup” checkbox will appear.
For example, let’s say you have two groups: ‘public’ and ‘private.’ The email field is in the private group because you don’t want it displayed. In the signup form shortcode, specify the groups to show like this:
[pdb_signup groups=public,private]
Now, both groups will be included in the signup form. Remember, only those fields marked as “signup” fields will be shown. -
I don’t want group titles showing in the forms, how do I do that?
-
The easiest way to do this is to simply blank out the title for the group.
-
What if someone loses their private link?
-
You can show a “Resend Private Link” link on your signup form, just check “Enable Lost Private Link” under the “Retrieve Link Settings” tab. You must define which field is used to identify the record. This must be a unique identifier, usually an email address, but it could be anything. The rest of the settings for this feature are under that tab.
It’s also possible to send them the link again in an email, but the plugin does not currently provide a way to do this. You will have to sent them a link to the edit record page (the one with the
[pdb_record]
shortcode), adding their code at the end of the link like this: ?pid=RH45L (using whatever the code for their record is.) The code is visible when you view the record from the “list participants” page. -
Is it possible for users to upload files?
-
File uploads use the “file upload” field type. You should define a set of allowed file extensions in the settings: “allowed file types” under the “general settings” tab.
-
My site is not in English and searches using non-English characters are not working properly.
-
If you have a non-English site, you should convert your database to the correct “collation” for your language.
-
I’m seeing strange characters in my CSV export. What’s going on?
-
The plugin exports its CSV files in “UTF-8” format. Make sure the program you’re using to read the file knows this…it should detect it automatically, but can fail under some circumstances. Often this can be set on the import screen of the spreadsheet program when you open the CSV.
-
Is the private link to an individual record secure?
-
It is what I would call “reasonably secure” in other words, the private code in the link is not easily guessed. It can be sent in an email, which is not secure, but emails getting compromised is not that much a risk for most of us. The level of security is reasonable for the kind of information it is designed to store.
Therefore, this plugin is absolutely not for the storage of any kind of information requiring good security such as credit card numbers, passwords, social security numbers, etc. And I certainly couldn’t be held liable if someone were to irresponsibly use the plugin for such a purpose.
-
Can I make links in records clickable?
-
Yes, there is a plugin setting called “Make Links Clickable” that scans the fields looking for something that starts with “http” it will then wrap that in a link tag so it will be clickable. It will also render email addresses clickable.
There is also a form field type called “link” that lets people fill in a URL and also give it a text label such as “My Website” that will click to the URL.
-
Is a CAPTCHA available for the forms?
-
You can define a “captcha” form element which will show a simple math question for the user to answer.
Reviews
Contributors & Developers
“Participants Database” is open source software. The following people have contributed to this plugin.
Contributors“Participants Database” has been translated into 4 locales. Thank you to the translators for their contributions.
Translate “Participants Database” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
2.5.7
- new setting to suppress uploads directory warning if not needed
- fixed occasional save bug in admin edit_participant
- fixed record link in images in the admin list
- “target” attribute now allowed on dynamic fields that are links
- date_recorded value now available to dynamic fields in signup submissions
- dynamic fields no longer ignore “null” values from the database
- added the ability for custom code to update dynamic fields on a cron
- field name editing disabled since it is impossible anyway
2.5.6
- new settings for the list search UI strings
- scroll to thanks message after successful signup
- fixed pagination issue with multiple list shortcodes on the same page
- fixed issue with sticky uploads directory error notice
- search results by URL now includes instance index and page number targeting
- updated the Finnish translation
- fixed the “accessed with private link” actions
- fixed access vulnerability in admin manage fields page
2.5.5
- fixed issue with CSV import fatal error
- error on uninstall fixed
- compatibility with php 8.2
2.5.4
- several bug fixes
- fixed issue with importing date_update values
- now possible to run shortcodes (using a shortcode field) in a list display
2.5.3
- fixed issue with signup shortcode value assignments
- internal timestamp values can now be imported with CSV
- fixed issue with media embeds on the record edit page
2.5.2
- improved efficiency of the main cache
- fixed bug in click-to-sort headers in the list display
- background process won’t get stuck in a loop if there is an error in the task
2.5.1
- fixed the “complete_only” directive on string combine fields
- filtering by record timestamp values improved, a simple date match works now
- fixed undefined index warning message
- admin list can now filter on empty/non-empty link fields
- duplicate record checks on link fields now possible
- fixed db issue with timestamp sorting on some systems
2.5
- new find duplicates operator on the admin List Participants page
- click-to-sort headers for the list shortcode
- fixed security issue with the admin “with selected” operation
- frontend list can now be sorted with URL variables
- added new external REST API
- sort now places blank values at the end of the list
- fixed javascript issue with non-latin fieldnames
- fixed major bug related to changing the title of internal fields
- fixed frontend CSV export issue with timestamp in shortcode filter
2.4.9
- fixed fatal error when updater plugin is deactivated
2.4.8
- php 8.1 compatibility
- enhanced format tag functionality
- improved use of WP Cache API
2.4.7
- field order maintained when moving field to another group
- fixed issue with field groups not deletable on non-English sites
- issue with high ascii (accented and other non-English) characters in search terms
- new setting to allow javascript event attributes in fields
2.4.6
- fixed CSRF vulnerability on the Manage List Columns page
- fixed issue with accented characters in group names breaking field group tabs
- several minor bug fixes
2.4.5
- fixed fatal error with record updates on the backend
2.4.4
- avoid validating fields that are not part of the submission
- fixed issue with the use of custom roles for plugin admins
- fixed PDb_Template class error on empty record
- fixed error on plugin delete
2.4.3
- signup forms that don’t validate remember previously submitted values
- improved UI on otherselect fields
- some HTML tags allowed in field attributes
2.4.2
- otherselect inputs no longer getting focus on page load
- media embed and shortcode fields now working
- HTML5 date fields now included in date calc field calculations
- newly-uploaded image now seen after upload
2.4.1
- fixed issue with list search error HTML showing
- fixed javascript email protection
2.4
- fixed issue with captcha field escaping validation
- fixed issues with search using unicode characters
- fixed display issues with image uploads
- hardening against XSS
2.3.4
- fixed filter that was removing unicode characters
2.3.3
- fixed issue with captcha field not validated in some cases
- list search terms now have extra spaces trimmed
- php 8.1 compatibility
2.3.2
- bug fix: fatal error on activation
2.3.1
- security updates: escaping outputs
- removed unused PDb_Update class
2.3
- fixed visible HTML tags in some displayed admin text
- removed included plugin updater library
2.2
- added compatibility with the xnau Plugin Updater plugin
- fixed issue with admin custom CSS not loaded
- custom print CSS implemented
- security updates: escaping outputs
- removed wp-load.php include
2.1.11
- added new “strip_tags” attribute for string combine fields
- admin last used tab remembered
- fixed issue with link field validation
- fixed issue with blank “allowed” attribute in upload field
- improved form validation error highlighting
2.1.10
- several db call optimizations
- fixed bug affecting certain date calculation field setups
2.1.9
- improved user feedback on uploads directory issues
- ampersands and other special characters now allowed in admin list search
2.1.8
- Custom Template Folder plugin no longer needed: this is now incorporated into the main plugin
- fixed issue with importing multiselect values
- fixed invalid HTML on list pagination control
- “with selected” field delete now shows correct field name in the confirmation dialog
2.1.7
- fixed issue with math captcha not validating
- fixed admin list searches that include an undescore character
2.1.6
- an empty value in a date field will overwrite an existing value
- prevent fatal error with out of sync message queue
- webp files now allowed in the native plugin
- min php version updated to 7.4
2.1.5
- fixed issue with password field preventing record update
- fixed issue with empty file uploads triggering size error
2.1.4
- password field regex validation fixed
- image and file upload delete options improved
- selected file name is now shown when uploading an image or file to a field that already has an uploaded file
2.1.3
- date field can now be used for the duplicate record check
- class attribute now used in the single record templates
2.1.2
- added cache buster option for signup submissions
- list shortcode don’t show pagination option
2.1.1
- fixed fatal error in dynamic_db_field class
2.1
- now export selected records on admin List Participants page
- new setting: CSV imports in the background (by default) or immediately
- calculated fields supported in Participant Log add-on
2.0.10
- added an unsaved changes warning to the add/edit participant page
- fixed issue with payment log field losing its configuration on update
- fixed issue with string combine templates getting an “unformatted” tag
- several minor bug and compatibility issues fixed
2.0.9
- better logging of CSV imports
- fixed several minor bugs and messaging errors
2.0.8
- added new “currency” format tag
- fixed issues with record timestamp using the wrong timezone
- better handling of errors when updating the database structure
- private ids on CSV import now handled correctly
2.0.7
- fixed fatal error with php 8.1 when defining field with options
- heading field now has auto paragraphs applied
2.0.6
- now possible to use another calculated field in a calculation template
- fixed issue with spaces in list search term
- fixed record id matching mode in signup form
2.0.5
- improved localization of numeric values
- avoid divide by zero error
- dropdown/other respects default setting if no value set
2.0.4
- new calculated field values are shown in the edited record
- Duplicate field titles now work in the mass edit field selector
2.0.3
- fixed setup issue with the PDb_Template class, affecting Field Group Tabs
2.0.2
- fixed display issues with some multibyte characters
- php 8 compatibility
2.0.1
- fixed issue with image uploads in the signup form
- timestamps may now be set to use local timezone instead of UTC
- new setting to allow editor users to access administrative fields
- several minor bug fixes
2.0
New Features:
* “Mass Edit” on the admin list participants page
* new field types: Numeric Calculation and Date Calculation
* CSV imports in the background, avoids timeouts on very large imports
* option to delete the associated uploaded files when record deleted
* CSV import with “null” value in a field clears the field’s db value
* uploaded files deleted on CSV import when upload field value cleared
* recently used fields convenience list in the admin list filter selector
* new Last Updater ID field records the id of the last user to update a record
* hidden field value can be determined by literal string in the shortcode
* numeric value displays now localized
* new setting to use the private ID to display single records
* compatibility with block-based WP themes
Also:
* many minor bug fixes and code optimizations
1.9.7.8
- fixed bug when using search parameters in the URL on a selector field
1.9.7.7
- string combine field now works in the signup form
1.9.7.6
- avoid fatal error with empty search on multiple fields in admin list
- fixed issue where plugin options are cleared under specific circumstances
- improvements to the admin list search with multi-field searches
1.9.7.5
- string combine fields can now be used to build a link
- fixed approval checkbox not responding to change in admin record edit
- fixed several bugs in the string combine and placeholder fields
1.9.7.4
- fixed list result pagination issue with URL filter
- field validation methods now save correctly
1.9.7.3
- fixed empty group classname in single record template
- added hide-empty-group template variation
- better handling of file uploads that exceed system size limits
- main CSS file now minimized for faster loading
- improvements to the participant record cache
1.9.7.2
- string combine field now supports linked content
- search for blank dates now works as expected
- target attribute can now be added to linked fields
- media embed field now shown as clickable link if not embedding
1.9.7.1
- fix display issues with the String Combine field
- better handling of broken media links in the Media embed field
- fixed fatal errors on plugin delete
1.9.7
- UI improvements: Manage Database Fields page, List Participants page
- New field types: Heading, String Combine, Media Embed, Shortcode
- Relative Date field defaults like “current_date”
- Code optimizations
- Bug fixes
1.9.6.9
- added Greek translation files
1.9.6.8
- fixed issue with settings loss on session failure
1.9.6.7
- fixed bug with quotes around filter string in list shortcode
- attempt to avoid conflicts with other plugins initializing sessions
1.9.6.6
- fixed issue with CSV export page when matching field has been deleted
- fixed issue with session incompatibilities with some other plugins
1.9.6.5
- fixed issue with the use of the search_fields attribute in the list shortcode
- fixed issue with forms submission error CSS not highlighting input elements
- updated the parseCSV library
1.9.6.4
- fixed issue with critical error with legacy timezone setting
- compatibility fixes for php 7.4
- minor bug fixes
1.9.6.2
- fixed sessions and timezone set critical issues seen on WP Site Health status page
- added missing translation string in the retrieve private ID form
- improvements to handling of timezones in date calculations
1.9.6.1
- fixed issue with remote search with AJAX enabled
1.9.6
- translation filter applied to all translatable plugin settings
- full compatibility with php 7.4
- 37 minor bugs fixed
1.9.5.16
- fixed HTML issue with mutliselect checkbox/other element
1.9.5.15
- fixed bug in use of “term” in single record shortcode
- fixed issue with dynamic hidden field not getting value
1.9.5.14
- user locale can now be captured in a hidden field
- fix for use of custom user roles
- fix for issue with multiple shortcodes generating duplicate ids
- on CSV export, multilingual strings filtered for current locale
1.9.5.13
- address screen reader accessibility on checkbox/radio inputs
- null select title now filtered for translation
- decimal field display decimal places now set by “step” attribute
- compatibility with mySQL 8.0
1.9.5.12
- fixed issue with remote searches not working in some browsers
- fixed issue with searches on multiselect fields not returning expected results
1.9.5.11
- fixed remote searches not showing results
- restored the CSS on the Manage List Columns page
- fixed issue with field group delete confirmations
1.9.5.10
- fixed missing cookie script in plugin admin
- more multilingual support
- several minor bugs fixed
1.9.5.9
- new German and French translations
- compatibility fixes for multilingual plugins
1.9.5.8
- restored missing help text in admin record edit
- fixed random list ordering
1.9.5.7
- new French translations
- admin list searches for blank values working
- fixed translation filtering for several display strings
- better support for multilingual strings
1.9.5.6
- patched an sql injection vulnerability in the admin list page
- long filenames can be contracted for display in file and image upload fields
- better checking for allowed filename extension in upload fields
- fixed several instances of display strings not available to multilingual plugins
- new default value selector for field types with options in the field editor
1.9.5.5
- fixed issues with CSV export of date and link fields
- fixed display issue with bare-value single template
- removed the manage database fields redesign notice
1.9.5.4
- better caching for templated content
- plugin debug synced with WP_DEBUG
- fixed several minor bugs
1.9.5.3
- fixed issue with missing multi-select field values
- fixed warning on wp-includes/class-wp-block-parser.php
- fixed HTML tags getting into email subjects
1.9.5.2
- fixed caching issue with template value tags
1.9.5.1
- fixed issue with dropdown fields not showing the value title
- empty date no longer shows current date when using the datepicker
- fixed several minor warnings
1.9.5
- new template classes for suppressing titles, blank fields
- new flex-based single record template
- new settings for image display sizes in list, single and record displays
- date fields may now define their own display format
- new value tags that can show title or bare value
- passwords now encrypted on import
- multiple minor bug fixes and UI improvements
1.9.4.4
- template tags can now show plain text values and titles
- fixed issue with template tags not showing most recent field value
- fixed error in admin with editor users on list page
1.9.4.3
- fixed bug on multiselect field displays when using tag templates
1.9.4.2
- improved access to custom record matching
- fixed issue with editors on admin list searches
- several minor bug fixes
1.9.4.1
- fixed issue with shortcodes in rich text fields
- fixed view permissions issue on new installs
1.9.4
- admin record and settings submit buttons now mirrored at the top of the page for easier access
- editors can now access “with selected” function in the admin list
- javascript minified for faster asset loading
- preference to delete uploaded files with record delete
- many optimizations and minor bug fixes
1.9.3.15
- fixed error when deleted fields are an admin user search preference
- fixed loading spinner preload time
1.9.3.14
- fixed issue with CSV import skipping records that don’t validate
- simple HTML now allowed in option titles, also field default values
1.9.3.13
- fixed issue with importing a CSV with both skipped and added records
1.9.3.12
- fixed issue with numeric field value formatting when using PDb_Template class
- fixed duplicate element id issue with file upload fields
1.9.3.11
- fixed bug when using null_select options
- radio button null_select option can now be used as a “none” selector
1.9.3.10
- tags now allowed in option value titles
- new “default_search_field” shortcode attribute for lists
- fixed Participants_Db::get_id_list method
1.9.3.9
- numeric displays are now localized
- fixed issue with PDb_Template class not showing link fields correctly
1.9.3.8
- decimal fields no longer show trailing zeroes
- pattern attribute in field now fully supported
- bare (valueless) field attributes now supported
- multiple minor bug fixes
1.9.3.7
- fixed CSV imports/exports of newlines in field value
- fixed issue with pagination overclicks
1.9.3.6
- additional tags allowed in field definitions
- fixed issue with “null_select” options in some field options settings
- line breaks now display as new lines in text area field content
1.9.3.5
- added new SVG “loading” spinner
- fixed several bugs in dropdown field options settings
- fixed issue with duplicate IDs for rich text editors
- fixed error message on duplicate record when importing a CSV
1.9.3.4
- fixed minor technical issue when updating or adding records
1.9.3.3
- fixed issue with group updates going to login screen
- addressed warnings when no groups are configured to display
1.9.3.2
- added better fix for disappearing internal fields bug
- fixed missing fields with bootstrap signup template
- fixed blank title issue on manage list columns page
- several minor bug fixes
1.9.3.1
- fixed issue with disappearing internal fields when updating values on Manage Database Fields page
- fixed text values of 0 not shown in admin record editor
- fixed warnings on date_updated and date_recorded fields when importing CSV
1.9.3
- fixed issue with display field order when using the fields attribute in the shortcode
- access to edit readonly fields is now given to editor users
- fixed issue with field options when using the PDb_Template class in a custom template
1.9.2
- fixed admin list pagination in alternate session mode
- fixed missing link recovery error message
- several minor bug fixes
1.9.1
- fixed manage database fields order issue
- fixed issue with chosen dropdown options not showing
1.9.0
- redesigned Manage Database Fields page
- new visibility modes for field groups
- new Lost Private Link Success Message setting
- new validation message setting for validated fields
1.8.4.9
- fixed fatal error on first install in multisite
1.8.4.8
- fixed debug log white screen issue
- signup form skips empty field groups
- admin notices now dismissed for each user
- removed spurious text from responsive list template
1.8.4.7
- fixed issue with images lacking a link in emails
- optgroup titles now passed through translation filter
- several minor bug fixes
1.8.4.6
- fixed caching issue with shortcode fields and groups attributes
- minor tweak for php 7.3 compatibility
1.8.4.5
- addressing settings page access issues for some users
1.8.4.4
- fixed issue with settings page blank
1.8.4.3
- fixed bug with custom templates not found in default location
1.8.4.2
- settings page timing issues fixed #1942
- handle early session starts without warnings #1943
1.8.4.1
- fixed warning when setting up the plugin first time
1.8.4
- WordPress 5.0 compatibility
- added php timezone sync preference
- updated the list responsive template for better element classnames
- optimized some database transactions
1.8.3.2
- fixes blank Manage Database Fields screen bug
- post logins now working
1.8.3.1
- bugfix: field attributes missing in backend record edit
1.8.5
- redesigned Manage Database Fields page
- important changes to how fields are defined
1.8.3
- bugfix for single record display no record
1.8.2
- added optional cookieless session method
1.8.1
- force required php 5.4 or better
1.8
- improved session management
- further optimize background processes
- improvements to the API
- fixed issues with plugin uninstall
- requires php 5.4 or better
1.7.9.12
- fixed issue with link field when using the PDb_Template class
1.7.9.11
- fixed issue with placeholder fields not showing correctly in some templates
1.7.9.10
- fixed: images not displaying when using the PDb_Template class
- added the pdb-prepend_to_list_container_content action to list templates
1.7.9.9
- sent emails now logged in the debugging log
- various efficiency improvements
- fixed incompatibility with WP Session plugin
- ? wildcard in admin list searches
1.7.9.8
- PDb_Field_Item::is_single_record_link method reinstated
- admin list on small screens is now much more usable
- radio buttons now default to defined default value on record edit page
- default values now correctly inherited to new records, frontend record edits
1.7.9.7
- fixed bug with multi-select-other field values
- prevent fatal error if duplicate field names are present in the shortcode
1.7.9.6
- added Manage List Columns admin page
- display bug with empty hidden fields in admin record edit
- link field link text character replace bug
1.7.9.5
- fixed display issue with link fields
1.7.9.4
- fixed display of values in email templates
- link fields now show unlinked text value if no URL
- increased efficiency when using email templates
1.7.9.3
- removed debugging setup in version check
- fixed link property error in field class
1.7.9.2
- php version warning only appears once
- fixed empty function fatal error
- several minor bug fixes
1.7.9.1
- fixed method return value bug
- fixed issue with using the template class in custom templates
1.7.9
- version warning for php < 5.6
- refactored field definition and dynamic objects
- improved efficiency for database interactions
- fixed mass-approval bug with user field values
- multiselect data now exported as comma-separated list
- fixed issue with “stuck” admin messages
- added Finnish translation
1.7.8.11
- minor improvements to several API filters
- size of the debugging log is now limited
- minor bugs fixed
1.7.8.10
- new and updated records by admin are validated if “Admin Record Edits are Validated” is enabled #1761
- search using empty term doesn’t show error is allow by settings #1756
- placeholder values can now include limited HTML #1755
1.7.8.9
- duplicate values prevented when updating records #1753 #1758
1.7.8.7
- fixed bug when attempting to update a record with matching field errors enabled #1752
1.7.8.6
- setting to enable form validation for admin users in the backend #1747
- duplicate field values prevented in frontend record edit #1746
- plugin debug mode and log #1737
- “current_year” date filter value fixed #1750
- updated translation template
1.7.8.5
- address formatting conflict issue with javascript confirmation pop-ups in the admin #1736
- added new n_days and n_months “dynamic date keys” for use in the list filter #1744
1.7.8.4
- fixed list query parenthesization bug when parenthesizing “and” statements #1734
- added “searchable form element” filter #1733
- check for mbstring module #1724
1.7.8.3
- fixed display bug on url-only link field #1729 #1732
1.7.8.2
- fixed persistent fields on CSV import #1718
1.7.8.1
- added new API methods for getting a list of records from the database #1716
- customized datatype parameters won’t be reverted when the field definition is saved #1717
1.7.8
- added new responsive list template “flexbox” #1702
- link fields can now target new tag or page #1712
- password field shows dummy password if password is set #1675
- cleaned up rendering of custom HTML attributes in form elements #1705 #1712
- fixed send limit bug when applying actions to a large number of records in the admin #1707
- several minor bugs fixed; compatibility with php 7 #1482
1.7.7.7
- fixed bug in password field display
1.7.7.6
- blank numeric fields now save as null
- underscores in filter/search values now match underscores in db #1688
- fixed session_cache_limiter warning in php 7.2
1.7.7.5
- internal timestamps are not editable unless allowed in plugin settings #1681
- password fields now show dummy data if a password is set #1675
- fixed issue with internal timestamps not correctly parsed #1680
- added new “submission not validated” actions #1679
1.7.7.4
- fixed security issue with upload CSV files #1665
- php7 compatibility fixes #1669
- fixed bug causing blank timestamp in updated record when using php7 #1672
- minor error fixes in French translation
1.7.7.3
- fixed bug when using read-only field in the signup form #1659
1.7.7.2
- added preference to allow some HTML tags in text-line form elements #1661
- fixed bug when using read-only field in the signup form #1659
- dropdown elements may now use a value of 0 #1658
1.7.7.1
- fixed bug saving spurious value on dropdown null select #1656
- functionality updates to the Admin Notices class
1.7.7
- added “current_date” feature to the list shortcode filter
- fixed issue with dropdowns defaulting to the first item
- added filter to allow override or alternate text field sanitizing
1.7.6.6
- blank fields don’t overwrite record value on CSV import #1647
- apostrophes and quotes no longer escaped in field definitions #1644
1.7.6.5
- fixed column order bug when including the “id” column in the list display #1645
- fixed bug in field definition when using numeric value titles #1646
1.7.6.4
- fixed fatal error on upload with invalid file extension #1638
1.7.6.3
- fixed PHP 5.3 compatibility issue
1.7.6.2
- fixed multicheckbox CSV exports as comma-separated list #1631
- better user feedback for file uploads #1629 #1630
1.7.6.1
- HTML allowed in field titles and help text #1607
- fixed issue with “strict user searches” not working with some templates #1620
- fixed issue with WP 1.8.3 not finding wpdb::remove_placeholder_escape method #1623
1.7.6
- compatibility with WP 4.8.3 #1618
- added cache control to allow browser caching #1610
- PHP Sessions optimizations #1611
- improved multisite adding/deleting blogs #1615
1.7.5.16
- CONTENT_URL preference performance improvements
- empty group and empty group field classnames
1.7.5.14
- fixed error in image class default image method
1.7.5.13
- text-area and rich-text field now set TEXT datatype in db #1605
- remote search from now shows error messages #1602
- better feedback on new field creation #1600
- fixed first column CSV imports failing with BOM #1601
- added WP_CONTENT_URL preference for file/image uploads path #1604
1.7.5.12
- added filter for each column on form submission #1381
- field object now includes record ID in single record context #1596
- admin list search bug for empty date fields fixed #1595
1.7.5.11
- single record link field value is now filterable #1592
- update Dutch and Brazilian Portuguese translations
- fixed the private id length filter #1582
1.7.5.10
- fixed several XSS vulnerabilities
1.7.5.9
- multiple lists on a page work more reliably #1576
- addressed issue with blank lists after search #1575
- password fields won’t require password entry if a password has already been set #1572
- addressed issue of case-mismatched value titles not finding a value #1569
- addressed PHP 7.0 incompatibility #1573
1.7.5.8
- fixed warning on shortcode class #1564
- fixed issue with aux plugin updates not coming in #1566
1.7.5.7
- bug fixes for the admin edit participant page
1.7.5.6
- better handling of allowed field types in file/image uploads
- aux plugin update checks optimized
1.7.5.5
- new record imported vis CSV now have private IDs #1554
- CSV are no longer validated by mime type #1553
- fixed ‘Cannot unset string offsets’ issue #1555
1.7.5.4
- added security check to CSV import #1549
- fixed issue with single-quote enclosures in CSV imports #1551
1.7.5.3
- fixed file upload field display #1546
- field extension now correctly validated for file and image uploads #1547
- updated Danish translation
1.7.5.2
- updated Danish translation
- fixed missing captcha bug #1544
1.7.5.1
- fixed bug when filtering for blank values in the backend list
- fixed issue with the recaptcha not appearing in some cases
- no response from plugin updater is handled gracefully now
1.7.5
- added multisite support
- new “decimal” and “currency” form elements
- before and after characters on numeric fields for units or denominations
- provides fallback methods when using AJAX searches and session not available
- improved “thanks” shortcodes for signup and record forms
- shortcodes and auto paragraphs option for rich text
- site-specific file-upload locations in multisite
…