Product Support

Email Expansion Kit

Provides several new ways to send emails with Participants Database, including email on approval, resend signup email, and custom email to selected records in the list.

Product Setup

Creating an Email Template

After installing and activating the plugin, the first thing to do to configure this add-on is to define your custom email. In the admin menu, under “PDb Email Templates” select “new template” and you’ll be shown a screen where all the components of your email template are defined.

Each template has a name that is used to identify the template and its purpose. Below that, you have fields for defining the sender name and email, and also the recipient name and email. All of these fields can be filled using a value tag so that, for instance, the email goes to the name and address defined in the record.

An email must have a subject, you can use value tags there as well if you want to personalize the subject line.

The body of the email may contain HTML, styled text, links, images, etc. and use value tags as well.

Below the email body, you can set up email attachments. Simply select the file you want to attach, and it will be sent with the email when it goes out. To add another attachment, click on “add attachment” and choose another file to include.

Value Tags

In the email template and subject settings, you can use value tags to show a value from the record that is associated with the template. These tags take the form of [fieldname] and you can include any defined field in the record that way.

There are also additional value tags that can be used:

  • [record_link] provides a link to the user’s editable record
  • [admin_record_link] provides a link to the record in the admin
  • [single_record_link] provides a link to the record (not editable) display page
  • [date] shows the current date using the site’s date format setting
  • [time] provides the current time using the site’s time format setting
  • [change_log] shows a table with all the before/after changed values
Configuring the email send action

Configuring the Send Trigger

Each email template is configured to be sent under certain conditions. Usually, this is when a specific event occurs, such as a record update, or a record gets approved.

Under the “Send Action” title is a dropdown selector where you can choose the event or action that will trigger sending this template email.

Sending Manually

To send an email to selected records on the list manually (such as a newsletter or announcement) select Admin List “With Selected” Action for your action. The sending occurs on the Participants Database admin list participants page: select the records you want to get the email, then select your email template in the “with selected” action dropdown. Hit “apply” and confirm to send the email to all selected records.

Setting Up Conditional Sending

The Send on Condition Panel

When an email template is triggered, you can check the values in the current record (an email send event is always associated with a record) to see if the template should be used. There are three basic ways the conditional send can be used:

Compare the value of a field in the current record against a fixed value

  • this is best for determining what kind of record it is so you can use different templates for different kinds of records

Compare a value in the current record against the previously saved value

  • this is for triggering an email if a specific value in the record has been changed

Compare the currently selected locale against a list of locales

  • this is so you can define different templates for different languages

Comparing Against a Fixed Value

If you need to send a particular email based on the value of a field in the record, this will allow you to do that. For instance, you could have two different “welcome” emails for your members, one for each of two types of membership. The incoming value is compared to the comparison value and if the operation resolves as “true” the email is sent.

The comparison value can be any value you need to compare. It can also be a comma-separated list of values. If any of those values resolves as “true” the email template will be used.

Send on Field Value Change Only

If the condition is set to trigger when a specific value is selected, this preference will only trigger the email the first time the value is selected.

Comparing Against a Saved Value

This is used when you want to send out an email when a particular value in the record has been changed. For instance, if a member changes their email address, an administrator gets notified.

Comparing Against the Current Locale Setting

If you have a multilingual site, you can set up a different email template for different locales. There are two ways to do this, depending on how the multilingual aspect of your site works.

You will need to have an email template for each language you want to support.

If the site provides a way to let the user select their preferred language, the selected language will be the “current locale” value. You can use that value to select the email template to use. In this mode, the comparison value should be one or more language codes (separeted by a comma if there are more than one) that the template should be used for. It is important that the language code in the comparison value exactly match the code the website is using. A list of the codes WordPress uses can be found here.

It is also possible to use a value in the record to determine the email template. If the user can select a preferred language in their record, you can use that value to determine which template to use. You do this using the “Field Value to Fixed Value” setting, and the comparison value works the same as it would using the current locale value.

