Charitable Documentation

Learn how to make the most of Charitable with clear, step-by-step instructions.

Charitable Rewards: How to Deliver Rewards

Requires: Charitable Pro plugin 1.8.16+
Pro plan and higher

Do you want to know how a digital download or a posted item actually reaches your donor? Two of the 4 reward types need delivery, with digital rewards sent by email and physical rewards sent by mail.

This guide covers both. It explains the 3 kinds of digital reward, how download links are protected, and how Rewards collects shipping addresses for physical items.

Getting delivery right means donors receive what they earned, and your files stay with the people who earned them. Recognition and membership rewards need no delivery, because they’re recorded and that’s the end of it.

Charitable Rewards needs version 1.8.16 or higher of the Charitable Pro plugin, on the Pro plan and higher.

What’s In This Guide?

Watch the Video

If you’d rather watch than read, this video shows a digital reward and a physical reward from setup to delivery.

Digital Rewards

A digital reward is a code, a link, or a file. You pick which when you create it.

The reward edit screen for a digital reward, showing the code, link, and file delivery options and the download limit
KindUse it forWhat the donor gets
CodeA discount code, a voucher, or an access keyThe code itself, in the delivery email
LinkSomething hosted elsewhere, like a video or a formThe URL, in the delivery email
FileA PDF, an image pack, or an audio fileA protected download link

Files Are Protected

This is the difference between a real download and a URL anyone can pass around.

An uploaded file does not sit in your public uploads folder, where someone could guess the URL. It goes into protected storage, and the donor receives a link with 3 protections.

  • Signed. The URL carries a cryptographic signature tied to that donor and that reward. Changing any part of it stops it from working.
  • Expiring. The link stops working after a set time, 7 days by default.
  • Capped. You can limit how many times a single reward’s file can be downloaded.

So a link that’s forwarded on after it expires won’t work. If a donor needs it again, resend the delivery email rather than hunting for a file URL.

Setting a Download Limit

The “Download Limit” on a digital reward caps how many times the file can be downloaded. Leave it empty for unlimited downloads.

A small number like 3 or 5 usually works well. It’s enough for a donor who loses the file or switches devices, and few enough that a leaked link has limited value.

What Donors Receive

When a digital claim is confirmed, the reward digital delivery email goes out with the code, the link, or the download URL.

It’s a normal Charitable email that you can edit under the email settings, so you can set the tone and add your own instructions.

Physical Rewards

A physical reward needs somewhere to go, so Rewards collects a shipping address on the donation form itself. The fields only appear when the donor is in line for something physical.

Rewards collects 7 fields.

  • Name
  • Address
  • Address line 2
  • City
  • State
  • Postal code
  • Country

Estimated Delivery

Each physical reward can show an estimated delivery time on the reward card. It’s free text, so “4-6 weeks” or “ships in time for the holidays” both work.

We suggest filling it in. The most common question about a physical reward is when it’s coming, and answering it on the form saves an email.

Addresses Live on the Donation

Shipping details are stored against the donation, not the reward or the claim. A donor’s address belongs to the gift, and 1 donation that earns 2 physical rewards has 1 address, not 2.

The shipping address fields appearing on a donation form after a physical reward is unlocked

In practice, the address shows on the donation record and on each claim from it. Seeing it requires the charitable_view_reward_pii capability.

Then It’s a Fulfillment Job

Once the claim is confirmed, the item joins your claims list. Mark it fulfilled and record the carrier and tracking number, and Rewards sends the reward shipped email with a tracking link.

See Claims and Fulfillment for the full steps.

Tips Worth Keeping in Mind

These habits keep your rewards protected and your inbox quieter.

  • For files, upload them rather than linking to your own media library. An uploaded file gets the protected, expiring link, and a plain link to a public URL does not.
  • Set a download limit, even a generous one. An unlimited link that leaks stays unlimited forever.
  • Fill in estimated delivery on everything physical. It’s the cheapest way to cut down support emails.
  • If a donor says a link expired, resend the delivery email. Sending the file as an attachment skips the download count, so your numbers stop being accurate.
  • The default link lifetime is 7 days, which is generous. Shorten it if your files are sensitive, and rely on the download limit rather than the clock for anything valuable.

