Seamless Donations is Sunset


Sunset Notice

Seamless Donations is sunsetting and will no longer be updated.

Learn more on how to migrate off of Seamless Donations.


Seamless Donations is being Sunset. What do I do now?

IMPORTANT: This plugin is no longer actively maintained or supported. We recommend migrating to GiveWP instead.


February 2, 2023
I have the premium edition. Works well. I had an issue with compatibility with my server, which was resolved by a very detailed narrative outlining the problem and solution. Some earlier customer service communications were also very thorough – clearly my case was being listened to, and resolved.
August 31, 2021 1 reply
The plugin does what it says (used it for Stripe donations) but is quite buggy. E.g. returning from the Stripe page after canceling the donation messes up the “donation was canceled” page. CSS customization is also a pain in the a** due to lack of properly classed HTML elements. Lots of jQuery tricks needed to get this done. Why are the developers using the same identifier for multiple HTML elements? Seems like lack of understanding… The de_DE translation (at least) is only halfway done. Tried Loco Translate to fix it but many phrases didn’t show up there. Touching the plugin’s source code or using JS to replace the texts isn’t update-safe. I’ve dropped this plugin.
May 28, 2021
I’m very happy with the Seamless Donations plugin. I created a website for a nonprofit that is just starting up. Seamless Donations is perfect for this project. It worked flawlessly out-of-the-box, and the free feature set is incredible. Integration with STRIPE was easy. I also appreciate the many video tutorials that the author of the plugin has created. They have been very helpful. Thanks for a great plugin!
May 23, 2021
I was totally blown away by the out-of-the-box capability of this plugin. Once installing and activating, you just type [seamless-donations] shortcode on a blank page and you immediately have a default donations form. There are many custom options available as well. The developer has provided a handful of useful add-ons that are the most reasonably priced in the industry. I ran into some unexpected challenges in setting up my Stripe account. The developer worked tirelessly with me to figure out what was wrong with my system since he had never seen the problem before. He ultimately checked out my installation and voila!!! It worked. I cannot say enough about this plugin. Have you checked out the competition? I think we need donations to pay for them. Seamless Donations ensures that even the smallest non-profits can afford to set up a donations page. Churches and clubs now have a way to collect funds and donations very easily. I love the funds feature. Donors can donate to a variety of funds set up by the organisation. There is a backend report that shows the total donations received for each fund. Thank you very much and I hope everyone buys EVERY add-on you have for sale and I wish you all the best.
May 6, 2021
I have installed this plugin on four or five of my sites and have purchased the Giving Level Manager upgrade for a few of them. I ran into an issue in one installation that required me to contact David for some assistance. He responded to my initial inquiry within a day and spent the next five days going back and forth with me via email until the problem was solved. I can’t tell you how rare it is to get this level of support, especially for a plugin that is free to install. I highly recommend this plugin. It works beautifully and in the rare event it doesn’t, the support is excellent.
December 11, 2020
I was looking for a donation plugin for a website where local guides can receive tips for their free virtual tours in these times of the pandemic. The plugin has some excellent options and the one I liked the most was the definition of funds. People can donate and decide which fund they are donating for. Just what I needed. The installation went smooth but the plugin didn’t work, I opened a ticket and got a reply from David right away. The support was relentless and although it took a while for everything to work as it was supposed to be, I was guided to the entire process until everything worked.
Read all 70 reviews

Contributors & Developers

“Seamless Donations is Sunset” is open source software. The following people have contributed to this plugin.


“Seamless Donations is Sunset” has been translated into 6 locales. Thank you to the translators for their contributions.

Translate “Seamless Donations is Sunset” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change log



  • Added a new log status message for when an email was successful.


  • Increased the header label size for all admin area sections
  • Added repeating field indicator to Donations list view
  • Bug fixes


  • Added reconcilliation audit debug mode


  • Added new form type textarea to forms engine.


  • Minor fixes to hooks and filters.


  • Mandatory update if you’re using PayPal Checkout. Fixes a critical bug.


  • Fixed minor bug where the PayPal live mode secret key was saved, but wasn’t shown in the dashboard


  • Added new PayPal Checkout system as new way to process donations with PayPal.
  • Removed IPN processing from new PayPal interface.
  • Added ability for old PayPal IPN requests to still be recognized for existing users.
  • New users will be required to use PayPal Checkout rather than the old legacy PayPal processing system.
  • Fixed presentation bugs in Donors and Donation lists

