{"id":310783,"date":"2026-05-27T16:06:47","date_gmt":"2026-05-27T16:06:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/donatotomato\/"},"modified":"2026-05-28T17:57:01","modified_gmt":"2026-05-28T17:57:01","slug":"donatotomato","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/donatotomato\/","author":23496558,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.2.2","stable_tag":"1.2.2","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"DonatoTomato","header_author":"DonatoTomato","header_description":"Embed a DonatoTomato donation widget on any page or post.","assets_banners_color":"6b8e89","last_updated":"2026-05-28 17:57:01","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/donatotomato.com","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":72,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"dev1consulting","date":"2026-05-27 16:06:18"},"1.1.0":{"tag":"1.1.0","author":"dev1consulting","date":"2026-05-27 16:08:18"},"1.2.0":{"tag":"1.2.0","author":"dev1consulting","date":"2026-05-28 06:24:46"},"1.2.1":{"tag":"1.2.1","author":"dev1consulting","date":"2026-05-28 15:11:29"},"1.2.2":{"tag":"1.2.2","author":"dev1consulting","date":"2026-05-28 17:57:01"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3551154,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3551154,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3551127,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3551095,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"donatotomato\/widget":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"donatotomato\/widget","version":"1.2.2","title":"DonatoTomato Widget","category":"embed","icon":"heart","description":"Embed a DonatoTomato donation widget on your page.","keywords":["donation","fundraising","nonprofit","stripe"],"attributes":{"campaignId":{"type":"string","default":""},"orgSlug":{"type":"string","default":""},"width":{"type":"integer","default":480},"height":{"type":"integer","default":600}},"supports":{"html":false},"editorScript":"file:.\/build\/index.js","style":"file:.\/assets\/css\/donatotomato.css"}},"tagged_versions":["1.0.2","1.1.0","1.2.0","1.2.1","1.2.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3552543,"resolution":"1","location":"assets","locale":"","width":1440,"height":1700},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3552533,"resolution":"2","location":"assets","locale":"","width":1440,"height":1080},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3552471,"resolution":"3","location":"assets","locale":"","width":1440,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3552488,"resolution":"4","location":"assets","locale":"","width":1440,"height":900},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3552488,"resolution":"5","location":"assets","locale":"","width":1440,"height":900},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3552488,"resolution":"6","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"Live donation widget embedded on a published page","2":"Donate button opens the donation form in a focal-modal pop-up (new in 1.2.0)","3":"Both DonatoTomato blocks available in the Gutenberg inserter","4":"DonatoTomato Widget block in the editor with campaign ID, width, and height settings","5":"Donate Button block in the editor with campaign ID and label settings (new in 1.2.0)","6":"Settings page \u2014 enter your Organization Slug"}},"plugin_section":[],"plugin_tags":[5800,5801,15130,126532,5349],"plugin_category":[45],"plugin_contributors":[264651],"plugin_business_model":[],"class_list":["post-310783","plugin","type-plugin","status-publish","hentry","plugin_tags-donations","plugin_tags-fundraising","plugin_tags-nonprofit","plugin_tags-recurring-donations","plugin_tags-stripe","plugin_category-ecommerce","plugin_contributors-dev1consulting","plugin_committers-dev1consulting"],"banners":{"banner":"https:\/\/ps.w.org\/donatotomato\/assets\/banner-772x250.png?rev=3551095","banner_2x":"https:\/\/ps.w.org\/donatotomato\/assets\/banner-1544x500.png?rev=3551127","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/donatotomato\/assets\/icon-128x128.png?rev=3551154","icon_2x":"https:\/\/ps.w.org\/donatotomato\/assets\/icon-256x256.png?rev=3551154","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/donatotomato\/assets\/screenshot-1.png?rev=3552543","caption":"Live donation widget embedded on a published page"},{"src":"https:\/\/ps.w.org\/donatotomato\/assets\/screenshot-2.png?rev=3552533","caption":"Donate button opens the donation form in a focal-modal pop-up (new in 1.2.0)"},{"src":"https:\/\/ps.w.org\/donatotomato\/assets\/screenshot-3.png?rev=3552471","caption":"Both DonatoTomato blocks available in the Gutenberg inserter"},{"src":"https:\/\/ps.w.org\/donatotomato\/assets\/screenshot-4.png?rev=3552488","caption":"DonatoTomato Widget block in the editor with campaign ID, width, and height settings"},{"src":"https:\/\/ps.w.org\/donatotomato\/assets\/screenshot-5.png?rev=3552488","caption":"Donate Button block in the editor with campaign ID and label settings (new in 1.2.0)"},{"src":"https:\/\/ps.w.org\/donatotomato\/assets\/screenshot-6.png?rev=3552488","caption":"Settings page \u2014 enter your Organization Slug"}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/donatotomato.com\">DonatoTomato<\/a> is a donation platform built for US nonprofits. Accept one-time and recurring donations through a beautiful, embeddable widget \u2014 with automatic tax receipts, donor management, and a 1% platform fee (no monthly cost).<\/p>\n\n<p>This plugin lets you add a DonatoTomato widget to any page or post using a shortcode or a Gutenberg block, or drop a Donate button into your site's nav that opens the donation form as a pop-up.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li><strong>Inline widget<\/strong> \u2014 embed the donation form directly on a page (shortcode or Gutenberg block)<\/li>\n<li><strong>Donate button<\/strong> \u2014 drop a button in your nav (or anywhere) that opens the donation form as a pop-up overlay (shortcode or Gutenberg block)<\/li>\n<li>One-time and recurring (monthly) donations<\/li>\n<li>Automatic tax receipt emails for donors<\/li>\n<li>Branded with your nonprofit's logo and colors<\/li>\n<li>No transaction data stored on your WordPress site \u2014 all payments handled securely by Stripe<\/li>\n<\/ul>\n\n<p><strong>Requirements:<\/strong><\/p>\n\n<ul>\n<li>A free <a href=\"https:\/\/donatotomato.com\">DonatoTomato account<\/a><\/li>\n<li>A connected Stripe account (set up inside DonatoTomato)<\/li>\n<\/ul>\n\n<h3>Source Code<\/h3>\n\n<p>The full, unminified source code for this plugin \u2014 including the Gutenberg block source that is compiled into <code>build\/index.js<\/code> \u2014 is publicly available on GitHub:<\/p>\n\n<p><strong>https:\/\/github.com\/iCodeWebApps\/donatotomato-wp<\/strong><\/p>\n\n<p>The repository contains the complete, human-readable source. The compiled production output committed in <code>build\/<\/code> is generated entirely from <code>src\/index.js<\/code> via the official <code>@wordpress\/scripts<\/code> build tool.<\/p>\n\n<p><strong>Build instructions:<\/strong><\/p>\n\n<ol>\n<li>Clone the repository: <code>git clone https:\/\/github.com\/iCodeWebApps\/donatotomato-wp.git<\/code><\/li>\n<li>Install dependencies: <code>npm install<\/code> (requires Node.js 18+)<\/li>\n<li>Build the block: <code>npm run build<\/code> (outputs to <code>build\/<\/code>)<\/li>\n<li>Or run in watch mode: <code>npm run start<\/code><\/li>\n<\/ol>\n\n<p>There are no third-party developer libraries vendored into this plugin. The only build dependency is <code>@wordpress\/scripts<\/code>, which is the official WordPress build tooling.<\/p>\n\n<h3>Usage<\/h3>\n\n<p>There are two widget styles: an <strong>inline embed<\/strong> (donation form sits directly on a page) and a <strong>Donate button<\/strong> (button anywhere on your site opens the donation form in a pop-up overlay \u2014 perfect for site navigation).<\/p>\n\n<h4>Inline widget<\/h4>\n\n<p><strong>Shortcode:<\/strong><\/p>\n\n<pre><code>[donatotomato campaign=\"your-campaign-id\"]\n<\/code><\/pre>\n\n<p>With optional overrides:<\/p>\n\n<pre><code>[donatotomato slug=\"your-org\" campaign=\"your-campaign-id\" width=\"480\" height=\"600\"]\n<\/code><\/pre>\n\n<p><strong>Gutenberg Block:<\/strong> Search for \"DonatoTomato Widget\" in the block inserter (under Embeds). Enter your Campaign ID in the block settings panel.<\/p>\n\n<h4>Donate button (pop-up)<\/h4>\n\n<p><strong>Shortcode:<\/strong><\/p>\n\n<pre><code>[donatotomato_button campaign=\"your-campaign-id\"]\n<\/code><\/pre>\n\n<p>With optional overrides:<\/p>\n\n<pre><code>[donatotomato_button campaign=\"your-campaign-id\" label=\"Give now\" class=\"my-custom-class\"]\n<\/code><\/pre>\n\n<p><strong>Gutenberg Block:<\/strong> Search for \"DonatoTomato Donate Button\" in the block inserter (under Embeds). Enter your Campaign ID and optional label.<\/p>\n\n<p><strong>Adding to your nav menu:<\/strong> 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: <code>&lt;button type=\"button\" class=\"donatotomato-button\" data-dt-donate=\"your-campaign-id\"&gt;Donate&lt;\/button&gt;<\/code> (works only after the plugin is active so the supporting script is loaded).<\/p>\n\n<h3>Third-Party Services<\/h3>\n\n<p>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.<\/p>\n\n<p><strong>DonatoTomato Platform (app.donatotomato.com)<\/strong><\/p>\n\n<p>When a visitor loads a page containing a DonatoTomato widget, their browser loads an iframe from <code>app.donatotomato.com<\/code>. When a page contains a DonatoTomato Donate button, the browser additionally loads a small focal-modal script (<code>embed.js<\/code>, ~2KB gzip) from <code>app.donatotomato.com<\/code> that opens the donation iframe in a pop-up overlay when the button is clicked. Donation form submissions \u2014 including donor name, email, and payment details \u2014 are transmitted to and processed by DonatoTomato and Stripe. No payment or donor data is stored on your WordPress site.<\/p>\n\n<ul>\n<li>Service: https:\/\/donatotomato.com<\/li>\n<li>Terms of Service: https:\/\/donatotomato.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/donatotomato.com\/privacy<\/li>\n<\/ul>\n\n<p><strong>Stripe<\/strong><\/p>\n\n<p>Payment processing is handled by Stripe via the DonatoTomato platform. Stripe's privacy policy applies to all donation transactions.<\/p>\n\n<ul>\n<li>Service: https:\/\/stripe.com<\/li>\n<li>Terms of Service: https:\/\/stripe.com\/legal<\/li>\n<li>Privacy Policy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/donatotomato\/<\/code> or install via the WordPress plugin directory.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 DonatoTomato<\/strong> and enter your Organization Slug (found in your DonatoTomato dashboard).<\/li>\n<li>Add a widget to any page using the shortcode or Gutenberg block.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20do%20i%20find%20my%20organization%20slug%20and%20campaign%20id%3F\"><h3>Where do I find my Organization Slug and Campaign ID?<\/h3><\/dt>\n<dd><p>Log in to your <a href=\"https:\/\/app.donatotomato.com\">DonatoTomato dashboard<\/a>. The organization slug is in Settings \u2192 Embed Code. Campaign IDs are listed on your Campaigns page.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20store%20donor%20payment%20information%3F\"><h3>Does this plugin store donor payment information?<\/h3><\/dt>\n<dd><p>No. All payment processing is handled by Stripe via DonatoTomato. No card data or sensitive donor information is stored on your WordPress site.<\/p><\/dd>\n<dt id=\"what%20does%20donatotomato%20cost%3F\"><h3>What does DonatoTomato cost?<\/h3><\/dt>\n<dd><p>DonatoTomato charges a 1% platform fee on donations processed. There is no monthly subscription fee.<\/p><\/dd>\n<dt id=\"is%20this%20plugin%20compatible%20with%20page%20builders%3F\"><h3>Is this plugin compatible with page builders?<\/h3><\/dt>\n<dd><p>The shortcode works with any page builder that supports WordPress shortcodes (Elementor, Divi, WPBakery, etc.).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>New: block editor now flags a malformed Campaign ID inline (UUID format check) and surfaces a \"View live preview\" link in the inspector when both the Organization Slug and Campaign ID are set. Catches typos and slug\/campaign mismatches before publishing \u2014 previously the widget would silently render a \"Campaign not found\" error to donors on the live page.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fix: \"DonatoTomato Donate Button\" Gutenberg block now registers correctly. In 1.2.0 the block silently failed to register because WordPress's <code>register_block_type_from_metadata()<\/code> only recognises files literally named <code>block.json<\/code>. The block now registers via a manual handle-based path. The <code>[donatotomato_button]<\/code> shortcode was not affected.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>New: <code>[donatotomato_button]<\/code> shortcode and \"DonatoTomato Donate Button\" Gutenberg block \u2014 drop a Donate button anywhere on your site (nav menu, hero, footer) that opens the donation form in a focal-modal pop-up. Powered by <code>embed.js<\/code>, auto-loaded only on pages that include a Donate button.<\/li>\n<li>New: per-button <code>label<\/code> and <code>class<\/code> attributes for theme integration.<\/li>\n<li>Existing inline widget block and <code>[donatotomato]<\/code> shortcode are unchanged.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Editor: replaced live iframe preview with a configured-state placeholder so the block editor never loads an external origin<\/li>\n<li>Build\/release: parameterized <code>build-zip.py<\/code> to read the version from the plugin header; added <code>bin\/bump-version.py<\/code> to update all version locations in one step<\/li>\n<li>CI: added GitHub Actions workflows for PR validation (PHPCS + Plugin Check on extracted zip) and tag-triggered GitHub Release artifact<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Documented public source repository and build steps in the readme<\/li>\n<li>Fixed auto-resize listener event type so embedded widgets resize correctly<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Fixed missing compiled assets in distributed package<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Embed a DonatoTomato donation widget on any page or post. Accepts one-time and recurring donations via Stripe.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/310783","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=310783"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dev1consulting"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=310783"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=310783"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=310783"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=310783"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=310783"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=310783"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}