Hi @8persap
Thanks for that detailed rundown, for sure.
Most often when the form just spins like that it means that caching is preventing it from displaying the page to the donor, because the server is not sure that the one viewing the page is the same one that submitted the donation.
If you’re not familiar with caching, it’s a method of saving server resources by storing copies of a page or site, so that the next visitor’s visit doesn’t trigger a call to the server at all, they just get the copy that was saved.
We put together this deep dive into what caching is and how it can cause problems: https://givewp.com/documentation/resources/caching/
Caching works really well for speeding up sites, but when a saved copy of the site has sensitive information in it (like donor info) it’s important that GiveWP not share that with the next visitor.
If GiveWP is not convinced that the browser requesting the data is the correct one, it defaults to not showing the data.
Here’s what makes me confident the issue you’re experiencing today is caused by caching:
The resource that is being cached and then served to a subsequent visitor is the donation confirmation screen within the form.
(sidenote: make sure that you have a confirmation page set in the settings at Donations > Settings > General)
That’s causing GiveWP to not be able to validate that the browser viewing the site is allowed to see sensitive donor information, so instead of displaying it, it is just showing that loading icon.
In order to verify that my hypothesis is right here, we need to exclude any asset loaded by GiveWP from the cache.
Caching is handled differently on various sites and web hosts, and most of them allow for excluding specific URLs or parts of URLs from caching. At the very least, you should exclude the following slugs from caching:
/donations/
/donation-confirmation/
/donor-dashboard/
Also, the following query strings:
give-embed=donor-dashboard
giveDonationFormInIframe=1
Your host or the caching plugin/solution you are using can help with that. Some of them may require what’s called a “wildcard” like /donations/* to capture all subdirectories under the /donations/ folder.
You can also temporarily disable caching on the site to confirm that the uncached site isn’t showing the problem.
While fine-tuning cache falls outside the scope of the support we’re able to provide, your success with online donations is our number one priority, and we’re happy to provide any tips.
Thanks!