Add donations to your WordPress site with a no-code site-wide floating Donate button, an inline DonatoTomato widget on any page or post (shortcode or Gutenberg block), or a Donate button that opens the donation form as a pop-up.
Live in the WordPress Plugin Directory: https://wordpress.org/plugins/donatotomato/
DonatoTomato is a donation platform built for US nonprofits. Accept one-time and recurring donations through a branded widget connected to your own Stripe account, so your organization stays the merchant of record. No monthly fee and no setup fee — a flat 1% platform fee per donation, on top of Stripe's standard payment processing.
- Install DonatoTomato from the WordPress plugin directory (Plugins → Add New → search "DonatoTomato"), or upload the plugin to
/wp-content/plugins/donatotomato/. - Activate the plugin through the Plugins menu.
- Go to Settings → DonatoTomato and enter your Organization ID (found in your DonatoTomato dashboard on any campaign's Add to your website panel).
The plugin offers three ways to add donations — start with the no-code floating button, or use a shortcode/block for in-page placement.
Go to Settings → DonatoTomato → Floating Donate Button, pick a campaign, set the label, color, size, shape, and position, and enable it. A Donate button then appears site-wide and opens the donation form as a pop-up — no shortcode or block required.
[donatotomato campaign="your-campaign-id"]
Override the org slug or dimensions for a specific widget:
[donatotomato slug="your-org" campaign="your-campaign-id" width="480" height="600"]
Gutenberg block: search for DonatoTomato Widget in the block inserter. Enter your Campaign ID in the settings panel; the editor shows a configured-state placeholder and the live widget renders on the published page.
Drops a button anywhere (nav menu, hero CTA, footer) that opens the donation form as a focal-modal pop-up — the standard donate-button trigger pattern across donation platforms.
[donatotomato_button campaign="your-campaign-id"]
[donatotomato_button campaign="your-campaign-id" label="Give now" class="my-custom-class"]
Gutenberg block: search for DonatoTomato Donate Button in the block inserter. Configure Campaign ID, button label, and optional per-button org-slug override in the settings panel.
The button is powered by a small focal-modal script (embed.js, ~2KB gzip) auto-loaded only on pages that contain a Donate button.
npm install
npm run build # production build → build/
npm run start # watch modeRequires Node.js 18+. The build/ directory is gitignored — run the build before packaging.
PHP linting (PHPCS + WordPress Coding Standards) runs in CI via composer:
composer install
composer lint # check
composer lint:fix # auto-fix- Bump the version in all five canonical locations with one command:
python bin/bump-version.py 1.2.0
- Replace the auto-generated
TODO: describe changesstub inreadme.txt's== Changelog ==with the real entry. - Commit, push, and open a PR. The
CIworkflow runs PHPCS + Plugin Check against the extracted distribution zip. - After merge to
main, tag the release:git tag v1.2.0 git push origin v1.2.0
- The
Releaseworkflow builds the zip and attaches it to a new GitHub Release. - Push the release to WordPress.org SVN (manual until automated):
cd /path/to/svn-checkout cp -r /path/to/extracted-zip/donatotomato/* trunk/ svn cp trunk tags/1.2.0 svn ci -m "Release 1.2.0"
- WordPress 6.0+
- PHP 7.4+
- A free DonatoTomato account
GPL-2.0-or-later — see LICENSE.