Add your DonatoTomato form to your website.

Choose a floating button, inline form or pop-up. The steps below show how to place your form on WordPress and other websites.

Before you begin

Create your DonatoTomato account and a campaign. Connect Stripe to receive gifts. Bank gifts require activation for your organization; contact us if you want to offer them.

Easiest~60 seconds · WordPress

The simplest way: turn on the floating Donate button

Install our free WordPress plugin and flip one switch. A styled Donate button appears anchored to the corner of every page on your site, with no theme edits, no shortcodes, and no per-page setup. Donors click it from anywhere and the donation form opens in a pop-up without leaving the page.

yournonprofit.org

Appears on every page of your site, automatically.

  1. 1

    Install the DonatoTomato plugin

    In WordPress admin, go to Plugins → Add New, search for DonatoTomato, click Install Now, then Activate.

  2. 2

    Open Settings → DonatoTomato → Floating Donate Button

    Toggle Enable floating Donate button on. Pick your campaign from the dropdown (it lists your real campaign names, no IDs to copy).

  3. 3

    Click Save and you're done

    Visit any page on your site to see the button. Tweak the label, color, size, shape, or position any time; changes are live the moment you save.

What you get out of the box

  • Mobile-responsive, with a smaller offset on phones.
  • Per-page exclusions: hide the button on checkout, legal, or any page you choose
  • Auto-hides on pages that already have the inline donation widget
  • Picks a text color with the right contrast for whatever brand color you choose

The floating button opens one campaign. Raising money for several funds and want the donor to pick? See Let donors choose the fund — the pop-up button version does exactly that.

Plugin listing: wordpress.org/plugins/donatotomato

Inline embed: WordPress block

Prefer the donation form rendered directly inside a specific page (Donate page, campaign landing page)? Use the DonatoTomato block in the WordPress editor, no embed code to copy.

Using our WordPress plugin

  1. 1.Edit the page where you want the donation form. Click + to add a new block.
  2. 2.Search for DonatoTomato and select the Donation Widget block.
  3. 3.Pick your campaign from the dropdown and publish. The plugin handles iframe sizing automatically.

Don't have the plugin yet? Install it from wordpress.org.

The block embeds one specific campaign. To offer a list of your funds on a page, use the [donatotomato choose="yes"] shortcode instead — see Let donors choose the fund.

Using a page builder (Elementor, Divi, Beaver Builder)?

Page builders replace the block editor, so the DonatoTomato blocks aren't available inside them. If you have our plugin, use its shortcode builder instead: open Settings → DonatoTomato → Shortcode Builder, pick your campaign by name, and copy the generated shortcode. Paste it into a Code module (Divi) or a Shortcode widget (Elementor) — no campaign IDs to hunt down.

The builder also has a "let donors choose the destination" checkbox, with an optional group box, so a single shortcode can offer a list of your funds — see Let donors choose the fund below.

No plugin? Drop your campaign's embed code (below) into the builder's HTML / Code widget instead.

Get your embed code

  1. 1.Log in to your DonatoTomato dashboard
  2. 2.Go to Campaigns, click the campaign you want to embed
  3. 3.Find the Add to your website card and click Copy Code