Developer Reference

Filters

FilterDefaultPurpose
charitable_rewards_download_url_ttl604800 (7 days)Lifetime in seconds of a signed download URL
charitable_rewards_allowed_file_typesplugin defaultPermitted file types for digital uploads
charitable_rewards_max_file_sizeplugin defaultUpload size ceiling
charitable_email_reward_digital_delivery_recipientthe donorWho the delivery email goes to
charitable_email_reward_shipped_recipientthe donorWho the shipped email goes to

Both emails also expose _default_subject, _default_headline, and _default_body filters under the same prefix.

Signed Download URLs

Charitable_Rewards_Download builds and validates the signed URL. The signature is an HMAC over the request payload using a WordPress salt, so URLs can’t be forged without the site’s keys.

Download counts are tracked in donation meta per reward, alongside a last-download timestamp.

The TTL filter is the supported way to change link lifetime. Don’t try to lengthen it by reissuing URLs yourself.

Shipping Fields

Charitable_Rewards_Shipping::field_keys() returns the 7 field definitions. They’re registered as Charitable donation fields, so they appear in exports and on the donation record like any other field.

parts_for_donation() reads them back as a keyed array, and format_address() renders them as a single comma-separated line.

Fields are stored as donation post meta prefixed charitable_rewards_shipping_.

Reward Payload Keys

Digital and physical settings live in the reward’s payload rather than as columns. The keys are digital_code, digital_link, digital_file, download_limit, and estimated_delivery.

Customization Examples

Tighten download links to 1 hour.

add_filter( 'charitable_rewards_download_url_ttl', function () {
    return HOUR_IN_SECONDS;
} );

Allow ePub and MOBI uploads.

add_filter( 'charitable_rewards_allowed_file_types', function ( $types ) {
    $types['epub'] = 'application/epub+zip';
    $types['mobi'] = 'application/x-mobipocket-ebook';
    return $types;
} );

Send the shipped notification to your shipping desk as well.

add_filter( 'charitable_email_reward_shipped_recipient', function ( $email ) {
    return $email . ',[email protected]';
} );

Wrapping Up

You now know how digital rewards reach donors through protected links, and how Rewards collects addresses for physical items.

Next, you can work through your claims list and record tracking. If you get stuck on any step, our support team is happy to help.

You May Also Want to Read

These guides cover the steps around delivery.

Helpful Links

🤝 Get help when you need it

Connect with Customer Support →  

📑 Find the guide you need

Browse the Documentation Hub →  

⬇️ Download proven strategies, campaign ideas, and expert tools

Get the Fundraising Kit →  

🔗 Let your AI Assistant do the fundraising work for you.

Connect Charitable to your AI assistant →

💸 Get Free Fundraising Resources
Head to the Charitable Fundraising Hub →

🤔 Got questions about Charitable?
Charitable FAQs →

Need help understanding non-profit terms and jargon?
See our Non-Profit Glossary →

Still have questions? We’re here to help!

Last Modified:

What's New In Charitable

View The Latest Updates
🔔 Subscribe to get our latest updates
📧 Subscribe to Emails

Email Subscription

Join our Newsletter

We won’t spam you. We only send an email when we think it will genuinely help you. Unsubscribe at any time!

Feature New

🎟️ Introducing Charitable Events: Sell Tickets Inside Your Campaigns!

Most nonprofits sell event tickets in one tool and collect donations in another, which leaves two sets of reports and a manual match at the end of the year. Charitable Events brings both together, selling tickets through the same donation forms and payment gateways you already run in Charitable. Why this is important:

  • 🎟️ Every ticket is a donation: Ticket sales run through the gateway you already use and count toward the campaign goal, with everything managed under Charitable » Events.
  • 📱 QR check-in from any phone: Each attendee gets their own QR code on the receipt, and volunteers scan at the door through a check-in link that needs no WordPress account.
  • 🧾 Receipts ready for tax time: Give each ticket type a fair market value, and Charitable puts the correct tax-deductible amount on every donor receipt.
  • 📋 Attendee details at checkout: Ask every guest for a meal choice, shirt size, or access needs, with a separate attendee record created for each ticket.
  • 🗓️ Blocks and calendars included: Three editor blocks plus Sugar Calendar and The Events Calendar support put your events where supporters already look.

