This guide walks you through creating a donation form in WordPress, from choosing a plugin to embedding the form on your site. You’ll learn how to set up donation amounts, payment gateways, and thank-you messages, so you can start accepting contributions quickly and securely.
What You’ll Need
- A self-hosted WordPress site (wordpress.org) with admin access. WordPress.com free plans don’t allow plugins.
- A payment gateway account: PayPal Business or Stripe (most common). You’ll need the API keys or email address associated with the account.
- A plugin for forms. The steps below use WPForms (free version works for basic donations), but the process is similar for other form plugins like Formidable Forms or Gravity Forms.
- An SSL certificate on your domain (most hosts include it free). This encrypts donor data and is required by Stripe.
Step-by-Step
- Install a form plugin. In your WordPress admin, go to Plugins > Add New. Search for “WPForms”, click Install Now, then Activate.
- Create a new form. After activation, go to WPForms > Add New. Name it “Donation Form”. You’ll see a template selection screen; choose the “Donation Form” template if available (or start with a blank form).
- Add donation amount fields. The template usually includes a Dropdown for amounts (e.g., $10, $25, $50, $100) and a “Other” option. If not, drag the Dropdown Items field from the left panel to the form. Edit the choices to your desired amounts. Add a Number field for custom amounts if you want donors to type any amount.
- Add donor details fields. Drag in Name and Email fields (or use the template’s). Make them required by clicking each field and toggling “Required”.
- Configure payment settings. Click on the Payments tab in the form builder. Choose “Stripe” or “PayPal Standard”. For Stripe, click “Connect to Stripe” and follow the prompts to link your Stripe account. For PayPal, enter your PayPal email address.
- Set up the payment amount. In the payment settings, you’ll see “Payment Amount”. Select “Form Field” and choose the dropdown field that contains the donation amounts. This ensures the amount matches the donor’s selection.
- Customize the thank-you message. Go to Settings > Confirmations. Edit the confirmation message (e.g., “Thank you for your generous donation!”). You can also redirect to a custom “Thank You” page by selecting “Go to URL” and entering the page link.
- Enable notifications. Go to Settings > Notifications. By default, you’ll get an email when a donation is made. You can change the recipient email and subject. Also add a notification to the donor by clicking “Add New Notification” and setting the “Send To” to the Email field from your form.
- Embed the form on a page. Click the Embed button at the top of the form builder. Choose “Create New Page”, name it “Donate”, and click “Let’s Go!”. WordPress will create a page with the form embedded. Publish the page.
- Test the form. Visit the page on your site and submit a test donation using a small amount (e.g., $1). Use Stripe’s test mode or PayPal sandbox if available. Confirm you receive the notification email and the payment appears in your gateway account.
Common Mistakes
- Not testing with a real transaction. Always test with a small amount to ensure the payment gateway is correctly connected.
- Forgetting to set the payment amount to the form field. If you leave it as a fixed amount, every donor will be charged the same amount regardless of their selection.
- Using a free WordPress.com site. Plugins are not available on the free plan, so you need a self-hosted WordPress.org site.
- Ignoring SSL. If your site doesn’t have an SSL certificate, Stripe will not work and donors will see a security warning.
- Not making the email field required. Without a valid email, you can’t send receipts or thank-you messages.
Tips
- Use a recurring donation option if you want to accept monthly contributions. WPForms’ Stripe addon supports subscriptions, but this requires the Pro version.
- Add a “Donation Purpose” dropdown (e.g., General Fund, Scholarship) to let donors specify where their money goes.
- Keep your form short. Too many fields can reduce conversion rates. Only ask for essential information.
- Use a custom thank-you page with a message and a link to your site. This improves donor experience.
- Regularly check your payment gateway dashboard for failed payments and follow up with donors if needed.
Troubleshooting
- Payment not going through: Check that your Stripe or PayPal account is active and that you’ve entered the correct API keys or email. For Stripe, ensure your site has SSL and that you’re not in test mode (unless you’re testing).
- Form not saving: This is often a browser cache issue. Try clearing your browser cache or using a different browser. Also check if your hosting has a PHP memory limit that’s too low; contact your host to increase it.
- Donation amount shows $0: Make sure the payment amount in the Payments settings is set to “Form Field” and that the dropdown field is correctly selected. Also ensure the dropdown values are numeric (e.g., 25, not $25).
- Emails not being sent: Check your WordPress email settings. Install a plugin like WP Mail SMTP to configure a proper SMTP server. Also check your spam folder.
- Form not displaying correctly: Try embedding the form using a shortcode instead of the block. Copy the shortcode from the form builder and paste it into a Shortcode block on the page.
Frequently Asked Questions
Can I create a donation form without a plugin?
Yes, but it’s not recommended. You could use a service like PayPal’s donation button and embed the HTML code, but you lose the ability to customize fields and manage donor data within WordPress. A plugin gives you more control and better integration.
Which payment gateway should I use?
Stripe and PayPal are the most common. Stripe is great for credit card payments and has a modern dashboard. PayPal is widely recognized and allows donors to pay with their PayPal balance. Choose the one that your audience is most comfortable with.
Is it possible to accept recurring donations?
Yes, with WPForms Pro or other premium plugins, you can set up subscription payments. The free version only supports one-time donations. If you need recurring, consider upgrading or using a dedicated donation plugin like GiveWP.
How do I add a custom donation amount?
Add a Number field to your form and label it “Custom Amount”. Then, in the payment settings, you can set the payment amount to that field instead of the dropdown. Alternatively, you can include an “Other” option in the dropdown that reveals a text field (some plugins support this).
Can I use the donation form on a page builder like Elementor?
Yes, most form plugins provide a shortcode or a widget for page builders. In Elementor, you can drag a Shortcode widget and paste the form’s shortcode. Or use the WPForms widget if available.
How do I send a receipt to the donor?
Set up a notification that sends to the donor’s email. In the notification settings, set the “Send To Email” to the Email field from your form. You can customize the subject and message to include the donation amount and a thank-you note.
Related
Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.
More cards in this drawer
- Kick an Uma Codes? Meaning & Use
- Google Forms as Expense Tracker: Step-by-Step
- Wi-Fi Name Exposes More Info Than You Think?
- GBP to INR Business Payments: Bank vs Fintech vs FX Broker1,049,725.00 INR
- Evaluate Claude for Enterprise Workloads: Checklist
- Smart Lock Modules Worth Buying Early