DOCS

Privacy and GDPR

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.

FieldDescription
First, middle, last nameDonor name fields
Email addressDonor email
PhoneDonor phone
CompanyDonor company
Address fieldsStreet, city, postcode, country
Amount and currencyDonation amount
Donation typeOne-time or recurring
Payment methodProvider used
Anonymous flagWhether donor requested anonymity
Marketing consentWhether consent was given
MessageMessage left for the fundraiser
IP addressSubmitting IP
User agentBrowser/device string
Donation dateWhen the donation was made
Action titleName 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 keyDefaultBehaviour
get_fund_retention_delete_ip_days90After N days, IP address and user agent are cleared. Set to 0 to disable.
get_fund_retention_anonymize_months0After 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

  1. A user submits a data export request at your site’s privacy page.
  2. Go to Tools > Export Personal Data in the WordPress admin.
  3. Find the request and click Send Export Link or download directly.
  4. The export ZIP includes a Fundations section with all donation records.

Responding to an erasure request

  1. A user submits an erasure request.
  2. Go to Tools > Erase Personal Data.
  3. Find the request and click Erase Personal Data.
  4. Fundations anonymises the matching donation records. The records are not deleted.

Configuring retention

  1. Go to Fundations > Settings > Privacy.
  2. Set IP retention days (default 90). Set to 0 to keep IPs indefinitely.
  3. Set Anonymisation months (default 0, disabled). Set to a number to enable full anonymisation after that many months.
  4. 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

HookArgumentsDescription
get_fund_export_personal_dataarray $export_items, string $email_addressModify or extend the export data for a given email.
get_fund_erase_personal_dataarray $erase_result, string $email_address, int $items_removedModify the erasure result.