User Feedback Messaging

For the “signup submission” and some other actions, the user is presented with a feedback message on the screen, and this can be customized on a per-template basis as well. Just put your message in the “user messaging” field and it will be presented to the user. Each template has it’s own user messaging field, so each type of signup (for instance) can have different messaging.

Email Session Send Limit

This plugin is not intended to be used as a mass-emailer: it has a built-in limit to the number of emails that can be sent in a single session. This means that if you try to send an email to more than 100 (the default limit value) recipients, only the first 100 will be sent. The main reason for this is the plugin does not have the capability for extended operation that would be needed to send to a larger list of recipients. Technically, the script sends all the emails in one operation and most servers will have a limit to how long a single operation can run, typically 30 seconds.

The easiestĀ way around this limitation is toĀ send your emails in batches of 100. If that is not practical, I’d suggest youĀ use either a newsletter plugin orĀ a 3rd party mass-email service.

Another consideration is the plugin does not provide a mechanism for an “opt-out”Ā or unsubscribe which is required by law on mass email in some areas. If you are using shared hosting, in most cases sending mass emailĀ is not allowed, and there will be a low limit to the number of emails sent in a hour. While it is possible to override the plugin email session send limit value, this is not a supported use of the plugin.

An Example of Using a Comparison Against a Fixed Value

To illustrate this, let’s suppose you have a registration form for two different kinds of registrations: one for students and one for teachers. To set this up, create a new template, (it will be for the students) and set the “Send Action” to Signup Submission. Enable the “Send On Condition” checkbox and below that, you’ll see new fields.

First is “Participants Database Field” set that to the name of your “type” selector in your signup form, so that the template knows which field to check.

Next, select an Operator: in this case you wantĀ “Equals” because you’re testing against an exact match, as you’ll see.

Now, set up the comparison value. To check the submitted value against a specific string, choose “Comparison Value” and then below that, type in the value that the template will look for. If the applicant is a student, the comparison value might be “student.” If the incoming registration submission has a “type” value that equals “student” then use this template and send the email.

Next, you set up another email template for the teachers. It will be checking the same field, but for the value “teacher.”

Sending an Email When a New Blog Post is Published

If you’d like your list to receive an email when you post something new, use the “Blog Post Published” email action in your template.

You can use several tags in the email to include content from your blog post: [post_title], [post_content], [post_excerpt], etc. The [post_content] tag will include the whole article, including any images. (embedded media such as audio or video won’t work, however) To provide a link back to the post, use the [post_permalink] tag to generate the link. The post featured image can be included with [post_thumbnail].

Set up your “Send on Condition” to only send to those who have elected to receive your mailings. For example, if you have a checkbox for people to opt-in to your list use that as your condition for sending the email…such as in the example to the right here.

This is not a “mass-email” feature, you will be limited to 100 emails generated by this action. See above for the reasons why these limits are in place.

The “Blog Post Published” email action can also be used to send notifications to a plain list of emails also, of course.

Product Settings

The Email Expander Add-On does not useĀ a settings page, instead, each template has it’s own configuration.

Email Title

Gives the template a name. If you have several templates, it’s a good idea to use something descriptive here so you can find the template next time you need to edit it. You can change this any time, it won’t affect the template’s function.

Email Setup

Sender Name, Sender Email

The email should be from a legitimate sender so the recipient knows it is not spam. Value tags are allowed.

Recipient Name, Recipient Email

These will often contain value tags so that theĀ email is sent to the person registering. This could also be any fixed email address. The name is optional.

It is possible to send the email to multiple recipients. If you want to include a fixed email address as a CC or BCC (such as to an administrator), there are fields for that below. If you need to send to multiple email addresses using value tags from the record, you can enter those here as a comma-separated list of email addresses, for example: [email],[email_2]


The subject line of the email, can use value tags.

Email Body Template

The is the main part of the email, you can put HTML, headings, images, styles, etc., but be aware that many email clients have limited ability to render HTML Keep it simple for best results.