Check out our announcement here.

ai New

🚀 Unleash AI Power in Charitable!

Your AI assistant can now build, edit, and manage your Charitable fundraising campaigns directly — just by asking. With Charitable Pro adding write support for the WordPress Abilities API, tools like ChatGPT, Claude, and Cursor can handle full administrative actions safely through MCP. Why this is important:

  • 🤖 Campaign creation in plain language: Prompt your assistant with a goal like “Set up a fundraiser for the shelter with a $5,000 goal”, and it builds a real draft campaign complete with suggested donation tiers.
  • 🎨 Instant donation form tweaks: Add custom fields, change button colors, or reorder elements without diving into form settings.
  • 📝 Offline gift logging: Tell your assistant about cash or check gifts, and it will match donor emails and record transactions into your history.
  • 🛡️ Safety and control by default: Write access stays strictly off until turned on in Charitable » Tools » AI MCP, keeping read-only reporting safe by default.
  • 📜 Full audit logging: Every change made by an AI assistant is tracked under Charitable » Tools » Logs, so you always know who (or what) updated your site.

Check out our announcement here.

Improvement Payments

💰 Accept Recurring Donations with Windcave and Charitable

A donor sets their gift up once on Windcave’s secure payment page, and Charitable bills every renewal after that on schedule. Why this is important:

🏦 Organizations banked in New Zealand or Australia: monthly giving on the gateway your bank already set you up with, with no second processor to onboard.
⛪ Churches taking regular tithes and offerings: congregants set their own schedule once, which is the simplest way to launch recurring church giving without a separate platform.
🌏 Groups with donors in several currencies: Windcave handles more than 20, so a supporter can give in the currency they actually hold.
📅 Operating funds rather than one-time campaigns: switch on Recurring Only mode and the one-off option disappears, so every gift to that campaign is a subscription.
🧾 Teams with no developer on staff: 3 sets of credentials pasted into a settings page, and no code anywhere.

Check out our announcement here.

automation update

⚡ Visual Automation Builder: Drag and Drop With No Code!

Charitable Automation Connect 2.3.0 introduces the Visual Automation Builder, a full-screen canvas that lays each automation out as a flow of connected cards: a trigger, optional conditions, and a list of actions that run in order.

🧩 Many actions, one trigger: Tag a donor, send an email, add a note, and fire a webhook from a single event, dragged into any order.

✉️ Act inside Charitable: New Send Email, Tag Donor, and Add Donor Note actions run with no external service required.

🔤 Merge tags: Personalize emails and notes with live fields like {first_name}, {total}, and {campaign_name}.

🔁 Apply to existing donors: Run Tag Donor and Add Donor Note against the donors you already have.

🖥️ Canvas or Simple: Switch views anytime, and automations built before 2.3.0 keep working unchanged.

Read more here.

Integration updated

📬 Introducing Brevo for Charitable: Turn Donors into Subscribers Automatically

The moment a supporter makes a gift is when they are most engaged. With the new Brevo integration for Charitable, you can automatically turn those one-time donors into long-term subscribers without touching a single spreadsheet.

Simply collect donor consent right on your donation form and start your welcome series immediately.

What’s New:

🔄 Automated Subscriber Sync: New donors who opt in are added straight to your Brevo contact list as soon as their payment clears—no manual exports or CSV imports required.

🎯 Granular Consent & Opt-In Control: Customize your checkbox label, choose whether it defaults to checked or unchecked, or turn on Brevo double opt-in to keep your list clean and compliant.

📋 Per-Campaign List Mapping: Route supporters to your global email list or map specific campaigns to targeted Brevo lists to tailor your follow-up messaging.

⚡ 5-Minute Setup: Connect instantly by pasting your Brevo API key into the Newsletter settings, map your contact fields, and start building your email list on autopilot.

Ready to grow your mailing list? Brevo is available now starting on the Charitable Plus plan—connect your account today!