> Available in: Fundations (free) for core form building. Fundations Pro for signature field management.
The Form Builder lets you create custom donation form templates with a mix of system fields and custom fields. Each get-fund/donation-form block instance can reference a saved template. The admin page is at Fundations → Forms.
Why use this
Different campaigns need different forms. A charity auction needs different fields than a personal fundraiser. The Form Builder lets you create and reuse form configurations without editing code, then assign different templates to different donation form blocks across your site.
What it does
The Form Builder manages form templates. Each template is a saved configuration of fields that the donation form block renders. Templates are stored in the WordPress option get_fund_form_templates.
System fields
System fields are built-in and handle core donation functionality. Most are required for a working donation form.
| Field key | Description |
|---|---|
system:donation_amounts | Preset amount selector and custom amount input |
system:platform_tip | Optional tip percentage selector (Pro revenue model, see Tip Collection) |
system:donor_first_name | Donor first name |
system:donor_middle_name | Donor middle name |
system:donor_last_name | Donor last name |
system:donor_email | Donor email address |
system:donor_phone | Donor phone number |
system:donor_message | Optional message from donor |
system:is_anonymous | Anonymous donation toggle |
system:marketing_consent | Marketing consent checkbox (required for CRM automation triggers) |
system:payment_methods | Payment method selector |
system:totals_breakdown | Summary of donation amount, tip, and total |
system:signature | Digital signature pad (requires Pro for admin management) |
system:campaign_goal_amount | Goal amount input for campaign fundraisers |
system:submit_button | Form submit button |
Custom field types
Custom fields collect additional data from donors.
| Type | Description |
|---|---|
text | Single-line text |
email | Email address |
number | Numeric input |
tel | Phone number |
url | URL |
textarea | Multi-line text |
select | Dropdown selector |
radio | Radio button group |
checkbox | Single or multiple checkboxes |
date | Date picker |
divider | Visual divider |
spacer | Vertical spacing |
section | Section heading |
html_content | Raw HTML content block |
Custom fields and integrations
Custom fields added to a form template are automatically registered as merge tags in the Integration system. They are available in the donation_received and donation_failed triggers. See Merge Tags for details.
How to use it
Creating a form template
- Go to Fundations → Forms.
- Click Add New Template.
- Give the template a name.
- Add system and custom fields from the left panel into the form layout.
- Configure each field (label, required toggle, options for select/radio/checkbox).
- Save the template.

Assigning a template to a donation form block
- Open a fundation page in the block editor.
- Select the Donation Form block.
- In the block settings panel, choose your template from the Form Template dropdown.
- Save the page.
Importing and exporting templates
Templates can be exported as JSON and imported into another site using the import/export controls in the Form Builder.
Settings & options
Each custom field supports:
| Setting | Description |
|---|---|
| Label | Field label shown to the donor |
| Required | Whether the field must be filled in |
| Placeholder | Placeholder text inside the input |
| Help text | Short description below the field |
| Options | For select, radio, checkbox: the list of choices |
What you can and cannot do
- You can create multiple templates and assign different ones to different donation form blocks.
- You can reorder fields by dragging within the template editor.
- You can add as many custom fields as needed.
- You cannot remove required system fields such as
system:donor_emailandsystem:submit_buttonfrom the form entirely. - You cannot conditionally show or hide fields based on donor input (no conditional logic).
- The
system:signaturefield renders correctly on the frontend in the free plugin. Managing signature images, bulk deletion, and ZIP export require Fundations Pro. See Signature Field.
Troubleshooting
A custom field is not showing on the donation form. Confirm the field is saved in the template and that the donation form block on the page is using that template. Clear any caching plugins after saving.
Custom field data is not appearing in CRM integrations. Custom fields register as merge tags via the get_fund_integration_merge_tags filter. The tag key matches the field slug defined in the template. Confirm the field slug is correct and check your field mappings in the integration rule.
The form shows an error when a custom field is marked required. Custom field validation runs client-side. If JavaScript is disabled or a script conflict exists, validation may not work as expected. Check the browser console for errors.
Developer reference
Filters
// Modify the fields array for a specific donation form block instance
add_filter( 'get_fund_custom_fields', function( $fields, $attributes ) {
// $attributes contains block attributes including template ID
return $fields;
}, 10, 2 );
// Modify the field rows layout
add_filter( 'get_fund_custom_field_rows', function( $rows, $attributes ) {
return $rows;
}, 10, 2 );
// Override template-level settings
add_filter( 'get_fund_template_settings', function( $settings, $attributes ) {
return $settings;
}, 10, 2 );
// Override or extend system field definitions
// This is the main extension point for Pro to add behavior to system fields
add_filter( 'get_fund_form_builder_system_fields', function( $fields ) {
return $fields;
} );
AJAX actions
| Action | Description |
|---|---|
get_fund_save_form_template | Save or update a template |
get_fund_delete_form_template | Delete a template by ID |
get_fund_import_form_templates | Import templates from JSON |
All require the get_fund_form_builder_nonce nonce and the manage_options capability.