Charitable Documentation

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

Hooks and Filters in Rewards

Requires:

  • Charitable Pro 1.8.16+
  • Charitable Rewards 1.0.0+

Every hook Charitable Rewards exposes, grouped by what it affects. Feature pages carry worked examples; this is the complete index.

Add your snippets to a site-specific plugin or a code-snippets plugin, not to a theme’s functions.php, so they survive a theme change.

Actions

Six actions, three of which are the integration points for syncing claims to an outside system.

ActionFires when
charitable_rewards_claim_confirmedA claim moves to confirmed, meaning the donation went through
charitable_rewards_claim_fulfilledA claim is marked fulfilled
charitable_rewards_claim_revokedA claim is revoked
charitable_rewards_onboarding_completeThe setup wizard reaches its final step
charitable_rewards_onboarding_resetRe-Run Setup Wizard is used
charitable_rewards_onboarding_help_slotRenders inside the Help & Onboarding block, for your own buttons

Donation form and display

FilterChanges
charitable_rewards_form_headingHeading above the rewards block on a donation form
charitable_rewards_form_heading_no_rewardThat heading when no reward is currently in reach
charitable_rewards_thresholds_headingHeading above the threshold card list
charitable_rewards_threshold_strip_with_cardsWhether the compact threshold strip renders alongside cards
charitable_rewards_summary_labelThe reward label in the donation summary
charitable_rewards_decline_labelThe decline-rewards checkbox wording
charitable_rewards_change_amount_level_labelLabel on the change-your-level link in levels mode
charitable_rewards_change_amount_level_linkThe change-your-level link itself
charitable_rewards_unlock_colorAccent color for the unlocked state
charitable_rewards_tier_image_sizeRegistered image size for reward card images
charitable_rewards_level_image_sizeRegistered image size for giving-level card images
charitable_rewards_view_modelsThe view models behind card rendering, shared by form and shortcode
charitable_reward_cards_shortcodeOutput or attributes of [charitable_reward_cards]

Behavior

FilterChanges
charitable_rewards_stacking_modeWhether a donor receives only the highest reward or everything they crossed. Second argument is the campaign ID
charitable_rewards_reservation_ttlHow long a limited reward is held for a pending donation
charitable_rewards_backers_statusesWhich claim statuses count toward public claim counts
charitable_rewards_log_renewal_to_donorWhether a renewal claim is logged against the donor

Digital delivery

FilterChanges
charitable_rewards_download_url_ttlLifetime in seconds of a signed download URL. Default 604800, seven days
charitable_rewards_allowed_file_typesPermitted file types for digital reward uploads
charitable_rewards_max_file_sizeUpload size ceiling

Fulfillment

FilterChanges
charitable_rewards_carriersThe carrier list offered when recording tracking

Receipts and tax

FilterChanges
charitable_rewards_receipt_headingHeading of the rewards block on a receipt
charitable_rewards_receipt_pending_noteNote shown against a claim not yet fulfilled
charitable_rewards_tax_receipt_headingHeading above the tax disclosure
charitable_rewards_tax_receipt_disclaimerThe tax disclosure wording

Emails

Each of the three emails exposes the same four filters.

EmailFilters
Reward confirmationcharitable_email_reward_confirmation_recipient, _default_subject, _default_headline, _default_body
Reward digital deliverycharitable_email_reward_digital_delivery_recipient, _default_subject, _default_headline, _default_body
Reward shippedcharitable_email_reward_shipped_recipient, _default_subject, _default_headline, _default_body

Each _default_* filter is prefixed with the same charitable_email_reward_<email>_ stem as its recipient filter.

Admin screens

FilterChanges
charitable_rewards_admin_tabsThe Rewards tab list
charitable_rewards_admin_tab_badgesCount badges on the tabs
charitable_rewards_overview_range_presetsThe dashboard date-range presets
charitable_rewards_overview_empty_state_htmlMarkup shown when there is nothing to report
charitable_rewards_catalog_search_limitHow many results the catalog search returns
charitable_rewards_reports_overview_statA stat in the Reports integration

Setup wizard

