Every recorded version, newest first, with what changed in each one.
Latest 4.19.1.115 versions
Undated · 15 versions
4.19.1.1
Latest
2 security
Security
Added additional validation to the donor default user role setting. (CVE-2026-118193)
Improved validation of donor email on donation forms.
4.19.1
12 fixes
Fixed
Updated the codebase to be fully compatible with the official WordPress Plugin Check guidelines.
Added nonce and capability checks to dismiss, onboarding, import, export, usage tracking and database updater requests. A manual migration now requires a URL with a valid nonce (wp_nonce_url with the give_manual_migration action) or the Migration log page.
Renamed unprefixed functions and hooks to give_-prefixed names. The old names still work and log a deprecation notice, except _give_is_form_migrated and before_give_init, which add-ons still use.
The donor search term is now escaped inside Give_Donors_Query, so callers must not escape it themselves.
The uninstall script now deletes only the options that start with a GiveWP prefix. It used to delete every option with "give" in its name, including options of other plugins.
Restored the Logout link in the Donor Dashboard mobile menu.
Restored keyboard Tab access to Form Field Manager and other add-on fields on the amount step of multi-step forms that use the Sequoia template.
Enabled the 'Update Subscription' button in the Donor Dashboard for failing subscriptions, so donors can replace an expired or declined card.
Running a database update by hand with give-run-migration no longer ends in a fatal error.
Reset Stats now clears only the deleted options from the object cache instead of flushing the whole cache.
Prevented a fatal error on the Donor Register email preview when Give Peer-to-Peer is active.
Changed the default 'Donate' button text color in the Donation Form Grid block to meet color contrast accessibility requirements (WCAG AAA).
4.19.0.2
2 security
Security
Added additional validation to account registration on donation forms. Reported by Pablo Alaniz
Improved donation amount validation so donations always meet the amount set on the form.
4.19.0.1
8 security
Security
Improved donation currency validation so the submitted currency must be supported by the form, including currencies enabled by the Currency Switcher. Reported by Shirshak.
Enhanced security for the donation form view. Reported by vuxvinh.
Improved validation of donor profile e-mail changes. Reported by Kaveesha Nirmal.
Improved validation of the core settings import. Reported by Karthik Ramakrishnan.
Added additional validation to donation form template appearance settings. Reported by Karthik Ramakrishnan.
Determine the page being edited from the current request context before granting page capabilities. Reported by Karthik Ramakrishnan.
Added additional validation to donor address management. Reported by Hariom Singh.
Improved anonymous donor filtering in the donor list. Reported by Vũ Quang Huy.
4.19.0
3 new1 improvement6 fixes
New
Added the ability to create and edit donation forms without a campaign, and brought back the Forms list with a Campaign column, a "No campaign" filter, and a link-to-campaign action
Added a campaign action on the Forms screen to assign a form to a campaign, move it to another one, or remove it from its campaign
Added a Form column and a form filter to the Donations screen so you can see and filter donations by the form they came through
Improved
Added a dismissible announcement banner to plugin admin pages.
Fixed
Resolved an issue where the form picker on donation and subscription details showed an incomplete list of forms after a form was chosen
Forms that are not linked to a campaign now load their own goal on the form page and in the forms list, and their donations show the form title in the donations list
Resolved an issue where a donation moved to a different form still counted toward the old form in the Multi-Form Goal progress bar
Changed PayPal order descriptions, the {donation} email tag and donation exports to name the donor's selected level instead of the first level, including for donations without a stored level or with a recovered fee.
Corrected donation and form queries leaving WordPress post globals populated after their results loop, which caused Multisite Network Admin site links to use a donation ID instead of the site ID.
Resolved an issue where the classic Donations screen showed a broken campaign link for donations to forms without a campaign
4.18.0.1
1 fix1 security
Fixed
Resolved an issue where PayPal Standard donations and subscription renewals with recovered fees were not recorded after the IPN validation update.
Security
Improved validation of PayPal Standard IPN notifications.
4.18.0
3 improvements11 fixes3 security
Improved
Improved donations list table performance on sites with hundreds of thousands of donations by paging on IDs first, fixing the total count query, and replacing the single-column donation meta indexes with composite ones
Improved the Reports screen and legacy earnings stats on large sites by summing and counting donations in the database instead of loading every donation into memory
Recurring donation stats on the campaigns list now read from the cache correctly instead of showing empty values
Campaign stats now show for campaigns that were added after the stats cache was built
Resolved an issue where campaign stats showed as zero after viewing the Campaigns screen with test mode enabled
Donations list table was running extremely slowly and including trashed donations on large sites.
Resolved an issue where a database error while saving a donation, donor, subscription, campaign, or event caused a critical error and hid the real cause
Resolved an issue where sites running PHP 8.4 or newer logged deprecation notices from GiveWP
Database migrations started a second time in requests that arrive while a slow migration is still running. Now it runs one time and the migrations list now shows the latest run first.
Resolved an issue where a PHP warning could appear on development copies of GiveWP that have not been built
Resolved an issue where subscription webhook events caused a fatal error when the subscription had no initial donation
Updated campaign duplication to create a single copy of each associated form when form metadata contains duplicate keys.
Restored donor names, initials, and totals on the donor wall block and shortcode.
Security
Enhanced security in Stripe webhook module
Enhanced security on the campaign block. (CVE-2026-97643)
Enhanced security for the Donor Dashboard access.
4.17.0
1 new1 improvement3 fixes2 security
New
Added the ability to embed donation forms on any website with a copy-paste snippet from the form builder
Improved
Donation form embeds now show a loading state while the form loads
Fixed
Fixed PHP 8.4 deprecation notices about implicitly nullable parameters
Fixed the revenue table index migration adding duplicate indexes when it runs more than once
Added additional escaping to the legacy donation form's billing address fields.
Security
Donors can no longer add unverified email addresses to their own donor record.
Enhanced security for donations imported from CSV
4.16.9
1 fix2 security
Fixed
Resolved an issue where resuming a paused Stripe subscription triggered a fatal error.
Security
Added additional validation to PayPal Commerce donation processing.
Added additional sanitization to donor information displayed on public pages.
4.16.8.1
3 security
Security
Improved validation of the event tickets purchase flow.
Added additional validation to PayPal Commerce completed-order processing.
Added additional validation to donor email lookups. Thanks Jakub Herman for responsibly disclosing this issue.
4.16.8
1 improvement4 fixes2 security
Improved
Replaced the axios HTTP client with WordPress core's apiFetch in the donor dashboard, reports, onboarding wizard, and the log and migration list tables, and removed axios from the plugin's JavaScript dependencies.
Fixed
Fixed a campaign's default donation form appearing unpublished in the form builder.
Fixed PHP warnings on the form builder screen when its page is opened without the locale or donation form ID query arguments.
Resolved a plugin conflict that prevented donor first and last names from being recorded when the Charitable plugin was active alongside GiveWP.
Resolved an issue where the custom amount minimum and maximum also applied to the donation levels and the set donation amount, so a level below the minimum could not be donated. Forms that leave the minimum empty now fall back to the lowest configured amount, and a minimum or maximum with cents is no longer rounded down.
Security
Removed vulnerable dead code related to legacy donor relinking. (CVE-2026-82676)
Enhanced security on donor account access. (CVE-2026-82675)
4.16.7.2
1 security
Security
Added additional hardening for serialized data handling in the donation flow.
4.16.7.1
1 security
Security
Added additional validation to PayPal Donations order requests.
4.16.7
3 fixes2 security
Fixed
Resolved an issue where paused or failing Stripe Payment Element subscriptions remained stuck when the donor updated their payment method or the subscription was resumed in Stripe.
Resolved a conflict where scripts enqueued by other plugins while a donation form was being rendered could stop the form builder design preview and embedded forms from loading.
Resolved an issue where editing a page could exhaust the PHP call stack when a theme or plugin filtered post metadata.