Fundations integrates with WordPress core privacy tools to support GDPR compliance: personal data export, erasure (anonymisation), and automated IP address retention controls. This is a free feature.
Why use this
Donation records contain personal data (names, email addresses, IP addresses). GDPR and similar regulations give individuals the right to access and erase their data. The built-in privacy tools allow site operators to respond to these requests without manual database queries.
What it does
Privacy policy content
On admin_init, Fundations adds suggested privacy policy language via wp_add_privacy_policy_content(). The text covers what donation data is collected and why, links to payment processors (PayPal, Mollie, Stripe), marketing consent handling, data retention practices, and individual rights.
This is suggested content only. Review and customise it before publishing your privacy policy. The text mentions Mollie and Stripe even in the free plugin, as they may be added via Pro.
Personal data export
Registered under wp_privacy_personal_data_exporters. When a site admin runs a data export request for a user’s email address, Fundations exports all donation records linked to that email. Exports are paginated at 50 records per page.
| Field | Description |
|---|---|
| First, middle, last name | Donor name fields |
| Email address | Donor email |
| Phone | Donor phone |
| Company | Donor company |
| Address fields | Street, city, postcode, country |
| Amount and currency | Donation amount |
| Donation type | One-time or recurring |
| Payment method | Provider used |
| Anonymous flag | Whether donor requested anonymity |
| Marketing consent | Whether consent was given |
| Message | Message left for the fundraiser |
| IP address | Submitting IP |
| User agent | Browser/device string |
| Donation date | When the donation was made |
| Action title | Name of the fundraising page |
Personal data erasure
Registered under wp_privacy_personal_data_erasers. Erasure anonymises records rather than deleting them, to preserve financial reporting integrity.
Cleared fields: all name fields, email, phone, company, address, IP address, user agent, message, custom fields (set to null). Sets is_anonymous = 1, marketing_consent = 0, user_id = null.
Preserved fields: amount, currency, payment method, action ID, creation date, donation counts.
Automated data retention
A daily cron job (get_fund_privacy_retention_cleanup) runs automatic cleanup based on two settings:
| Option key | Default | Behaviour |
|---|---|---|
get_fund_retention_delete_ip_days | 90 | After N days, IP address and user agent are cleared. Set to 0 to disable. |
get_fund_retention_anonymize_months | 0 | After N months, full anonymisation runs. 0 means this is disabled. |
Plugin deactivation
When Fundations is deactivated, Get_Fund_Privacy::unschedule_cron() is called to remove the retention cron job.
How to use it
Responding to a data export request
- A user submits a data export request at your site’s privacy page.
- Go to Tools > Export Personal Data in the WordPress admin.
- Find the request and click Send Export Link or download directly.
- The export ZIP includes a Fundations section with all donation records.
Responding to an erasure request
- A user submits an erasure request.
- Go to Tools > Erase Personal Data.
- Find the request and click Erase Personal Data.
- Fundations anonymises the matching donation records. The records are not deleted.
Configuring retention
- Go to Fundations > Settings > Privacy.
- Set IP retention days (default 90). Set to 0 to keep IPs indefinitely.
- Set Anonymisation months (default 0, disabled). Set to a number to enable full anonymisation after that many months.
- Save settings.
What you can and cannot do
Through the WordPress privacy tools, you can export all donation data for a given email address, anonymise records in bulk via the erasure tool, and automate IP deletion to reduce the personal data footprint.
You cannot permanently delete donation records through the erasure tool (anonymisation is used instead to preserve financial records), and you cannot export donation data outside of the WordPress privacy request flow without custom code.
Troubleshooting
Erasure request shows “no data found” for a known donor. Confirm the email address matches exactly. Donation records are looked up by the email field in the custom donations table or _get_donation_email postmeta.
IP addresses are still present after the retention period. Confirm the WordPress cron is running. If cron is disabled or unreliable on the server, run it via WP-CLI: wp cron event run get_fund_privacy_retention_cleanup.
Privacy policy suggested content does not appear. The content is added on admin_init. Navigate to Settings > Privacy Policy and look for the Fundations section in the policy suggestions panel.
Developer reference
Filters
| Hook | Arguments | Description |
|---|---|---|
get_fund_export_personal_data | array $export_items, string $email_address | Modify or extend the export data for a given email. |
get_fund_erase_personal_data | array $erase_result, string $email_address, int $items_removed | Modify the erasure result. |