CC, BCC Recipients

Just under theĀ attachments are settings where you can add additional recipients to the email. BCC recipients won’t be visible to other recipients, while CC recipients’ emails will be visible to all recipients. This field does not process value tags, you can add more recipients using values tags in the Recipient Name and Recipient Email fields above.


This section allows you to include files with the email. Simply select a file (either from the media library or upload a file) and the user will receive the file when they get the email. You can include multiple files by adding more attachment lines. Remember that any attached files will have to be downloaded by the recipient, so keep it small to avoid problems on the receiving end.

User Messaging

Some actions use this field to show the user a message after the action has occurred, such as after submitting a signup form. This gives you a way to customize the user feedback message according to the email template that was used to send an email.

The Send Configuration

Each email template may have a “Send Action” that determines when the email will be sent. Some of these are automatic, some are manual: waiting for an action by an administrator to be sent.

Signup Submission: the email will be sent when a signup form is submitted. This action duplicates the default action of Participants Database, and so if this template gets used, it prevents the default email from being sent. This means that if you set up a template here that sends on certain conditions, the regular signup email will be sent unless those conditions are met.

Frontend Record Update, Backend Record Update: this action happens when a record is updated. The frontend update happens when a user edits the record after accessing it with their private link, or when the frontend record edit form is used in any other way.

Frontend Record Pre-Submit Update: this action happens just before the updated record is saved on the frontend. This gives you a chance to check for a changed value because you’ll have both the new and old values to check against.

Multipage Record Update Thanks: this email is triggered when a user completes a multi-page record edit form. It requires that the user end up on a page with the [pdb_signup_thanks] shortcode when the final page is submitted.

Admin List “With Selected” Action: this gives you a way to define a custom email that is sent manually to a selected list of recipients by an admin in the backend. If you set up a template with this action, it will appear in the bulk actions dropdown in the Participants Database admin list page so you can send your custom email to the selected members.

Note that this will only send to a limited number of recipients, 100 or less to avoid script timeouts, so it can’t be used to send out to your list of thousands. Also, be sure you know your web host’s mass email policy to avoid problems with your hosting.

Admin List With Selected: delete, approved, unapproved: this action is triggered when a bulk action is performed on the list. An email will be sent to every selected record when this action is triggered.

Send on Condition

This setting gives you a way to determine if the email should be sent. Enable this to have a condition checked before sending the email.

Participants Database Field

This selects the field that is tested. It must be a field that is included in the submission, either as a user input or as a hidden field.


This gives you several ways to make a comparison to determine if the email should be sent.

Comparison Value Source

When the value in a record is checked, it will be checked against the comparison value. This value can come from one of three places: either as a literal value, against the saved record, or against the current “locale” value.

Comparison Value checks the record value against a set value. This value is found in the “Comparison Value” field below.

Send on Field Value Change Only when checked, will only send an email when the record value is changed to the comparison value. It will not trigger if the comparison value matches, but isn’t getting changed. (this is only available when the comparison source isĀ Field Value to Fixed Value)

Saved Value checks the incoming or new value against the previously saved value. This value is only valid when the trigger is a record update because it requires that the record be in the database beforehand. The purpose of this is to give you a way to check against a changed value, so that the email will only be sent when your selected field value is changed by the user or an admin.

Current Locale Setting: this value is the current language selected. If you have a multilingual site, this gives you a way to send a different email depending on the language chosen. It will be the usual WordPress language abbreviation, usually something like “FR_fr” or “BR_pt”.

Prevent Duplicates

If this is checked, an email that uses the same template going to the same address as an email that was sent in the last 24 hours will be blocked as a duplicate. This is mostly to prevent accidental resending.


Can I use this plugin to send a newsletter to the list?

That depends on the size of your list. If it is 100 or less, no problem. If you need to send to more than that, it’s possible (if a bit laborious) to send your newsletter in groups of 100 or less. Be sure you know your web host’s mass email policy, most shared hosting does not allow you to send lots of emails over a short period of time.

