How-to guides

How to add a fundraising thermometer to a WordPress site

Published September 28, 2026 · WordPress steps checked against its documentation on September 28, 2026

A donate page is where a thermometer does the most work, and a website is where it can be most current: the browser fetches the image on every page view. A DynaMail thermometer is one image tag, so WordPress needs no plugin. Paste it into a Custom HTML block, then keep the total current from volunteers’ phones, a Google Sheet or Zapier.

Fundraising goal bar rendered by DynaMail in white on blue, showing $12,400 raised of a $20,000 goal
An example render from DynaMail’s image pipeline. Your design, dates and values will differ.

What you need

  • A WordPress site that uses the block editor, on WordPress.com or your own hosting. No plugin is needed.
  • A thermometer or goal bar from DynaMail’s free generator. You can make it without an account; save it before it goes on a busy page.

Add it, step by step

  1. Make the thermometer and copy the website snippet

    Open the free fundraising thermometer, enter your goal and what you have raised so far, pick a style and currency, and choose Make my thermometer. No account is needed yet.

    Under Where are you pasting it?, choose Website and copy the HTML. It looks like this, with your widget id in place of the placeholder:

    Thermometer for a website

    <img src="https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.png?target=20000" width="400" height="224" alt="Amount raised so far toward our goal" loading="lazy" style="max-width:100%;height:auto;" />

    The link carries only the goal, as target. The amount raised is left out on purpose, so every page view shows the campaign’s current total.

  2. Save it before it goes on a busy page

    A free thermometer loads up to 5,000 times a month, and every open and page view counts. Save it before sending to a large list: sign up in the same browser where you made it, and it becomes a fundraising campaign in your account, using your account’s monthly renders (10,000 on the free plan).

    Saving keeps the exact image link, so anything you already sent or published shows the new total too. The goal is part of that link: if you change the goal later, you get a new link, and copies of the old one keep the old goal.

  3. Add a Custom HTML block

    Open the page or post in the block editor. Click the Block Inserter icon and choose Custom HTML, or type /html on a new line and press Enter.

  4. Paste the snippet

    Click Edit HTML to open the code editor, paste the snippet, and check the preview to the right of the code: your thermometer should appear. Press Update to close it.

    WordPress strips scripts and iframes from this block for some users and plans. The thermometer is a plain image tag, which every role and plan can use.

  5. Publish, then add a test gift

    Publish or update the page and open it. Add a test gift from the campaign page or a phone link, wait a couple of minutes and reload the page: the total should have moved. Undo the test gift when you’re done.

Or use an Image block

If you prefer a normal image, add an Image block (type /image), choose Insert from URL, paste the image link and press Enter:

Thermometer image link

https://img.dynamail.io/widgets/YOUR-WIDGET-ID/render.png?target=20000

Then leave it alone. WordPress’s Image block guide (opens in a new tab) suggests clicking Upload to Media Library in the block toolbar to keep a copy. For a thermometer, that copy is exactly what you don’t want: it would show today’s total forever.

On WordPress.com

The same steps work. WordPress.com’s Custom HTML block page (opens in a new tab) says every plan can use the block, and image tags are allowed on all plans, including Free. Scripts, iframes and forms need a paid plan with hosting features, but the thermometer needs none of them.

Keep the total current

Once the thermometer is a campaign, its total is a running log of gifts. Add them whichever way suits your team; they all land in the same total, and each gift counts once even if it is sent twice.

From volunteers’ phones

On the campaign page, make a phone link for each group, such as “Door volunteers”, and share it by text or QR code. Whoever opens it gets big buttons for common amounts, an “other amount” field and an undo. There is nothing to install and no login. Anyone with the link can add gifts, so share it only with your volunteers; you can switch a link off at any time, and each gift in your log shows which link it came from. Notes typed on a phone stay in your log and are never drawn on the image.

From a Google Sheet

If your total already lives in a spreadsheet, publish it and let DynaMail read it. In Google Sheets, choose File, then Share, then Publish to web, pick the one sheet with your total, choose the CSV format and click Publish. Paste the link on the campaign page and tell DynaMail to read one cell or add up a column. Google’s publishing guide (opens in a new tab) says changes can take a few minutes to reach the published copy, and anyone with that link can read the published sheet, so publish only the sheet with the totals.

DynaMail checks the sheet every 5 minutes. If a check fails, say a row was renamed, the thermometer keeps showing the last good total and the campaign page tells you what broke. Gifts added by phone are added on top of the sheet, so don’t also type them into it.

From Zapier or your own system

Donation platforms that connect to Zapier can add each gift as it happens. DynaMail’s Zapier app, with an Add a Gift to a Fundraising Campaign action, is invite-only for now. Any tool that can send a web request can use the gifts endpoint directly, with an API key made with the Automation preset under API keys in your dashboard:

POST https://api.dynamail.io/widgets/WIDGET_ID/gifts

Request headers

X-API-Key: dm_sk_your_key_here
Content-Type: application/json

Request body

{
  "giftId": "txn_8841",
  "amount": 25.50
}

Map giftId to the donation or transaction ID, so a retried request counts once. The amount can have cents, and a negative amount records a refund. The developer docs cover API keys and errors.

What people see, and when

On a website
The current total, on every page view, give or take a couple of minutes of caching.
In an email
A recent total. The image updates when the reader’s mail app fetches it: Apple Mail may fetch it when the email arrives, and Gmail keeps its own copy, so a reopened email can show an earlier total. Write around the image: “here’s how far we’ve come” works, “as of right now” doesn’t.
After you close
The final total and a thank-you, on the same link, so an appeal from October still reads right in March. Closing stops all updates; you can reopen the campaign.

The image shows whole amounts: $17,862.50 raised shows as $17,862, never rounded up. Past the goal, the thermometer stays full and the text shows the real total. Our Apple Mail Privacy Protection explainer covers why email can lag.

Page views and your monthly renders

Every time a browser fetches the image counts as a render, so a busy donate page uses more than a newsletter does. Save the thermometer to an account before you link the page from a big appeal, and keep an eye on your monthly usage while the campaign runs. If you also send the thermometer by email, use the same image link: it is one campaign and one total wherever it appears.

Sources

Every WordPress step above comes from these pages, read on September 28, 2026. Apps rename menus often; if a step no longer matches what you see, the source page is the place to check.

  1. WordPress.org: Custom HTML block (opens in a new tab)
  2. WordPress.org: Image block (opens in a new tab)
  3. WordPress.com Support: Custom HTML block (opens in a new tab)
  4. Google Docs Editors Help: Make Google Docs, Sheets, Slides & Forms public (opens in a new tab)

Frequently asked questions

Does it work on WordPress.com?

Yes. WordPress.com’s support page says every plan can use the Custom HTML block, and image tags are allowed on all plans, including Free. Scripts and iframes need a paid plan, but the thermometer uses neither.

Will a caching plugin freeze the total?

A page cache stores the page’s HTML, and the thermometer is a separate image that the browser fetches from DynaMail, so page caching leaves it alone. A plugin that copies images from other sites would freeze it; the check in this guide catches that.

Does every page view count toward the monthly limit?

Each time a browser fetches the image counts as one load. An unsaved free thermometer loads up to 5,000 times a month, so save it to an account before it goes on a busy page; saved campaigns use your account’s 10,000 monthly renders.

Does the thermometer show cents?

No. Gifts keep their cents in your log, but the image shows whole amounts: $17,862.50 raised shows as $17,862. It never rounds up.