5.1.20 and 5.1.21

  • Internal bug fix upgrades


  • Fixed bug that caused some new Stripe users to get an invalid parameters error.


  • Fixed bug with setting Stripe keys


  • Added access codes to help determine where an Access Denied message is sent from


  • Fixed minor bug in expanded currency beta


  • Fixed minor bug causing some PHP complaints


  • Fixed security feature that recorded extra zeroes in some donations.
  • Fixed bug saving Stripe key data


  • Fixed yet more security bugs. Be sure to update to this version.

5.1.8 to 5.1.12

  • Fixed security bugs. Released internally only.


  • Added Live and Sandbox email fields for PayPal payments.
  • Added much more granular log reporting for Stripe key errors.
  • Added debug option to turn off Stripe key validation.
  • Added internal test code for future rolling 31 day transaction audit debug mode (requires PayPal id and secret key)
  • Improved clarity in some UI element descriptions.


  • Added compatibility check that identifies caching errors for transaction IDs.


  • Added option to extend currencies for Stripe, offering 134 currencies instead of the 26 previously offered.
  • Added a whole bunch of debug modes that help when supporting users with challenging-to-diagnose issues.
  • Fixed validation bug when “Other” was selected and no value was entered. Thanks to Daniel Oizumi for the fix.


  • Fixed responsiveness error in Modern form style


  • Fixed bug introduced in 5.1.2 that caused recurring donations to misplace decimal point


  • Modified test mailing fields to be less amusing and more useful (no more Internet Cat Fund, sorry!)
  • Added Stripe support for zero-decimal currencies (like the Japanese Yen)
  • Added two filters to email.php: seamless_donations_email_subject and seamless_donations_email_complete_body (thanks to user Robert for the suggestion)


  • Added link to view IPN transaction history in PayPal
  • Added HTTP 200 response to IPN chatback response, which should eliminate retries
  • Replaced PayPal IPN chatback code with streamlined version
  • Fixed bug where multiple zero-dollar emails are sent after a successful PayPal transaction
  • Fixed bug with PayPal SSL security compatibility indicator on Settings tab
  • Fixed issue users described as “extra blobs” after the submit button (in forms engine)


  • Added Total Donated column to Funds list
  • Added Options Explorer to Debug Mode
  • Added warning to pre-4.0 users to read blog post on upgrading
  • Added a more secure form initiation process that should be compatible with more hosting providers
  • Added more secure PayPal IPN processing that should also be compatible with more hosting providers
  • Changed the IPN URL PLEASE CHANGE THIS WITH PAYPAL (see Settings tab)
  • Added validation and prompting to make sure Stripe keys are correct
  • Substantially optimized code base, reducing overall size of plugin considerably
  • Removed “Process form data via initiating page or post” option in settings since this option is deprecated
  • Removed old Seamless Donations legacy code written before adoption of the plugin
  • Removed unnecessary private version of jQuery that had been tagging along with the plugin for a while
  • Disabled SSL check on Logs tab when in debug mode to avoid the check itself from interfering with debugging
  • Fixed bug in Funds detail where donor names were always listed as Anonymous
  • Fixed bug where Indian Rupee and Israeli New Sheqel were mixed up, due to an abbreviation snafu
  • Fixed validation and donor form bugs (thanks to user Jaka Kranjc for the code)


  • Added security code that fixes some vulnerabilities
  • Added new Stripe Event History debug mode
  • Added additional logging data in Stripe transaction check
  • Added debug line to determine where session IDs are derived from
  • Fixed bug in Stripe payment section where donation ID was sometimes missing
  • Fixed bug that set default currency to USD even if another default currency was set


  • Added street address field to notification email
  • Added repeating confirmation log entry for Stripe payment
  • Fixed minor undefined variable bug
  • Fixed issue where employer name wasn’t showing up on the donor list, even if specified
  • Fixed JavaScript bug where country element would sometimes return as undefined


  • Added option to require billing address collection in Stripe checkout form
  • Added SSL security status indicators and checks for Stripe
  • Added code to poll Stripe for repeating donation transaction data
  • Added an Seamless Donations cron subsystem, mostly for Stripe polling
  • Added one-time-run function that fixes transaction IDs for Stripe recurring donations
  • Added a whole series of internal utility functions for getting transaction data from Stripe
  • Added debug mode option to run a block of test code on Seamless Donations initialization
  • Added diagnostic message for when Seamless Donations redirects to Stripe during donation
  • Increased visible field size for Stripe keys
  • Fixed Stripe field entry validation for Stripe keys so already-entered keys aren’t deleted on error


  • Added additional diagnostic log data for Stripe payments
  • Fixed bug in form styles that would sometimes cause a crash


  • Added selective HTML tag support inside Thank You message
  • Preliminary testing with WordPress 5.5


  • Added more debugging telemetry to Stripe gateway functionality
  • Added a please post a review item to plugin’s menu


  • Fixed bug where non-required telephone number was required
  • Fixed bug where an error would be triggered if form style set to None
  • Fixed some undefined variable warnings
  • Fixed another bug in legacy licensing code


  • Fixed bug in legacy licensing code


  • Fixed bug in Stripe production/live server processing
  • Fixed bug in Funds where the fund visibility wouldn’t save
  • Fixed initiation issue with PayPal IPN.php processing


  • Fixed a conflict in browser identification code when a WordPress component wasn’t loaded in time
  • Fixed a minor bug in donor, donation, and fund details where an undefined variable was sometimes referenced


  • Added long-overdue default state option to form options
  • Added settings debug option to no longer check for pre-5.0 add-ons
  • Fixed newly-introduced bug that prevented donor, donation, and funds detail from being shown
  • Fixed a bug where browser identification in debug log failed for Business Plan users


  • Fixed duplicate header bug found on some systems


  • Added uninstall reason dialog so I can get feedback and make Seamless Donations better
  • Fixed bug where ipn.php was invoked every few seconds.
  • Eliminated a bunch (but possibly not all) warning messages that showed when WP_DEBUG turned on.


  • Added helpful up-to-the-minute server status info link to Logs page for PayPal servers
  • Added fully-responsive default Modern-style donation form


  • Fixed serious bug where gateway would default to Stripe even if PayPal was live


  • Soft launch of new form styling code… much more to come


  • Fixed Stripe production processing bug


  • Add Stylesheet Priority option to Form Options to help prevent themes from corrupting form styles


  • Added support for Stripe Checkout with recurring donations
  • Added link to comprehensive SSL report for domain, located on Log screen
  • Added security features to prevent most Seamless Donations’ php files from being executed directly
  • Added additional debug options to debug mode
  • Updated Add-ons screen with data export plugin and link to tutorial


  • Very minor tweak to make updating add-ons a bit easier


  • First public repository release of major 5.0 admin UI rebuild (5.0.0, 5.0.1, and 5.0.2 were beta releases only)


  • Added new action seamless_donations_tab_settings_before_payments which runs just before seamless_donations_tab_settings_before_paypal.
    These two are separated out as unique elements because the PayPal engine may not always be there.
  • Added a new Payments Processor Compatibility table on the Logs tab
  • Fixed a problem introduced in 5.0.0 where the WordPress Media tab would hang


  • Added two settings action callbacks: seamless_donations_tab_settings_before_paypal and seamless_donations_tab_settings_before_host
  • Added two css action callbacks: seamless_donations_add_styles_first and seamless_donations_add_styles_after
  • Fixed bug that caused an error because it was attempting to include a file no longer needed
  • Fixed bug in sd4 add-on retirement code so it now retires better


  • Enabled the ability for donors, donations, and funds to be listed as Public, Private, or Password Protected. Also allowed donor, donation, and funds pages to be unpublished, if desired.
  • Enabled the permalink on the donor, donation, and fund detail pages for easy preview of the donor, donation, and fund pages.
  • Added helpful link to the IPN entry location in PayPal (on Settings tab).
  • Rebuilt entire plugin on CMB2 admin UI library.
  • Fixed issue where couldn’t create a new fund when Compact Menus enabled and Funds tucked under main Seamless Donations menu.
  • Fixed issue where the log obscurify feature didn’t properly initialize/
  • Deprecated the following admin filters: seamless_donations_donor_header_style and seamless_donations_donation_header_style. This is now formatted in adminstyles.css
  • Changed how admin validation filters are called. Before, the filter took three parameters. Now, it’s only passed one, the $POST. You can process admin form validations for any button pressed in the Seamless Donations admin UI. The filter is validate_page_slug[page_slug_name]. For example, if a page’s slug is seamless_donations_tab_thanks, it calls the filter validate_page_slug_seamless_donations_tab_thanks.
  • Changed the naming convention for all admin callbacks. Prior to 5.0, admin pages were previously of the form seamless_donations_admin_[name] and, as of 5.0, are now of the form seamless_donations_tab_[name]. Therefore any callback that would have used the slug seamless_donations_admin_[name] must now use the slug seamless_donations_tab_[name].
  • Fixed issue in Basic Widget Pack where a crash was caused when deactivating Seamless Donations itself. Other Seamless Donations add-ons did not have this problem.


  • Fixed a typo (an extra slash) introduced in 4.0.22. Thanks again, Jacob!


  • Incorporated fixes from user Rachel3004 (Jacob) for PayPal’s apparent deprecation of fsockopen.


  • Added PayPal TLS test results to Settings panel
  • Removed option to see obsolete IPN


  • Tweak that might help some very out-of-date users update more successfully.
  • Tweak to PayPal arguments to provide better plugin support


  • Minor update to add new support information and notice


  • Minor update to improve TLS compatibility with PayPal
  • Added an option (that should probably never be used) to turn on legacy SSL for PayPal transactions


  • Added processing mode entry to log
  • Fixed spurious blank IPN log entries
  • Fixed bug that wrote incorrect IPN to log entries
  • Fixed nasty little bug introduced in 4.0.16 that substantially slowed processing by calling both IPN handlers on every page


  • Required update for PayPal https IPN compatibility
  • Added https verification and notification code to PayPal section in preparation for PayPal security update
  • Added https-compliant IPN URL to PayPal settings section in preparation for PayPal security update
  • Added helpful note to Host Compatibility Options section


  • Added Donations This Month widget
  • Added failover PayPal security option with cURL TLS support
  • Added new Host Compatibility Options section in settings
  • Added host compatibility option and mechanism to process form data via initiating page or post rather than external PHP file
  • Added host compatibility option and mechanism to bypass nonce validation for those hosts who break nonces on form submission
  • Added host compatibility option and mechanism to generate unique transaction IDs in JavaScript rather than at the host
  • Added nicer styled beta labels
  • Added versioning to transaction IDs
  • Added option to obscurify donor names shown in logs
  • Donor names in logs now default to obscurified names unless otherwise turned off
  • Modified YouTube tutorial video in main admin panel to resize responsively
  • Changed name of main Debug Mode section to Debug Options
  • Fixed a bug where UK Gift Aid selection was not being recorded. Unfortunately, the data wasn’t actually written to any transaction logging due to a code typo, so there’s no pre-existing gift aid data available for recovery.


  • Update fixing PayPal chatback bug.


  • On the donor detail page, each donation now shows as Yes or No depending on whether the donation was made anonymously
  • On the donor detail page, each donor’s overall anonymity flag is displayed under the address
  • Donor records now have an internal overall anonymity flag. If a donor ever specified anonymity in any donation, that donor’s record is flagged as anonymous (even if the donor doesn’t ask for anonymity in other donations)
  • The cross-reference rebuild option in the Settings Debug Mode now also rebuilds the anonymity indexes


  • Clicking into a fund now displays a list of donations for each fund
  • Added a new Settings option to Debug Mode that allows users to rebuild the cross-reference index
  • New update to Spanish translation, courtesy David Chavez
  • Added a helpful prompt guiding users to the PayPal video tutorial and another to remind users to switch email addresses when moving from Sandbox to Live mode
  • Implemented important architectural change in funds, so donations and funds now cross-index
  • Implemented cross-reference rebuild function for funds and donors, so databases can be reindexed if necessary
  • Implemented an internal stored running total for funds and donors for performance
  • Modified license check code to provide details to error log
  • Refactored the donations.php file to make it easier to maintain
  • Renamed some donations functions from ‘transient’ to ‘transaction’ for accuracy
  • Added a new ‘seamless_donations_admin_settings_before_tweaks’ action that allows placing items on the Settings tabs before the lower-priority tweaks and debugging elements
  • Fixed bug where funds showed unsupported post-related options that could cause breakage


  • Added helpful upgrade notes
  • Added dgx_donate_thank_you_email_body hook. This works with the legacy text-only mailer, takes in body text of email and returns back a possibly modified body text
  • Minor bug fix


  • Fixed another bug in repeating donations


  • Added Add-ons and Licensing tabs, along with full licensing and premium extensions support
  • Added a new beta tweak to Settings tab that tucks Donations, Funds, and Donor custom post types under the Seamless Donations menu
  • Added Portuguese translation (thanks to Daniel Sousa)
  • Added Singapore as a country requiring a postal code
  • Fixed initial display of postal code for countries other than US, CA, UK
  • Fixed bug on Donations and Donors list page where “Add New” was an available option. You can only add donations through the shortcode


  • Added support for GoodBye Captcha spam-blocking plugin
  • Fixed bug limiting notification emails to one email address
  • Fixed other minor and potential bugs in the code


  • Fixed bug in repeating donations


  • Added a transaction audit database table that replaced the unreliable transient data system.
  • Rewrote payment initiation system. Payments no longer are initiated by JavaScript running on visitors’ browsers, but by a PHP script running inside the plugin on the server.
  • Added new shortcode extensibility system.
  • Added a debug mode checkbox to the Settings panel.


  • Public beta release only


  • Beta release only


  • Fixed fatal bug introduced in 4.0.2


  • Added Spanish translation (thanks to David Chávez) and French translation (thanks to Etienne Lombard).
  • Added new Form Tweaks section to Form Options, with an option to enable Label Tags. This may improve form layout for some themes, particularly those where vertical form field alignment needs improvement.
  • Added an indicator comment in the form code to allow inspection to determine the version of the plugin that’s currently running.
  • Fixed bug in legacy export code introduced in 4.0. Unnecessary mode check caused the routine to fail.
  • Fixed bug where getting the plugin version number failed internally in some instances.


  • Added German translation
  • Fixed problem with Windows servers and long path names
  • Fixed multiple currency-related bugs: be sure to re-save your settings for this fix to take effect
  • Fixed the giving level filter
  • Fixed “undefined index” error
  • Fixed bug where default fields didn’t default properly
  • Fixed overly oppressive field sanitization


  • Major update
  • Added updated, modern UI
  • Funds and donors have now been implemented as custom post types.
  • Designed for extensibility with support for wide range of hooks
  • Array-driven forms engine
  • Translation-ready


  • Added update notice warning and splash so current site operators can have some warning before the new 4.0 version lands. Also added MailChimp subscribe form to main plugin page.


  • Officially adopting the plugin and beginning support by David Gewirtz as new developer


  • Officially marking this plugin as unsupported and putting it up for adoption


  • Updated: Seamless Donation news feed updated to point to
  • Fixed: Corrected variable name to resolve PHP Warning for formatted amount that would be displayed on sending a test email
  • Fixed: Corrected variable name to resolve PHP error for new donation created from PayPal data


  • Tested with WordPress 4.1


  • Changed PayPal IPN reply to use TLS instead of SSL because of the POODLE vulnerability
  • Changed PayPal IPN reply to better handle unexpected characters and avoid IPN verification failure – props smarques


  • Fixed: Don’t start a PHP session if one has already been started – props nikdow and gingrichdk


  • Fixed: Unwanted extra space in front of Add me to your mailing list prompt


  • Added Currency Support: Brazilian Real, Czech Krona, Danish Krone, Hong Kong Dollar, Hungarian Forint, Israeli New Sheqel
  • Added Currency Support: Malaysian Ringit, Mexican Peso, Norwegian Krone, New Zealand Dollar, Philippine Peso, Polish Zloty
  • Added Currency Support: Russian Ruble, Singapore Dollar, Swedish Krona, Swiss Franc, Taiwan New Dollar, Thai Bhat, Turkish Lira


  • Added: Occupation field to donation form and to donation detail in admin
  • Added: Employer name to donation detail in admin
  • Added: Employer and occupation fields to report


  • Added: More control over which parts of the donation form appear


  • Added: Filter for donation item name
  • Added IDs for form sections to allow for more styling of the donation form


  • Fixed: A few strings were not properly marked for translation.


  • Fixed: Bug: Removed unused variable that was causing PHP warning


  • Fixed: Bug: Was using admin_print_styles to enqueue admin CSS. Switched to correct hook – admin_enqueue_scripts


  • Added: Gift Aid checkbox for UK donors
  • Fixed: Bug that would cause IPN notifications to not be received


  • Added: Optional employer match section to donation form – props Jamie Summerlin
  • Fixed: Javascript error in admin on settings page


  • Fixed: Don’t require postal code for countries that don’t require postal codes
  • Fixed: International tribute gift addresses were not displaying country information in donation details


  • Added: Support for non US currencies: Australian Dollar, Canadian Dollar, Euro, Pound Sterling, and Japanese Yen


  • Added: Support for specifying name for emails to donors (instead of WordPress)
  • Added: Automatic textarea height increase for email templates and thank you page
  • Fixed: Bug that would allow invalid email address to cause email to donor to not go out (defaults to admin email now)


  • Added: Support for donors located outside the United States


  • Added: Support for repeating donations
  • Added: Support for loading scripts in footer
  • Added: Greyed out donate button on click
  • Added: Prompt to confirm before deleting a donation in admin
  • Added: Seamless Donations news feed to main plugin admin page
  • Added: Help/FAQ submenu
  • Added: Replaced main admin page buttons with Quick Links
  • Added: Display of PayPal IPN URL in Settings
  • Added: More logging to PayPal IPN for troubleshooting hosts that don’t support fsockopen to PayPal on 443
  • Fixed: Bug in displaying thank you after completing donation
  • Fixed: Changed admin log formatting to make reading, cutting and pasting easier
  • Fixed: Major update to admin pages code in support of localization


  • Added support for designated funds
  • Fixed: A couple warnings when saving changes to thank you email templates.


  • Fixed: Cleaned up warnings when run with WP_DEBUG


  • Fixed: Changed form submit target to _top most window (in case theme places content in iframes)
  • Fixed: Updated plugin URI to point to


  • Automatically trim whitespace from PayPal email address to avoid common validation error and improve usability.


  • Changed mail function to use WordPress wp_mail instead of PHP mail – this should help avoid dropped emails


  • Added the ability to export donation information to spreadsheet (CSV – comma separated values)


  • Added a setting to allow you to turn the Tribute Gift section of the form off if you’d like


  • Added the ability to delete a donation (e.g. if you create a test donation)


  • Rolled back change in 2.1.6 for ajax display due to unanticipated problem with search


  • Added ajax error display to aid in debugging certain users not being able to complete donations on their sites


  • Changed plugin name to simply Seamless Donations


  • Added logging, log menu item and log display to help troubleshoot IPN problems


  • Changed PayPal cmd from _cart to _donations to avoid donations getting delayed


  • Removed tax deductible from donation form, since not everyone using the plugin is a charity


  • Added missing states – AK and AL – to donation form
  • Added more checks for invalid donation amounts (minimum donation is set to 1.00)
  • Added support for WordPress installations using old-style (not pretty) permalinks
  • Fix bug that caused memorial gift checkbox to be ignored


  • Added new suggested giving amounts
  • Now allows you to choose which suggested giving amounts are displayed on the donation form
  • Added ability to change the default state for the donation form


  • Initial release to WordPress.Org repository