plugin-icon

DonatoTomato – Nonprofit Donation Forms, Recurring Giving & Tax Receipts

Donate button + donation forms for your nonprofit's WordPress site. Gifts land in your own Stripe. Donor records + year-end statements built in.
Version
1.4.11
Zuletzt aktualisiert
Aug 8, 2026
DonatoTomato – Nonprofit Donation Forms, Recurring Giving & Tax Receipts

Add a donate button or an embedded donation form to your nonprofit’s WordPress site with no code. Donors give once or start a monthly gift, and donations go straight into your own Stripe account, with automatic tax receipts. Your connected account also includes donor records, fundraising accounting, and year-end tax statements at no extra cost. There is a flat 1% platform fee on top of Stripe’s standard payment processing, and no monthly fee.

DonatoTomato is operated by Dev1 Consulting LLC, a US company. Donations are processed through Stripe Connect and land directly in your nonprofit’s own Stripe account, so your organization is the merchant of record and we never hold your funds.

This plugin is open source (GPL-2.0-or-later) with full, unminified source published on GitHub. Nothing is hidden, and no third-party tracking libraries are bundled in.

Before you start: the plugin connects to a free DonatoTomato account where your campaigns and payments live. If you don’t have one yet, you can create it (about 2 minutes) right from the plugin’s setup screen, then paste your Organization ID into the plugin and you’re done. Want to see the donation form working first? There is a live demo on the DonatoTomato homepage, no sign-up required.

DonatoTomato is a donation platform built for US nonprofits. Accept one-time and recurring donations through an embeddable donation form, with automatic tax receipts, donor management, and a flat 1% platform fee on top of Stripe’s standard processing (no monthly cost).

Three ways to add donations to your site:

  • Floating Donate button (new in 1.3.0): admin-configured, appears on every page automatically. The simplest path.
  • Inline widget: embed the donation form directly on a page (shortcode or Gutenberg block)
  • Donate button block: drop a button anywhere on your site (nav, hero, footer) that opens the donation form as a pop-up

Features:

  • Site-wide floating Donate button: pick a campaign, label, color, size, shape, position; live preview in admin
  • Per-page exclusion list: hide the floating button on legal pages, the embedded donation page itself, etc.
  • Auto-hide on pages that already contain the inline donation widget: no double-donate-UI confusion
  • Mobile-responsive with smaller offset on small screens
  • Accept one-time and recurring (monthly) donations from a single form
  • Donors manage or cancel their own monthly gift from a link in the receipt email, with no login and nothing for your staff to process
  • Automatic branded receipt emails, including valid IRS tax-deductible acknowledgments under Section 170(f)(8) for organizations with a confirmed EIN
  • Goal progress bars, optional donor-paid card-processing fees (opt-in), and Apple Pay / Google Pay through Stripe
  • Donations go directly into your own connected Stripe account: your nonprofit is the merchant of record, and DonatoTomato never holds your money
  • Branded with your nonprofit’s logo and colors
  • No transaction data stored on your WordPress site: all payments handled securely by Stripe

Built into your connected DonatoTomato account:

Beyond the on-site form, the free DonatoTomato account this plugin connects to includes the back office for running donations:

  • Donor management (CRM): donor profiles, lifetime giving totals, active and lapsed donor segmentation, notes, and CSV import of your existing donor history.
  • Fundraising accounting: a reporting dashboard that reconciles gross raised, the 1% platform fee, actual Stripe processing fees, and your true net, with CSV export.
  • Year-end tax statements: consolidated annual giving statements for each donor, with your EIN and the IRS acknowledgment language, ready to email or print.

How it works:

DonatoTomato is a hosted donation platform, and this plugin is its WordPress front end. You will need (1) a free DonatoTomato account, about 2 minutes to create from the plugin’s setup screen, and (2) a Stripe account connected inside DonatoTomato, so donations are charged through your own Stripe and land directly in your bank. There is nothing to host, patch, or back up on your side.

Third-Party Services

This plugin connects to external services operated by DonatoTomato (Dev1 Consulting LLC) and Stripe. By using this plugin you agree to their respective terms and privacy policies.

DonatoTomato Platform (app.donatotomato.com)

