If you’ve landed on this Lab Note because you have a big red and black error message in Seamless Donations, you’re in the right place. Answers and guidance will be provided below.
Background
In early 2015, tens of thousands of nonprofits worldwide were faced with losing their funding due to the impending shutdown of Seamless Donations. In an effort to save the good works produced by these nonprofits, I adopted the project from its original developer, and have been continually enhanced its fund-raising capabilities and security features ever since.
Since the time of adoption, I’ve produced in excess of fifty updates, both major and minor. If you are getting the error message mentioned above, YOU ARE MORE THAN FIFTY UPDATES BEHIND.
No update was more major than the transition from Seamless Donations 3.x (the version created by the original developer) and Seamless Donations 4.x (my first major update).
In order to support added flexibility, more data models, better integration with WordPress itself, and added security elements, the data structure of Seamless Donations changed considerably.
But, in order to make sure that the thousands of nonprofits who were using Seamless Donations before I started maintaining it did not experience interruption, I kept all of the previous author’s legacy code in the plugin. A secondary benefit was that code enabled legacy users to migrate to the 4.x and now 5.x versions of the plugin in one step.
WordPress.org security requirement
At the end of October 2020, I received instructions from the WordPress plugin repository informing me that the legacy code in Seamless Donations had been flagged as a potential security risk. I was instructed to remove it as soon as possible and institute a few other security practices they strongly recommended.
Removing that legacy code eliminates the ability for very old sites that never upgraded to upgrade using the current version (or future versions) of the plugin. Effective with the 5.1 version of Seamless Donations, the legacy code has been removed. Even though 5.1 adds few new user-facing features, the legacy code removal is such a big step, it warranted a full point release.
To migrate ancient Seamless Donations installations to the modern environment, you’ll need to follow a slightly less intuitive sequence of steps. That’s described below.
Migrating from 3.x Seamless Donations installations
Let’s start with a big warning: this migration could break a lot. Five years is a long time and I didn’t write the original code you’ve been running all this time. So your first step must be a backup.
There are a bunch of ways to backup your WordPress installation, but if you’ve never done it before, here’s a quick explainer. Do it! Do not come complaining to me if you break your site and you can’t restore it. I can’t help you.
Next, deactivate and delete the version of Seamless Donations that gave you the error message telling you your data was out of date. Don’t worry. No data will be touched.
Now go to the Seamless Donations -> Advanced page on the WordPress repository. Scroll down to the very bottom, where it says “Please select a specific version to download.” From the pop-up menu, select version 4.0.6. Download it. Go into your Plugins dashboard page, select Add New and then upload plugin. Activate Seamless Donations version 4.0.6 in your plugins dashboard.
Be sure to watch this quick overview video next.
At this point, you should run the upgrade as specified in the video. Click “Let’s do this upgrade.”
Make another backup.
Now, you should be ready to upgrade to the most current version of Seamless Donations. You’ll need to do this because the 4.0.6 version you downloaded has a number of security risks and is no longer compatible with modern PayPal. Also, there have been a ton of awesome features added across the 50+ updates since that version.
You should now be able to activate the newest and most current version of Seamless Donations. The only remaining thing you will need to do is find the page or post with your donation form and replace the [dgx-donate] shortcode with [seamless-donations].
And then you should be good to go.