Your code will look like this (with your org's real URL):

<div style="max-width: 480px; width: 100%;">
  <iframe
    src="https://app.donatotomato.com/widget/your-org/campaign-id"
    width="100%"
    height="600"
    frameborder="0"
    style="border-radius: 12px; box-shadow: 0 4px 24px rgba(0,0,0,0.12); display: block;"
    title="Donate"
    allow="payment"
  ></iframe>
  <script>(function(){var s=document.currentScript||document.scripts[document.scripts.length-1];var w=s&&s.parentElement;var f=w&&w.querySelector('iframe');if(!f)return;var o=new URL(f.src,location.href).origin;window.addEventListener('message',function(e){if(e.origin!==o)return;if(!e.data||e.data.type!=='dt-resize'||e.source!==f.contentWindow)return;var h=parseInt(e.data.height,10);if(!h||isNaN(h))return;if(h>5000)h=5000;f.style.height=(h+24)+'px';});})();</script>
</div>

Each campaign has its own unique embed code. If you run multiple campaigns, embed each one separately.

Classic Editor? Switch to the Text tab (not Visual) and paste the embed code where you want the widget to appear.

Manual embed (any platform)

Not on WordPress? Paste your campaign's embed code (see above) into any platform that supports custom HTML.

SSquarespace

  1. 1Open the page you want to edit and click Edit.
  2. 2Click the area where you want to add the widget, then click the + icon that appears to add a new block.
  3. 3Scroll down in the block list and select Code.
  4. 4Paste your embed code into the code block. Make sure the toggle says HTML (not Markdown).
  5. 5Click anywhere outside the block to preview it, then click Save.
Squarespace's free plans may not support custom code blocks. You'll need a Basic plan or higher to embed third-party widgets.

XWix

  1. 1Open your site in the Wix Editor.
  2. 2Click the + (Add Elements) button in the left sidebar.
  3. 3Select Embed Code → Embed HTML. An HTML box will appear on your page.
  4. 4Click on the HTML box, then click Enter Code.
  5. 5Paste your embed code and click Apply.
  6. 6Drag and resize the HTML box to fit your layout. Make it at least 480 × 620 pixels so the widget doesn't get cut off.
  7. 7Click Publish to make the changes live.
Wix wraps your code in an iframe of its own, so the widget will be inside a frame-within-a-frame. This is normal; it still works correctly. If the widget appears too small or cut off, increase the size of the HTML box in the Wix editor.

FWebflow

  1. 1Open your project in the Webflow Designer.
  2. 2In the left panel, click + (Add Elements) and search for "Embed". Drag the Embed element onto your canvas where you want the widget.
  3. 3Double-click the Embed element to open the code editor. Paste your embed code and click Save & Close.
  4. 4The widget will display as a placeholder in the Designer. Click Preview in the top bar to see the live version.
  5. 5Click Publish when ready.
The Embed element is only available on paid Webflow plans. If you're on the free Starter plan, you'll need to upgrade to add custom code.

HAny HTML site

  1. 1Open the HTML file for the page where you want the donation widget to appear.
  2. 2Find the spot in the page where you want the widget, for example, inside a <main> tag or inside a content <div>.
  3. 3Paste your embed code at that location.
  4. 4Save the file and upload it to your web server (or re-deploy if using a static site host).
☰

Let donors choose the fund: one form, many campaigns

Raising money for several things at once — one campaign per fund, program, or project? You don't need a separate embed for each. Leave the campaign out of your embed and the form opens on a list of your active campaigns, so the donor picks where their gift goes, then completes the normal donation flow.

When that list gets long, give each campaign a Group label in your dashboard (something like Missionaries or Programs) and point a page at just that group. One page can offer your global workers, another your programs — and adding a campaign to a group later updates every page offering that group automatically, with nothing to edit. A group with a single campaign skips the list and goes straight to the form.

Inline embed (any platform)

Use your organization's widget URL, with an optional ?group=:

<!-- All active campaigns -->
<iframe src="https://app.donatotomato.com/widget/your-org-slug" ...></iframe>

<!-- Only the campaigns in one group -->
<iframe src="https://app.donatotomato.com/widget/your-org-slug?group=Missionaries" ...></iframe>

Pop-up button

With the script tag from the pop-up section above, leave the campaign off the trigger and optionally name a group:

<button data-dt-donate data-dt-group="Missionaries">Support our missionaries</button>

WordPress

[donatotomato choose="yes" group="Missionaries"]

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

Or skip the typing: the plugin's Shortcode Builder has a "let donors choose the destination" checkbox and offers your existing group names from a list (plugin 1.4.11+).

Good to know: group names match forgivingly (capitalization and extra spaces don't matter), and the easiest way to get any of these snippets pre-filled is your campaign's Add to your website panel — it has the same "let donors choose" option and group selector. A group shortens a long list; it doesn't hide campaigns — every active campaign is still reachable from an embed with no group.

Troubleshooting

Widget shows "Campaign not found"

Your campaign may be in Draft status. Log in to your dashboard, open the campaign, and change the status to Active.

My group shows "Nothing in this list right now"

The group name in your embed must match a Group label set on at least one Active campaign. Matching forgives capitalization and extra spaces, but not different words — and draft or paused campaigns never appear in the list. Check the campaign's Group field in your dashboard.

Widget is cut off or too small

The widget needs at least 480px wide and 600px tall. If your layout is narrower than that, the widget will scroll internally; that's expected on mobile. In Wix, resize the HTML box to be larger.

Payment doesn't go through

Make sure your organization's Stripe account is connected in Settings → Stripe Connect. Donations can't be processed without an active Stripe connection.

I don't see the widget at all

Some website security policies block embedded content. If you manage your own server, check that your Content Security Policy (CSP) allows iframes from app.donatotomato.com.

Floating button doesn't appear on a page

Check Settings → DonatoTomato → Floating Donate Button. The button auto-hides on pages that already contain the inline donation widget, and on any page you've added to the Hide on these pages list.