When a visitor loads a page containing a DonatoTomato widget, their browser loads an iframe from app.donatotomato.com. When a page contains a DonatoTomato Donate button (including the site-wide floating Donate button), the browser additionally loads a small focal-modal script (embed.js, ~2KB gzip) from app.donatotomato.com that opens the donation iframe in a pop-up overlay when the button is clicked. The plugin admin also fetches a list of your campaigns from app.donatotomato.com to populate the campaign picker dropdown. Donation form submissions, including donor name, email, and payment details, are transmitted to and processed by DonatoTomato and Stripe. No payment or donor data is stored on your WordPress site.

Stripe

Payment processing is handled by Stripe via the DonatoTomato platform. Stripe’s privacy policy applies to all donation transactions.

Source Code

The full, unminified source code for this plugin, including the Gutenberg block source that is compiled into build/index.js, is publicly available on GitHub:

github.com/iCodeWebApps/donatotomato-wp

The repository contains the complete, human-readable source. The compiled production output committed in build/ is generated entirely from src/index.js via the official @wordpress/scripts build tool.

Build instructions:

  1. Clone the repository: git clone https://github.com/iCodeWebApps/donatotomato-wp.git
  2. Install dependencies: npm install (requires Node.js 18+)
  3. Build the block: npm run build (outputs to build/)
  4. Or run in watch mode: npm run start

There are no third-party developer libraries vendored into this plugin. The only build dependency is @wordpress/scripts, which is the official WordPress build tooling.

Usage

There are three widget styles: a floating Donate button (admin-configured, site-wide, recommended), an inline embed (donation form sits directly on a page), and a Donate button block (button anywhere on your site opens the donation form in a pop-up overlay).

Floating Donate button (new in 1.3.0)

Configure under Settings DonatoTomato Floating Donate Button. No shortcodes, no blocks. Pick a campaign from the dropdown, tweak label/color/size/shape/position, save. The button appears on every front-end page automatically.

Inline widget

Shortcode:

[donatotomato campaign="your-campaign-id"]

With optional overrides:

[donatotomato slug="your-org" campaign="your-campaign-id" width="480" height="600"]

Gutenberg Block: Search for „DonatoTomato Widget“ in the block inserter (under Embeds). Enter your Campaign ID in the block settings panel.

Donate button (pop-up)

Shortcode:

[donatotomato_button campaign="your-campaign-id"]

With optional overrides:

[donatotomato_button campaign="your-campaign-id" label="Give now" class="my-custom-class"]

Gutenberg Block: Search for „DonatoTomato Donate Button“ in the block inserter (under Embeds). Enter your Campaign ID and optional label.

Let donors choose the destination (new in 1.4.10)

If you raise money for several things at once, one missionary or program or project per fund, you do not need a separate embed for each. Add choose="yes" instead of a campaign ID and the donation form opens on a list of your active campaigns, so the donor picks where their gift goes:

[donatotomato choose="yes"] [donatotomato_button choose="yes" label="Give to a worker"]

The Shortcode Builder has a checkbox for this, so you do not have to type it by hand. Campaigns appear in the list as soon as they are Active, and drop off when you pause or end them.

If your organization only has one active campaign, the donor goes straight to it and never sees a list.

Offering only some of your campaigns (new in 1.4.11)

When that list gets long, you can point one page at part of it. Give each campaign a group name in your DonatoTomato dashboard, then name the group in the shortcode:

[donatotomato choose="yes" group="Missionaries"] [donatotomato_button choose="yes" group="Programs" label="Support a program"]

The donor sees only the campaigns in that group. Add a worker to the group later and every page offering that group picks them up on its own, with nothing to edit. Capitalisation and extra spaces do not have to match what you typed in the dashboard, and names containing spaces or an ampersand work as written. The Shortcode Builder has a box for the group, so this does not have to be typed by hand either.

A group is a way to shorten a long list rather than a way to hide a campaign: a visitor can still reach every active campaign through an embed with no group. If a group has no active campaigns in it, the form says so plainly and offers a link to your full list. Leave the group out and the donor sees every active campaign, exactly as before.

Adding to your nav menu: Most themes support adding a Custom Link or Custom HTML to the menu. Use the shortcode in a Custom HTML block, or paste the rendered HTML directly: <button type="button" class="donatotomato-button" data-dt-donate="your-campaign-id">Donate</button> (works only after the plugin is active so the supporting script is loaded).

Kostenlosmit kostenpflichtigen Tarifen
Mit deiner Installation stimmst du den Geschäftsbedingungen von WordPress.com sowie den Bedingungen für Drittanbieter-Plugins zu.
Getestet bis
WordPress 7.0.3
Dieses Plugin steht für deine -Website zum Download zur Verfügung.