I have recently written about using Give WP for donations. The implemenation was very smooth and made for a great user experience. While I would have been happy to use Give WP, I was already using WooCommerce and did not want to introduce another plugin.
I was very excited to read Best practices for nonprofits using WooCommerce on the WooCommerce Blog and tried to implement them. I found the results to be rather clunky and not nearly as user friendly as Give WP.
One Page Checkout Extension
First, I implemented the One Page Checkout Extension. It comes with several templates. The single product template works but puts all variations into a drop-down which is not ideal for a donations page.
As a result, I selected the list template which is featured in the best practices article. The list template did show radio buttons but it did not respect the attribute order and placed the variations in order by variation ID! There is a work-around in putting in your attributes backwards but this would, of course, make the single product template show the items incorrectly.
While its great to have some pre-selected donation categories, the ability to add a custom amount is important. After all, no one wants to limit the amount of donations that can be accepted! Give WP handles custom amounts easily but WooCommerce did not quite get there.
Name Your Price Extension
I installed the Name your Price extension and immediately ran into its shortcomings. The plugin did work with the single template that is part of the One Page Checkout extension, but only after selecting it from the drop-down which seems very odd. It did not work with the product list template and never showed the text input box that would allow a donor to enter a custom amount. And if you don’t have a minimum amount set it will show up as Free!
If for some reason, the customer or donor does not check out and then adds other products to the cart, these additional products show up on the donor page that users the One Page Checkout extension. This seems confusing as the page should be dedicated just to the donation process.
Customizing the Donation Exerience
I used a few filters to modify the order button text to say “Donate Now” and the dropdown text to say “‘Choose a donation level”.
I will probably keep using WooCommerce for donations on this project as I can get the single product template to work. However, I certainly wish it was a better user experience.