If your list is more than a few hundred, you’ll need to use a proper mass-email plugin or third-party service.

Is it possible to keep a log of all emails sent?

You can do this by installing an email logging plugin. I’ve tested Email Log and it works well.

Is it possible to get a notification when a user changes their record?

Yes, use an email template with the “Frontend Record Update” trigger. In the body of the email, you can use the [change_log] tag to show a table with all the changes the user made.

The emails are not sending: I'm getting a "Message body empty" error

This is most likely caused by another plugin that uses the global content filter. Participants Database be default applies the global content filter to the body of all emails so that other plugins’ functionality can be added to the message, usually by using a shortcode. Sometimes plugins alter the body text without any shortcodes.

The fix for this is usually to change the “Use WordPress Auto Formatting” setting in Participants Database (under the advanced tab) to a setting other than to use the global content filter. Be sure to test your email after changing this setting.

I'm getting sharing links or other unwanted content in my emails. How do I prevent this?

This is the same answer as the above question. You are probably using a plugin that adds sharing links or other dynamic content to your site content. You can prevent this from happening by changing the “Use WordPress Auto Formatting” setting in Participants Database under the advanced tab.

I want the recipient of the email to be determined by a selector in the signup form, how can I do this?

Often, you want to be able to send an email to a recipient based on some value in the data submitted by a signup form. You don’t want to just put the email addresses in the form, so how is this possible?

This can be a little tricky to set up, but it’s not really complicated.

The first thing you need to do is set up your selector so that it can save a value that uniquely identifies the recipient. What that is really depends on your application. It could be a name or an ID number…anything that you can use to find a specific email address to send the email to.

Next, you need to use the “value tag” for the selector in the “to” section of your email template.

Then, you set up a filter that takes this identifying information and gets the email address to use: the value tag in the “to” slot is then replaced with the recipient’s email address. The email template has a filter just for this purpose. I have written up a gist that shows you how to filter the recipient value and get your email address:

I have two different signup forms, and I want each form to send a different email. How to set this up?

In a scenario such as this, you’ve typically got two signup forms on two different pages. For each one you plan to send an email for that particular submission.

To do that, we need two things:

First, set both templates to send on the “Signup Submission Thanks” action. (Also: in the Participants Database settings, under the “Signup Form” tab, deselect the default email for the signup form so you won’t get that triggering also.)

Second, we’ll need a way to differentiate the two submissions. The method I describe in this article “Multiple Databases” in Participants Database will work here: set up a hidden field that will be included in the signup form that records the name of the page the signup form is on. This is done by placing post->post_name in the “default” setting for the hidden field.

Back in your email templates, on each one, set up the “Send on Condition” to match the name of the page that corresponds to the template you want that registration to use:

  1. Enable “Send on Condition”
  2. Select “field value to fixed value”
  3. Select the hidden field
  4. Set the fixed value to the name of the page that will trigger the template: this will be different for each one

There are two other methods worth mentioning for determining which template to use: you can set the value of the hidden field in a custom template, or you could give the user a radio button or other selector, and use that value to determine which template is used.

I want to send an email to a group within my list, how do I do that?

OK, easiest way to do this is to define your email template and set it to go out as a “PDb Admin List With Selected Action” Now, go to the admin list page, and use the filter to show only the people you want to send the email to.

Now, all you have to do is select all (checkbox at the top of the column of checkboxes) and then select your email from the “with selected” dropdown, hit “apply”, confirm, and they will send.

You can define several emails like that if you need to send out different ones to different groups.

How do I send an email from another script?

If you have some custom code and you want to use the Email Expansion Kit to send an email, it is very simple. First, of course, define the template you want to use. At the top of the template edit page, you’ll see a numeric ID for the template. You’ll use that to invoke the template in your code.

In your code, use a function like this:

\cpt_email_templates\sender::send( $template_id, $record = array(), $context = '' );

