Fundations sends six types of automated emails: two related to creating a fundraising page, one for donations, two for campaign expiration, and one specifically for guest-created pages. All are included in the free plugin.
Why use it
Email notifications keep fundraisers informed when their page goes live, confirm donations to supporters, and alert creators or admins when a campaign expires. Each email type can be individually enabled, disabled, and customised with placeholders.
What it does
Emails are sent at the following moments:
- Welcome email — sent to a newly created
fund_memberuser, and also to existing users who create a new campaign via the wizard. Contains a password-set link. - Fundraiser confirmation email — sent to registered users immediately after their fundraising page is created.
- Guest confirmation email — sent to guests (no account) after creating a page via the wizard. Contains a claim button with a 30-day token to link the page to an account later.
- Donation confirmation email — sent to the donor after a payment is marked as paid.
- Expiration email to creator — sent to the registered campaign creator when their campaign expires.
- Expiration email to admin — sent to the site admin email when an unclaimed or guest-created campaign expires.
All emails are sent as HTML. A site logo, customisable button colour, and text colour can be applied globally. The expiration emails use a coloured header bar controlled by the get_fund_email_header_color setting. The welcome, confirmation, and donation emails do not render a coloured header even though the same setting exists.

How to use it
Enabling and disabling email types
- Go to Fundations > Settings.
- Each email type has its own enable/disable toggle.
- Save settings.
Customising email content
- Go to Fundations > Settings and find the email you want to edit.
- Edit the subject line and body. Use the placeholder tags listed in the tables below to insert dynamic values.
- Save settings.
Customising email appearance
| Setting | Default | Description |
|---|---|---|
get_fund_email_header_color | #4a9d44 | Header bar colour (used in expiration emails) |
get_fund_email_text_color | #333333 | Body text colour |
get_fund_email_button_color | #4a9d44 | Background colour of action buttons |
get_fund_email_button_text_color | #ffffff | Text colour of action buttons |
get_fund_email_logo | (none) | URL of a logo image prepended to all emails |
Email types reference
1. Welcome email
Sent to: newly created user (and to existing users creating additional campaigns).
Toggle: get_fund_welcome_email_enabled (default: enabled)
| Placeholder | Value |
|---|---|
{user_name} | Display name |
{first_name} | First name |
{username} | WordPress username |
{email} | Email address |
{site_name} | Site name |
{reset_link} | Raw URL to set a password |
{set_password_button} | HTML button linking to the password-set URL |
2. Fundraiser confirmation email
Sent to: registered users after creating a fundraising page.
Toggle: get_fund_confirmation_email_enabled (default: enabled)
| Placeholder | Value |
|---|---|
{user_name} | Display name |
{first_name} | First name |
{email} | Email address |
{site_name} | Site name |
{action_title} | Campaign title |
{action_url} | Campaign URL |
{action_goal} | Formatted goal amount |
{campaign_name} | Parent campaign name (if applicable) |
{campaign_url} | Parent campaign URL (if applicable) |
{team_name} | Team name (if applicable) |
{team_url} | Team URL (if applicable) |
3. Guest confirmation email
Sent to: visitors who created a page without registering.
Toggle: get_fund_guest_confirmation_email_enabled (default: enabled)
| Placeholder | Value |
|---|---|
{first_name} | First name as entered in the wizard |
{action_title} | Campaign title |
{action_url} | Campaign URL |
{action_goal} | Formatted goal amount |
{claim_button} | HTML button with 30-day claim token |
{site_name} | Site name |
{campaign_name} | Parent campaign name (if applicable) |
{campaign_url} | Parent campaign URL (if applicable) |
{team_name} | Team name (if applicable) |
{team_url} | Team URL (if applicable) |
4. Donation confirmation email
Sent to: the donor after payment is marked paid.
Toggle: get_fund_donation_confirmation_enabled (default: enabled)
| Placeholder | Value |
|---|---|
{donor_name} | Full donor name |
{donor_first_name} | First name |
{donor_email} | Donor email |
{amount} | Donation amount |
{currency} | Currency symbol |
{donation_type} | one-time or recurring |
{donation_date} | Formatted date |
{payment_id} | Internal payment ID |
{payment_provider} | Payment provider name |
{action_title} | Campaign title |
{action_url} | Campaign URL |
{team_name} | Team name (if applicable) |
{site_name} | Site name |
{products} | Itemised product list (if applicable) |
{cf_ | Value of a custom donation form field |
5. Expiration email to creator
Sent to: the registered user who created the campaign, when it expires.
Toggle: get_fund_expiration_user_email_enabled (default: enabled)
| Placeholder | Value |
|---|---|
{user_name} | Display name |
{first_name} | First name |
{action_title} | Campaign title |
{action_url} | Campaign URL |
{edit_url} | Frontend edit page URL for this campaign |
{end_date} | Formatted end date |
{raised_amount} | Formatted raised amount |
{goal_amount} | Formatted goal amount |
{site_name} | Site name |
6. Expiration email to admin
Sent to: the site admin email address, when an unclaimed or guest-created campaign expires.
Toggle: get_fund_expiration_admin_email_enabled (default: enabled)
| Placeholder | Value |
|---|---|
{action_title} | Campaign title |
{action_url} | Campaign URL |
{admin_edit_url} | WordPress admin edit URL for the campaign |
{end_date} | Formatted end date |
{raised_amount} | Formatted raised amount |
{goal_amount} | Formatted goal amount |
{site_name} | Site name |
What you can and cannot do
You can:
- Enable or disable each email type independently.
- Customise subject lines and body content for each email.
- Use placeholders to insert dynamic values.
- Add a logo to all emails via the logo URL setting.
- Add or modify recipients for donation confirmation emails using a filter.
You cannot:
- Style the welcome, confirmation, or donation emails with the header colour setting (only expiration emails render a coloured header).
- Send copies to additional recipients without using the
get_fund_donation_email_recipientsfilter. - Use HTML in subject lines.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| Emails are not being received | Server mail is not configured | Install and configure a transactional email plugin such as WP Mail SMTP |
| The welcome email is sent to users who already have an account | Intentional behaviour — the plugin re-sends the welcome email to existing users who create additional campaigns | Use the get_fund_wizard_user_created action to suppress or customise this |
| Placeholders appear as literal text in the email | Incorrect placeholder syntax | Confirm the placeholder matches the table exactly, including curly braces |
| The header colour setting has no effect on confirmation emails | Only expiration emails use a coloured header | This is a known limitation |
| Guest claim link does not work | The claim token has expired (30-day limit) | Ask the admin to reassign the campaign via the WordPress admin |
Developer reference
Hooks and filters
| Hook | Type | Description |
|---|---|---|
get_fund_donation_email_recipients | filter | Modify the recipient(s) for the donation confirmation email; receives string $donor_email, int $donation_id |
get_fund_expiration_email_placeholders | filter | Modify placeholder values for expiration emails; receives array $placeholders, int $action_id, string $type |
The $type parameter in get_fund_expiration_email_placeholders is either 'user' (creator email) or 'admin' (admin email).
Signatures
// CC a manager on all donation confirmation emails
add_filter( 'get_fund_donation_email_recipients', function( string $donor_email, int $donation_id ) {
return $donor_email . ',manager@example.com';
}, 10, 2 );
// Add a custom placeholder to expiration emails
add_filter( 'get_fund_expiration_email_placeholders', function( array $placeholders, int $action_id, string $type ) {
$placeholders['{custom_field}'] = get_post_meta( $action_id, '_my_custom_field', true );
return $placeholders;
}, 10, 3 );