FilterChanges
charitable_rewards_onboarding_enabledTurn the wizard off entirely
charitable_rewards_onboarding_stepsAdd, remove, or reorder steps
charitable_rewards_onboarding_capabilityWho can run it. Defaults to charitable_manage_rewards
charitable_rewards_onboarding_should_show_panelWhether the Overview entry panel renders
charitable_rewards_onboarding_campaign_limitHow many campaigns the attach step lists
charitable_rewards_onboarding_step_errorsPer-step validation messages
charitable_rewards_onboarding_docs_urlBase URL for the Learn more links
charitable_rewards_onboarding_docs_url_for_stepPer-step docs URL, for deep-linking to an anchor
charitable_rewards_onboarding_video_idVideo ID for the step 1 tile
charitable_rewards_onboarding_video_fileSelf-hosted video file for the step 1 tile
charitable_rewards_onboarding_video_paramsPlayer parameters for the step 1 tile

Environment, license, and integration

FilterChanges
charitable_rewards_license_stateThe resolved license state
charitable_rewards_license_grace_period_secondsLicense grace period
charitable_rewards_ambassadors_activeWhether Rewards believes Charitable Ambassadors is present
charitable_rewards_docs_urlDocumentation base URL used outside the wizard

Capabilities

Four capabilities, so access can be scoped rather than all-or-nothing.

CapabilityAllows
charitable_manage_rewardsCreate, edit, and archive rewards
charitable_fulfill_rewardsWork the claims queue and mark claims fulfilled
charitable_view_reward_piiSee donor names and shipping addresses
charitable_manage_reward_taxChange fair market values and tax settings

Settings

Stored in the charitable_rewards_settings option, read through Charitable_Rewards_Settings::get().

KeyDefaultPurpose
enable_tax_receiptingfalseRecord fair market value and disclose the deductible portion
reservation_ttl_minutes30How long a limited reward is held for a pending donation

Per-campaign settings live under campaign_settings_v2 in the campaign’s settings.rewards array. Those keys are listed on Automatic Mode.

Constants

ConstantValuePurpose
Charitable_Rewards_Env::MIN_PRO_VERSION1.8.16Below this the admin UI locks behind a notice
Charitable_Rewards_Download::DEFAULT_TTL604800Signed download URL lifetime in seconds
Charitable_Rewards_Matcher::MODE_HIGHESThighestDefault stacking mode
Charitable_Rewards_Matcher::MODE_CUMULATIVEcumulativeAlternative stacking mode

Value objects

ClassExposes
Charitable_Rewards_RewardType, scope, attach model, and status constants
Charitable_Rewards_ClaimStatus and claim-type constants
Charitable_Rewards_LevelThe giving-level fields
Charitable_Rewards_Taxdeductible( $total, $fmv ), a pure helper
Charitable_Rewards_Trackingcarriers(), save(), tracking_url(), parts_for_donation_reward()
Charitable_Rewards_Shippingfield_keys(), parts_for_donation(), format_address()
Charitable_Rewards_P2P_Sourceresolve_source_campaign_id()

Storage

Rewards keeps its own tables for rewards, campaign attachments, claims, claim activity, reservations, and campaign levels. Shipping addresses and tracking numbers are donation post meta rather than table columns, prefixed charitable_rewards_shipping_ and charitable_rewards_tracking_ respectively.

Schemas aren’t reproduced here on purpose. They change between releases, and a copy in the docs goes stale silently. Read them from the schema class if you need the current shape.

Two columns are declared but not written: deductible_snapshot and tax_profile_version on the claims table. The deductible figure is derived at render time from the frozen fair market value. Don’t build reporting that reads them expecting data.

Things that are deliberately not filterable

Worth knowing so you don’t go looking:

  • A reward’s type after creation. Behavior has already happened by the time you’d change it.
  • Deleting a reward. There is no delete path at all; archive is the supported route, because claims reference rewards.
  • The peer-to-peer levels gate. Child donation forms don’t render inherited rewards when the parent is in levels mode, because a level sets the donation amount and a child form cannot. It’s a capability limit, not a policy.

Related

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!