Beginner's Guide for WordPress - Start your WordPress Blog in minutes.
Choosing the Best
WordPress Hosting
How to Easily
Install WordPress
Recommended
WordPress Plugins
View all Guides

How to Create a Donate Form for Nonprofit Organization using WordPress

Last updated on by
Elegant Themes
How to Create a Donate Form for Nonprofit Organization using WordPress

In the past we have shown you how to add a PayPal donate button in WordPress. When working with a non-profit, just the donate button is not sufficient. They want to have a page with a video, their mission statement, and a donate form that they can use to collect payments. In this article, we will show you how to create a robust donate form for Nonprofit organizations using WordPress. This donate form will allow the user to pick an amount, choose whether it is recurring or one-time, add payment (you choose between Auth.net or PayPal), and add donors to a special email list.

To create something as robust is this, you either need a lot of coding knowledge, or you need Gravity Forms. While we could have hard coded the form, we wanted to give our client the ability to change things around in the future as easily as possible. Therefore, we decided to stick with the Gravity Forms plugin. Note: You will need the Developer version if you wish to use Auth.net and PayPal payment gateways. (Gravity Forms Coupon if you haven’t bought it already).

First thing you need to do is install and activate Gravity Forms along with the following add-ons (MailChimp, and PayPal or Auth.net). Next, you need to configure each of these add-ons which is fairly easy. For auth.net you need the API and transaction key, for PayPal you need to turn on some settings, for MailChimp you need the API.

Next, you need to setup a SSL Certificate because it is required by Auth.net. Use the plugin WordPress HTTPs. The cheapest SSL certificate we found was $12.99 / year. Ask your host if they already have a SSL Certificate available for you. Some do provide SSL Certificate with the hosting account (for example. HostGator Business Plan use coupon “wpbeginner” to start for $0.01 for the first month).

Now we are ready to create the form. Gravity Forms make this process a piece of cake with their drag-drop interface. We added a Pricing Field (Product) radio button for donation amounts (we gave 5 options $25, $50, $100, $500, $1,000). We added another radio button to decide the frequency of payments whether it will be one-time or monthly recurring.

Gravity Forms Donate Amount and Frequency

From the advanced field section, we added the name field, email field, phone field, and the address field.

Gravity Forms Advanced Field - Contact Info

From the Pricing Fields, we added the Credit Card field. You don’t need to add Credit Card field, if you are using PayPal.

Gravity Forms Credit Card Field

Next, we added a checkbox to add the donor’s email to our special email list. This is a simple checkbox with one value that says “Yes, I would like to receive updates from XYZ organization”. We decided to use MailChimp for our client, but you can do this with Aweber and Campaign Monitor as well because Gravity Forms have add-ons available.

Now that you have the form created, we need to integrate the Payment Methods and MailChimp to our form.

Go to MailChimp option under Gravity Forms and click Add New. It asks you to specify which MailChimp list you want. Select the one that you want to add the emails to. Then it asks you to select which form you want this in, so select the form name. Next you need to Map the fields. So for Email Address, get your form field Email. For name, get your form field name. Make sure to Enable opt-in condition so it says Export If is Yes, I would like like to… If your MailChimp list has groups, then you can select groups as well. Don’t forget to double opt-in to comply with MailChimp’s policies.

Go to PayPal option under Gravity Forms and click Add New. Enter your PayPal email address, mode will be production, enter transaction type (donation), and gravity form. Map your fields such as customer name, email, address etc. Select the options that you want. Enable PayPal Condition and say If Frequency is One-time use this form. Then repeat this whole process again except change transaction type to subscriptions, enter the Recurring amount to be Donation Amount, billing cycle should be 1 month, and recurring time should be infinite (Basically until the user cancels). Fill in the rest of the fields and then enable PayPal condition to say If frequency is recurring. Save and you are good to go.

For Auth.net the process is the same as PayPal, so follow that.

Once you are done go to Pages. Create a new page called donate. Embed a Video, add text below it or above it, and then simply add the Gravity Forms using the icon next to Add Media icon.

And you are done. You just created a robust donate form for nonprofit organization using WordPress. Let us know if you have tips and tricks to improve on this method.


Editorial Staff at WPBeginner is a team of WordPress lovers led by Syed Balkhi. Page maintained by Syed Balkhi.