Where $template_id is the numeric ID of the template you want to use.

$record is an associative array of data to use. This would normally be a Participants Database record, but it can be any associative array of data to be used in the template. This is optional, you don’t have tp include data, it is only needed if you want to display the data in the template.

$context is an optional string to name the context of the send, it is only for the purpose of labeling the send operation. This is useful of you are using other filters on the email send process and you want to know the source of the email. The context value will also be added to the header of the email so you can use that to identify the code source of the email.

How do I wrap the email with a DOCTYPE declaration or use an HTML framework for the email body?

This is possible, there is a filter pdb-template_email_html_body that you can use to wrap the body of the email with your HTML framework, or add the DOCTYPE declaration. This can be helpful in addressing layout issues due to inconsistent application of CSS layouts in email clients.

Check this article for more information on that: Which Code Should I Include in Every Email?

Here is an example plugin that shows how this can be done:

Support Discussions for Email Expansion Kit

  • What could be the cause dor the plugin stopping to send the signup email notifications to the admin without any changes having been made, The other emails work fine.

    • I don’t know enough about the circumstances to have a positive answer here. Turn on plugin debugging, clear the debugging log, then test your notifications. The log will give you feedback on what is going on with the email sends.

      What is the trigger you are using on the template, and how are you testing it?

      • Thanks for your answer Roland. I will try debugging.
        As for the trigger in the tutorial there is talk about “Signup Submission” as Send Action, while I have a “Signup Submission Thanks” and a “PDb Admin List With Selected: send signup email”

        The latter is the one I use and the Send Signup Email is selected in PDB Generla setting

  • Hi,
    I installed this addon yesterday, but am getting the message ‘Invalid argument supplied for foreach() in /home/customer/www/*** on line 199

    *domain name redacted

    I’ve tried troubleshooting mode plus deleting and reinstalling the addon etc. but it doesn’t make any difference.

    Any ideas?


    • Do you have the Advanced Custom Filters plugin installed on your system? Deactivating/activating it might make the message go away. It’s not serious anyway, it will will probably also go away when you configure a template.

      • Thanks for your reply.

        No I don’t have Advanced Custom Filters installed, and adding templates hasn’t helped.

        I’m also having another problem which I don’t know could be related or not. I’m using the database for students to upload essays to be marked, and tutors to provide grades. I wanted to use the email templates to notify tutors when a file got uploaded by the student, and notify students when a grade was given.

        I’ve tried setting it up as:

        Student file upload: Frontend record update ==> Send on condition ==> Upload field ==> Equals ==> Field value to fixed value

        Tutor grade: Frontend record update ==> Send on condition ==> Grade field (dropdown list) ==> Equals ==> Field value to fixed value

        This works, but the problem is that both templates are being triggered every time either of the fields is changed. I.e. if a student uploads a file, the tutor gets the notification email but the student also immediately receives an email saying a grade has been given.

        I hope that makes sense, and as I say I have no idea whether this could be linked to the foreach error or not (I’m also happy that it could be user incompetence – I just can’t see what I might be doing wrong!).

        Thanks again

        • Well, I was hoping that just creating templates would clear the cache…the issue is due to object caching in your setup, which you may be using as a plugin or is in use on your server. There is a fix if you want to fiddle with the code (that code is from another vendor) but the issue (as a warning) will not affect any functionality. I will push an update out that fixes this sometime in the next week or so.

          For your template trigger, there is a switch in the template conditional configuration “Send on Field Value Change Only” that should trigger the email only when the field is changed to the fixed value from a different previous value. For example the first time a file is uploaded or when a file with a different name is uploaded. The condition for both templates is checked every time a record is updated on the frontend, this is why they are both getting triggered.

          Instead of using the “Equals” and a defined fixed value, try setting up the conditional with “Is Not Equal To” and a blank comparison value and the save on field change only preference. This will trigger the email when the selected field value is changed from or to any value by a frontend update.

        • Couldn’t reply to your message below but thanks – that appears to be working brilliantly now.

          As you say the foreach error doesn’t seem to be affecting functionality, but I look forward to any fixes you can give in future updates.

          Thanks for your help.

  • Hello

    I have a series of email templates set up with member payments, one for registration, one for payment, and three for payment status changes. The first two work fine, users who register and pay receive their emails like they’re supposed to.

    But when I try to test the status change ones (using send action ‘Member Payments: Status Change to: Payable’ for example), no emails are being sent. I’m using the debug mode to change the date. The members list shows the Status field is updating properly when the date changes, but no emails are being sent.

    The debug log doesn’t show them being sent either, so it’s not on the receiving end.

    Is there something I’m missing about how this send action works?

    • Hi,

      Yes, this can be difficult to test because it doesn’t pick up the change if you attempt to force it with the test date. It will, however, use the test date when the cron is triggered, so you will probably see the email trigger when the cron is triggered. This happens daily, but you can trigger it manually if you use a cron utility plugin such as Crontrol. The name of the cron is “pdbmps_cron_updates”

      I know about this problem, but I have not issued a fix for it yet, I’m sorry.

      • I installed WP Crontrol, ‘pdbmps_cron_updates’ wasn’t on the list but I added it manually, the action it added was ‘pdbmps\payment_status\controller->update_all_records()’. I ran it but still no email sent out for ‘status change: payable’.

        • Odd that the cron was not set. The trigger is the status change, so if the status was already updated to payable, nothing will happen. This is certainly something I need to look at, but it is working if the record has some other status when the cron updates the record’s status.

        • To test this time, I set the date back to normal (today), I ran the cron, waited 5 min, set the date one year into the future, ran the cron again, still no email.

          The debug log shows: ‘PDb_List_Admin::initialize
          list query: SELECT * FROM o13hi_participants_database p WHERE (p.pdbmps_member_payment_status IS NULL OR p.pdbmps_member_payment_status = “”) ORDER BY p.date_updated desc’

          Or would that not be the procedure to test? I understand why it’s awkward, but I just need a way to confirm the emails will go out before this goes live.

          Is there a way to manually change the status without using the date function, in a way the cron would pick up when it’s manually run?

        • This is because the status of the record was payable to begin with. To test this kind of thing, you need to look at the actual data in the record because that is what the function will look at when it is triggered by the cron. You should use something like phpMyAdmin to inspect the values in the record so you know the status the record is in before you trigger the cron. (you can’t just look at the record in the plugin because it will show the dynamically calculated value, not the value in the db)

          The field you’re looking for is pdbmps_member_payment_status. if the status in the test record is “payable” change that to “paid” because that is the status that precedes “payable” then set your test date to a date that falls in the payable range, then trigger the cron.

          I’m sorry the test is difficult to do, I’m working on how to make it easier.

        • I used phpmyadmin to manually change ‘pdbmps_member_payment_status’ and it worked and the emails sent like they were supposed to.

          The only problem is that all of the participants status fields were null until I manually added the status myself, either Current or Payable. I feel something’s wrong here and those fields should already be populated.

        • It’s expected that the initial value is NULL. There is a setting in the Member Payments plugin settings where you can set the initial state depending on your needs. This doesn’t change what’s in the db, it just tells the plugin what to do if the value is null. You can set that to what you want the initial status of your records to be, but this is optional.

        • Setting the initial value to ‘Pending’ fixed everything, and now it all works! Thank you very much for your assistance.

  • When the visitor submit form I want to send him confirmation link and when he click the link in email then its record added to list or atleast confirmed on the list. Is it possible using this extension?

    • This add-on doesn’t add a function like that, you need to either give them a way to confirm (such as a checkbox) or if you want it automatic, you need to use some custom code for that.

  • i am having trouble with several of the add-ons that i purchased today.
    i as able to install the member-payment add on and set it up – no problem

    i got the html5 add on and it is working fine

    i then installed the login add-on and i am getting and error “NO RECORD WAS FOUND”
    this is the same error message i get when i try to use the private link sent in the email.
    the record is approved.
    from the admin side, i see and can edit the record, and the private link code is the same in the record that was sent in the email.

    next – installed the contact button add on – did not activate because i had yet to install the email expanion kit. When i did, i get a FATAL error
    Fatal error: Call to a member function get() on null in /home/cymatechnologies/public_html/ on line 28

    This error caused the whole site to be unavailble, so from filezilla i renamed all of the pdb plugins (it took doing this before the site would come back up
    i do not know how to fix.
    can you point me in a direction that will resolve this issue
    otherwise, i will want my money back,

    • I’m sorry this gave you trouble. I would suggest you go back to having all the plugins activated except the email expansion and the contact button one. You should rename them to their original names before activating to avoid problems with updates later.

      For your issue with the login form, make sure the shortcode you are using on the record edit page is [pdb_record], not [pdb_single].

      I will look into this other issue when I can later today.

      • when i renamed the plugins (payment, database, and login) i still get the error message and the site gets the error

        so still have them disabled – renamed, because i can not even login to wordpress from a url
        thanks for the fix for the NO RECORD FOUND


        • I suspect it is the Member Payments plugin, so if you’re willing to try to run the other plugins, it may work. This is not a problem I have seen reported before, and the code I suspect is causing it has been around a long time, so it is probably something about your particular setup. It may be some other plugin on your site, but that’s just a guess.

          Of course, if the plugins don’t work the way you need, I’ll issue a refund.

        • ok, i have fully tested the members-payment option – working well. (required)
          thml5 add on is doing nicely.
          the private link email is working (without login page)
          request for private link is working too

          for the login i setup a page with the shortcode – [pdb_login]
          when i view this page from the editor – i see the email and pwd.
          but then i submit, i still get a ‘NO RECORD FOUND”.
          The settings for the “record page’ was set to the page that had [pdb_record] on it.
          in the settings, for the record page, i changed the page to be the login page
          and when i try the login page from the menu, i get “no record found”

          iit is like something is looping.

          as for the email extension kit, i know that the error occurs when the install is happening and the only way to get rid of the fatal error, is to delete the files for this plugin through FTP.

          the contact button was a nice feature i wanted to hide the actual email on the details page – having this plugin would do that correct??

        • Ok, I want to try to focus on one thing at a time.

          On the Participant Login: are you using the PDB Permalinks add-on? If so you’ll need to refresh your permalinks in the WordPress settings Permalinks menu.

        • ok, i updated the permelinks and i can now login from the menu
          thank goodness

          the only thing that appears to be left is the email expansion kit
          what kind of info do you need from me to help
          do you need to login???

        • Can you confirm that it’s only when you try to activate the Email Expansion Kit that you run into the fatal error? By the way, you only need to rename the specific plugin folder to disable the plugin via FTP. No need to delete it.

        • it happens during the install not the activate
          and i must delete the files, renaming it is not enough

  • Hi,

    How do I setup different email templates for different form groups? Can this be done by send on condition? Such as check certain required field is not empty? But the operator does not have such option.

    • You can check for an empty value using the conditional, just compare to a fixed blank value. You may save yourself some trouble in that case by making the field required in the form.

      If you want to send a different email for two different conditions, you need to set up two templates, one for each condition.

      • Thanks for the reply.

        This works perfectly if I only have 2 groups.
        But say when I have 3 groups A, B and C, and I want to setup email template for group A. when a field of form group A should be empty upon submission, the same field in form group B could be empty as well and it is only required in group C. In this case, if we check “is empty”, the email will send out for both groups A and B.

        I realized that there are some hacky ways to work around this, such as adding a hidden required textfield and pre-populate unique form group names from front end, then do a fixed value comparison. But I still think it would be great if the operator can do “is not empty”.

        • I see what you’re saying and I’ll have to think about adding that. The recommended way to do this is to set up a hidden field that is included in the signup form, then set the “default” value of the hidden field to “post->post_name” when they register the name of the page will be saved with the submission, and so you will know which form was used to submit the registration. It’s always better to use a positive ID for something like this, rather than something soft like “not empty”

          Using Multiple Registration Forms

  • Can you please let me know when you release a fix for this add-on and I can use the automatic rather than the manual sending? Thanks in advance

    • You will see it on the plugins page as an available update.

    • I just released an update to the Email Expansion Kit plugin, it adds two new email actions you can use to sen emails when importing a CSV. You just need to change the “send action” of your email template to be triggered when a record is updated or created with a CSV import.

  • Hi there,
    I just bought your add-on and I’m wondering how to set up an email template properly.
    I want to send an automatic email to any new participant that has been added via csv import.
    I’m guessing I have to select “Send action” : “Backend Record Add”.
    But what I need to know is what to put in the Email Body Template so that the recipients receive their private link. I would like the email to be something like :
    “Hi First Name Last Name,
    You have just been registered on our website. Please fill up your information by following this private link.
    Thank you.”

    What values should I write for the name and private link to be automatically added?
    Thanks in advance,

    • Yes, “Backend Record Add” is the action to use for this.

      The “value tags” you can use in the template are the same as are available in the main plugin, so you can add the record edit link to the email with something like this:

      You can edit your record hereā€¦
      • Thank you for your quick reply.
        Everything seems to be set up properly now, but unfortunately, whenever I add participants via csv import, the emails are not sending.
        I don’t get a “Message body empty” error, but I changed the ā€œUse WordPress Auto Formattingā€ setting anyway just in case (tried all of the options), but it’s still not sending.

        • I’m sorry, this is not working as expected.

          Until I can release a fix for this, you can do this manually by assigning your email template to “PDB Admin List With Selected Action” then, go to the admin listing and select the records you want the email sent to. Then select your email template in the “With Selected” dropdown and click “Apply”

  • Two quick questions before I add this add-on.
    1. I used Participant Database about two years ago for another project. At that time the email notifications of new registrations or approvals was all part of the package. I’m just confirming that this is now an add-on. Correct?
    2. I am building an online service that requests emergency contacts to be added as part of a registration process. Those contacts are added to the database. Once those are added to the database, is it possible to have this email feature send an email to those particular data fields notifying them of their designation as an emergency contact with a customized email message? Basically, once a particular data field has information (field named “primary-contact-email”), this email will fire off to the email address listed in that particular data field. D this possible with this add-on?

    • The signup response emails in the main, free, plugin are still in there the same way. The Email Expansion Kit just adds to the email capabilities of the plugin, and you could use that add-on to replace the built-in email functionality with an email generated by the add-on, but the normal email functions in the main plugin remain the same.

      Yes, the Email Expansion Kit allows you to create any number of email templates that are sent under a variety of circumstances and with different recipients. You can define an email that will go to a recipient that is defined in any field of the submitted record. It will also avoid unnecessary sends: for example if the record is updated, but the contact email is not changed, no email will be sent to the contact.

  • Hi Xnau hope you are doing well , and thanks a lot for your great plugins, my site does not send the emails to the recipient, the sender will get the thanks notification an the DB would register the data from the form the sender sends , but the recipient won’t get the mail neither the cc and the bcc works, I get this message from the WĀØP Debug: xnau_Template_Email::_mail sending failed for: Bungalow X while doing: cpt_email_templates\sender: pdb-after_submit_signup.

    It used to work fine before I check all spam possibilities and no indication of a spam situation , thanks for your help

    • The usual reason email would fail is the recipient is not valid, but there could be a technical reason also. I suggest you check your email template closely for problems there. Are you getting other emails from the plugin?

    • Now I find out that if I use a mail from my domain it will send the mail , I think is a new policy from my host to send only emails to accounts from the domain it self , not to other accounts I will check with them , thanks a lot for your quick response !!!

Got a Support Question?

Your email address will not be published. Required fields are marked *