Skip to content
GPLWP Guides

How to accept donations on a WordPress site

Forms Time About 30 minutes 6 steps Updated 5 Sep 2026

FORMS
The short answer

For a simple one-off donation page, add a PayPal Donate button or payment link to WordPress. If you need card payments, recurring donations, donor records and receipts, use a donation plugin connected to Stripe, PayPal or another supported gateway.

The route
  1. 01Choose the payment setup
  2. 02Prepare your payment account
  3. 03Add the simple manual option
  4. 04Install and configure a plugin
  5. 05Set recurring and confirmation options
  6. 06Test before publishing

What you need

  • A WordPress site with HTTPS enabled
  • A PayPal, Stripe or other supported payment account
  • Admin access to WordPress
  • Your donation amounts, currency and confirmation message

Choose the payment setup

Use a PayPal Donate button or payment link if you only need a basic way for visitors to send money. This is the quickest route and does not require a donation plugin, but PayPal handles most of the donor experience and you will have limited form fields, reporting and recurring-donation controls.

Use a donation plugin when you need credit-card payments, recurring gifts, donor records, receipts, campaign forms or exports. Payment gateways process the money; WordPress does not send funds to your bank account by itself.

Prepare your payment account

Set up the payment account before building the form. Confirm that the account can receive donations, that your currency and country are supported, and that the account is ready for live payments. Keep test and live credentials separate.

Enable HTTPS on the whole site, not just the donation page. A missing or misconfigured SSL certificate can produce browser warnings and stop payment scripts from working correctly.

Add the simple manual option

For a PayPal-only setup, create a Donate button or donation link in your PayPal account, then copy the supplied URL or button code. In WordPress, edit the donation page and add a Buttons block, then paste the payment URL into the button. WordPress buttons are link-style controls, so this works without a donation plugin.

This route is fine for a small site collecting occasional one-off gifts. It becomes awkward when you need a custom amount field, recurring options, donor consent, automated receipts, a donor database or payments from more than one gateway.

Install and configure a plugin

For a full donation form, install a maintained donation plugin from Plugins → Add New, then create a donation form with preset amounts, a custom amount option, donor name and email fields, and a clear explanation of what the gift supports. GiveWP, for example, provides donation forms, payment-gateway settings and a block for placing an existing form on a page.

Connect the gateway account, select the currency, enable the gateway under the plugin's payment settings, and check that it is enabled for the specific form. A gateway can be connected correctly but still be missing from the public form if it has not been enabled globally or per form.

Set recurring and confirmation options

If you accept monthly or annual gifts, enable recurring donations in the form and use a gateway that supports recurring payments. Do not assume every gateway shown in the settings supports subscriptions; some form builders only display compatible gateways for recurring donations.

Set the receipt email, return or confirmation message, privacy notice and any optional marketing consent separately. Keep the donation confirmation focused, and do not promise tax deductibility unless your organisation is legally entitled to provide it.

Test before publishing

Run a complete test on a phone and desktop. Check the amount, currency, donor email, confirmation page, receipt, payment status in the gateway dashboard and donation record in WordPress. Use the gateway's test mode where available, then switch to live mode and make a small real payment if your organisation's procedures allow it. GiveWP documents a test mode for checking the donation process before going live.

If a payment stays pending, the gateway webhook or PayPal IPN may not be reaching WordPress. Also check caching, security rules, redirects, blocked AJAX requests and country or currency mismatches. A form can appear to work while the payment succeeds but the donation record never changes to complete.

The fast route

Let Give do it

Braintree integration for Give with credit cards, PayPal, and recurring donations; suited to nonprofits already using Give.

Get Give

Sources

  1. wordpress.org /support/topic/accepting-payments-as-donations/?utm_source=o…
  2. wordpress.org /plugins/give/?utm_source=openai
  3. wordpress.org /documentation/article/buttons-block/?utm_source=openai
  4. wordpress.org /support/topic/what-is-the-procedure-to-link-my-bank-account…
  5. givewp.com /addons/recurring-donations/ref/939/?utm_source=openai
  6. givewp.com /documentation/page/22/?utm_source=openai
  7. wordpress.org /support/topic/your-donation-could-not-be-processed-please-r…

Questions

Can I accept donations in WordPress without a plugin?
Yes, you can accept simple one-off donations without a plugin by adding a PayPal Donate button or payment link to a WordPress Button block. The limitation is that WordPress will not provide a proper donor database, recurring-donation controls, campaign reporting or advanced receipts. Choose this route for a small site with basic payment needs, not for a growing fundraising operation.
Do I need Stripe or PayPal to accept donations?
Usually, yes: you need a payment processor or gateway to authorise the card or wallet payment and transfer the funds to your organisation. A WordPress donation plugin manages the form and donation records, but it does not replace the payment account. GiveWP documentation describes connecting payment gateways and enabling them in the plugin settings before they appear on forms.
Why is a donation marked pending after the donor paid?
A pending donation often means the payment gateway's webhook or PayPal IPN did not reach WordPress. Check the gateway connection, webhook or IPN configuration, HTTPS, caching, firewall rules, redirects and blocked AJAX requests. Also confirm that the gateway supports the selected currency and country. The payment may have succeeded in the gateway while WordPress failed to receive the notification that completes the donation record.
Can donors make recurring donations?
Yes, but recurring donations require a gateway and donation setup that support subscriptions. Enable the recurring option in the form and verify that the selected gateway supports the frequency you offer. Do not enable monthly or annual giving based only on the presence of a recurring setting; incompatible gateways may be hidden or may fail during checkout.
Which plugin is suitable for a full donation form?
Give is a suitable option when you need dedicated donation forms, donor records, payment-gateway connections and recurring giving. The Give – Braintree Gateway extension is particularly relevant if your organisation uses Give and wants Braintree for credit cards, PayPal and recurring donations. Configure and test the gateway separately before sending visitors to the live donation page.