Charitable Documentation

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

Rewards on Peer-to-Peer Campaigns

Requires: Charitable Pro plugin 1.8.16+
Pro plan and higher

Do you run peer-to-peer fundraising and want every fundraiser page to offer the same rewards? With Charitable Ambassadors, rewards attached to the parent campaign appear on every fundraiser page underneath it.

This guide covers how inheritance works, how to set it up, the 2 checks that explain most problems, shared stock, and the Ambassadors rewards layout.

You set the tiers once, and 200 ambassadors all offer the same ones.

Charitable Rewards needs version 1.8.16 or higher of the Charitable Pro plugin, on the Pro plan and higher. Rewards on peer-to-peer campaigns also needs Charitable Ambassadors 3.0.0 or higher.

What’s In This Guide?

Watch the Video

If you’d rather watch than read, this short video shows rewards on a fundraiser page.

Why It Works This Way

Rewards are owned by your organization. An individual fundraiser can’t invent their own perks, change the prices, or remove the ones you set.

This is on purpose. If every fundraiser could define rewards, you’d be fulfilling 200 different promises at 200 different prices, with no way to know what you’d committed to.

Because of this, the fundraiser submission form replaces its suggested-amounts editor with a short note. The note explains that the tiers belong to the organizer, so ambassadors don’t see a setting they can’t use.

Setting It Up

  1. To get started, attach rewards to the parent campaign, not to individual fundraiser pages.
  2. On any reward with a stock limit, set the inventory scope to shared, so all fundraisers draw from 1 pool.
  3. Next, put the parent campaign in automatic mode. This matters more than it looks, as the next section explains.
  4. If you’d like a crowdfunding-style page, you can also set the Ambassadors fundraiser-page layout to the rewards variant.
A fundraiser's donation form showing rewards inherited from the parent campaign, with unlock amounts and remaining inventory

The Parent Must Be in Automatic Mode

This is the setting most likely to make you think rewards are broken on peer-to-peer.

Inherited rewards appear on a fundraiser’s donation form only when the parent campaign is in automatic mode. If the parent is in levels mode, the fundraiser’s donation form shows no rewards at all.

The reason is that a giving level sets the donation amount. On a fundraiser page, the amount has to stay the donor’s own choice for the totals to roll up to the parent correctly, so Rewards shows nothing rather than levels that can’t work.

So in levels mode, a fundraiser page shows reward cards on the page but nothing on the donation form. The page looks right and the form looks empty, which looks exactly like a bug.

If a fundraiser’s donation form shows no rewards, check the parent’s mode first.

The Other Half of the Same Check

There’s a second condition to know about. The parent campaign’s rewards must be turned on, not only attached.

Attaching rewards to a campaign doesn’t switch rewards on for it. If the parent’s rewards setting is off, fundraisers inherit nothing, even though the catalog shows the rewards as attached.

Between them, these 2 conditions explain nearly every “inheritance isn’t working” report.

Shared Inventory Is the Point

A reward with a stock limit of 50 and shared scope means 50 in total across the whole program. Per-campaign scope would mean 50 for each fundraiser, which for 200 fundraisers is 10,000 posters.

Shared is almost always what you want on peer-to-peer, so set it when you attach the reward. See Creating Rewards.

What Levels Do on Fundraiser Pages

Levels are display-only on fundraiser pages. A fundraiser page shows the parent’s rewards as threshold-style cards whatever the parent’s reward mode is.

This is because a pickable tier needs the level to set the amount, and a fundraiser’s form doesn’t do that. Donors on a fundraiser page give an amount and unlock rewards automatically, rather than picking a tier.

The Ambassadors Rewards Layout

Ambassadors comes with a fundraiser-page layout built around rewards. It’s a crowdfunding-style page with the reward cards in a sticky sidebar, tabs for story, updates and donors, and the fundraiser’s own name line.

An ambassador fundraiser page showing inherited reward cards in the sidebar alongside the funding panel

You can set it on the Ambassadors Templates tab. The layout is only selectable while Rewards is active.

If Rewards is installed but turned off, the card offers to activate it. If it isn’t installed, the card links to where you can get it.

Tips Worth Keeping in Mind

These habits keep rewards working across every fundraiser page.

  • Put the parent in automatic mode and leave it there. Peer-to-peer rewards are designed around that setup.
  • Use shared inventory scope on every reward with a stock limit, every time.
  • When inheritance looks broken, check the parent’s rewards setting and its mode before anything else.
  • Fulfillment is still yours. Claims from 200 fundraisers all land in 1 list in your admin.

FAQs on Rewards for Peer-to-Peer Campaigns

Why does a fundraiser’s donation form show no rewards?

Check that the parent campaign is in automatic mode and that its rewards setting is turned on. Those 2 conditions explain nearly every case.

Can an ambassador add their own rewards?

No. Rewards belong to your organization, so fundraisers can’t add, change or remove them.

Does each fundraiser get its own stock?

Only if you choose per-campaign scope. With shared scope, every fundraiser draws from 1 pool.

Developer Reference

Resolution

Charitable_Rewards_P2P_Source::resolve_source_campaign_id() maps a child campaign to the parent that owns its rewards.

The fundraiser page reads the resolved parent’s rewards directly. That’s why the page can show cards even in cases where the donation form does not.

The Inheritance Gate

Charitable_Rewards_Public::should_render_inherited_rewards( $campaign_id, $source_id, $source_enabled, $source_mode ) decides whether a child’s donation form renders inherited rewards. It returns false in either of these cases.

  1. The source campaign does not have rewards enabled.
  2. The request is for a child and the source campaign is in levels mode.

Both are intentional. The second is the condition described above.

Detection

FilterPurpose
charitable_rewards_ambassadors_activeOverride whether Rewards believes Ambassadors is present

Attachment Scope

Charitable_Rewards_Attachment_Repository::SCOPE_SHARED is the scope that makes 1 inventory pool serve every fundraiser. SCOPE_PER_CAMPAIGN gives each its own allowance.

Customization Examples

Render inherited rewards on children even when the parent is in levels mode.

// Not recommended. Levels cannot set the amount on a child form, so the cards
// will appear without their pickable behavior.
add_filter( 'charitable_rewards_ambassadors_active', '__return_true' );

The gate itself is not filterable, and that’s deliberate. The levels restriction exists because the behavior does not work on a child form, not as a policy choice.

Wrapping Up

You now know how fundraiser pages inherit rewards, the 2 settings to check when they don’t appear, and how to share stock across your whole program.

If you get stuck on any step, our support team is happy to help.

You May Also Want to Read

These guides cover the settings peer-to-peer rewards depend on.

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!