WPBeginner's Video Icon
Our HD-Quality tutorial videos for WordPress Beginners will teach you how to use WordPress to create and manage your own website in about an hour. Get started now »

Comments

  1. Yan says:

    Hi there-
    I just purchased the developers version and I’m trying to build the form, but I can’t see the “Credit Card” field on the Pricing section. What did I do wrong? I really need that field for my donation form.
    THanks

    PS- the coupon in this post doesn’t work. I still paid full price :(

  2. Greg says:

    Hello

    Are Auth.net and PayPal payment gateways the only ones that will work with Gravity Forms?Trying to set up a donations page and the client currently uses LinkPointCart for their payment gateway…Can Gravity Forms be used with Link Point Cart? Any advice you can provide would be appreciated. Thanks

  3. Julia says:

    This has been fantastically helpful. Thank you so much for sharing.

  4. Sarah Khan says:

    I set it up this way and have transferred to a new domain name. The monthly donors from the old domain are getting error messages. Is this an issues I should fix with PayPal and Authorize.net? Or with gravity forms? I appreciate any insight you can provide. Thanks in advance :)

  5. Reginald says:

    Hi WPBeginner!

    Man great post. This reminds so much when I wanted to start a crowdfunding website with WordPress. I paid a hefty price for that at that time and man, ended up my partner took over for good.

    Thanks for sharing the lovely plugin as I might be able to use on my new site :)

    Reginald

  6. Barry Zickuhr says:

    Absolutely brilliant article. I was able to take this from square one to up and running in a matter of an hour and a half. THANKS!

  7. Umesh says:

    Hi,

    I am using Gravity form and Paypal pro add-on to get the donation form working. It works fine but the question I have is, why the payment notification received from paypal does not include Address info that I have in my form?

    Any suggestions would be a great help.

    Thanks!

    • Editorial Staff says:

      If I’m correct, then the address information doesn’t transfer to PayPal. Probably best to ask this in Gravity Forms support forums.

  8. ruyn13 says:

    Using a custom form like this, is there a way to log the donations for registered and logged in users and then allow them to see their past donations in the front-end?

    • Editorial Staff says:

      Interesting idea. It’s possible, but not out of the box. You would have to store the donation amount and date somewhere in usermeta, so you can easily pull it.

      • ruyn13 says:

        Thank you for the encouraging response!

        Forgive my ignorance (I’m a recent convert from ASP.net), but how would I do that? If you came up with a great solution and wrote an article on it, it would be pretty popular. I know that on the WordPress.org site many people are looking for some way to add a donation history. It’s a common enough complaint on the various donation plugins out there. It would be even better if the admin had the ability to add donations made by phone or check to a user as well.

      • ruyn13 says:

        Just a thought, but could someone make this form generate a post to a custom post type and log donations that way (again, I’m a beginner, so I don’t know for sure)?

  9. Simon says:

    Hi. I am wondering about setting up the frequency buttons. Do I do that in the pricing fields or somewhere else? Thanks for this. It is just what I was looking for.

    • Editorial Staff says:

      To do that, you actually have to set it up first in the PayPal add-on or authorize.net add-on. Setup two separate payment types. One as recurring the other as one-time payment. Then you would have to configure the conditionals properly. It was a bit complicated, but there is no easy way to do that. Basically, setup the two radio buttons for frequency. Then in your payment add-on load the specific one based on the radio conditional. Hope this helps.

  10. Rod says:

    Could you add a field to specify a fund?

    • Editorial Staff says:

      If you mean add an other field and let user enter the amount. Yes you can. You have to use a conditional feature that Gravity Forms have.

      • Rod says:

        Actually a text field specifying which fund to collect the money and then bring that through authorize.net or have a record of what they wanted and the dollar amount.

        • Editorial Staff says:

          Yes you would need to use Gravity forms text field. But then only open it conditionally when the user checks the radio button other. Then specify in Authorize.net add-on for Gravity forms that this particular field is also a payment amount field.

  11. Bryan Chalker says:

    Thanks so much for this tutorial. Perfectly clear and absolutely essential for the client I had.

  12. Sam says:

    Hi Syed, thanks for the tip. This help out a great deal.

    I was wondering if you could tell me how to add a field that will allow for a potential donor enter any amount they want while still having the checkboxes or radio buttons?

    Thanks.

    • Editorial Staff says:

      Hey Sam,

      Yes that is possible. In Gravity Forms, add an option called Other in your radio buttons. Then create a new text field. When you click on the advanced tab in GF, you will see the checkbox to enable Conditional Logic. Then show that field only when the user clicks the other option. Also make sure that your payment option is taking that into account. Basically it is just a bunch of conditional logics.

      • Sam says:

        Thanks so much. I got it to work nicely. I’ve run into another small issue though. In creating the other amount and selecting recurring amount, I’m not able to get it to redirect to Paypal. I can get the single payment and other donation amount to work nicely, but the minute I select recurring amount with other payment, it fails.

        You can view the donation form for Thinking Forward here.

        I look forward to hearing from you.

        • Editorial Staff says:

          Hey Sam, really not sure what the issue would be. We used Authorize.net platform on the donation example. You will probably get a better answer at Gravity Forms support forum.

  13. hollywood_cat says:

    Heard a lot of good things about Gravity Forms.  Was wondering if it attracts a lot of spam as most forms seem to.  The only one I have used which doesn’t is Fast Secure Contact Form but I am pretty sure it doesn’t integrate with PayPal which is a shame.

    • wpbeginner says:

       @hollywood_cat No particular form attracts SPAM. It is your site that does. If you put proper SPAM protection (such as captcha, or honeypot) then it will be fine. Gravity Forms have both options.

  14. MarkStanwyck says:

    I see that you need SSL Certificate because it is required by Auth.net, but do you need one if you are going to use PayPal?

    • wpbeginner says:

       @MarkStanwyck No if you are using PayPal, you don’t need it.

      • MarkStanwyck says:

         @wpbeginner Thanks. Do you have to use the WordPress HTTPs plugin or could I just have Go Daddy install the certificate and be good to go?

        • wpbeginner says:

           @MarkStanwyck Because the page lives on WordPress, the https plugin must be installed to force https on that page.

        • MarkStanwyck says:

           @wpbeginner Got it. I was just surprised to see that the plugin only had 82 reviews. I thought if it provided such critical functionality than it would be more popular.

        • wpbeginner says:

           @MarkStanwyck The newest version of HTTPs is extremely unstable. We recommend using 2.0.4 << that is the last stable version that we found is working. As you can notice, that the current version is being reported by so many.

        • MarkStanwyck says:

           @wpbeginnerThanks! However, it look like the 3.0.1 update fixed the major issue everyone was having.

  15. JeroenOnstenk says:

    Is it possible to use this work around for multiple non-profit organizations on one WordPress website? So create for each organization a separate donation form?

    • wpbeginner says:

       @JeroenOnstenk Yes it is possible as long as you are on the only admin managing it (a lot of confidential information goes in the backend). 
       
      Also the domain name must be generic as well… otherwise the users would wonder why they are on an off-site domain name to give donation. You would also need to have a homepage explaining why they are on the site… You can create a specific page template for each organization with their logos.  

  16. thewebmasterblogs says:

    Thanks. I was looking for this for my other site.Just one question though, for this to work, do I have to use Gravity Forms? Won’t some other contact form plugin like Contact Form 7 do the trick? 

    • wpbeginner says:

       @thewebmasterblogs Unless they have an Authorize.net extension/add-on it will not be as easy. However, it is certainly do-able by coding an extension for it.

      • shumail says:

         @wpbeginner  @thewebmasterblogs Can I use this with 2Checkout.com to take donations ? 

        • wpbeginner says:

           @shumail  @thewebmasterblogs It won’t work with Gravity Forms because they do not have that add-on.

  17. zimbrul says:

    Can’t believe that: I was looking for something like that for a website I’ve built for a baby with a genetic disorder called Epidermolysis bullosa dystrophica. I asked the guys at Gravity Forms how to do this but couldn’t get a “step-by-step” guide. I.m going to implement this on the site in discussion.

  18. 906graphics says:

    Our current donation area operates on the Django framework. I’ve heard from our developer that if we switch the rest of the site to WP, that’s OK—but don’t move the secure donation area from Django because it’s more secure than WP will ever be. What are your thoughts?

    • wpbeginner says:

       @906graphics Total BS… You are not storing any data on your end. You are merely transferring the information over a SECURED connection to Authorize.net … You can get a real high quality SSL certificate but that’s it… its pretty much a page with a form on it. I’d like to know why is running on Django so much more secure… because I don’t see anything..

Add a Comment

We're glad you have chosen to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and all links are nofollow. Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.