DonatoTomato
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. 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 — no login, and nothing for your staff to process
- Automatic branded receipt emails, including valid IRS tax-deductible acknowledgments (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
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.
- Service: donatotomato.com
- Terms of Service: donatotomato.com/terms
- Privacy Policy: donatotomato.com/privacy
Stripe
Payment processing is handled by Stripe via the DonatoTomato platform. Stripe’s privacy policy applies to all donation transactions.
- Service: stripe.com
- Terms of Service: stripe.com/legal
- Privacy Policy: stripe.com/privacy
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:
- Clone the repository:
git clone https://github.com/iCodeWebApps/donatotomato-wp.git - Install dependencies:
npm install(requires Node.js 18+) - Build the block:
npm run build(outputs tobuild/) - 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.
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).
