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.
| Action | Fires when |
|---|---|
charitable_rewards_claim_confirmed | A claim moves to confirmed, meaning the donation went through |
charitable_rewards_claim_fulfilled | A claim is marked fulfilled |
charitable_rewards_claim_revoked | A claim is revoked |
charitable_rewards_onboarding_complete | The setup wizard reaches its final step |
charitable_rewards_onboarding_reset | Re-Run Setup Wizard is used |
charitable_rewards_onboarding_help_slot | Renders inside the Help & Onboarding block, for your own buttons |
Donation form and display
| Filter | Changes |
|---|---|
charitable_rewards_form_heading | Heading above the rewards block on a donation form |
charitable_rewards_form_heading_no_reward | That heading when no reward is currently in reach |
charitable_rewards_thresholds_heading | Heading above the threshold card list |
charitable_rewards_threshold_strip_with_cards | Whether the compact threshold strip renders alongside cards |
charitable_rewards_summary_label | The reward label in the donation summary |
charitable_rewards_decline_label | The decline-rewards checkbox wording |
charitable_rewards_change_amount_level_label | Label on the change-your-level link in levels mode |
charitable_rewards_change_amount_level_link | The change-your-level link itself |
charitable_rewards_unlock_color | Accent color for the unlocked state |
charitable_rewards_tier_image_size | Registered image size for reward card images |
charitable_rewards_level_image_size | Registered image size for giving-level card images |
charitable_rewards_view_models | The view models behind card rendering, shared by form and shortcode |
charitable_reward_cards_shortcode | Output or attributes of [charitable_reward_cards] |
Behavior
| Filter | Changes |
|---|---|
charitable_rewards_stacking_mode | Whether a donor receives only the highest reward or everything they crossed. Second argument is the campaign ID |
charitable_rewards_reservation_ttl | How long a limited reward is held for a pending donation |
charitable_rewards_backers_statuses | Which claim statuses count toward public claim counts |
charitable_rewards_log_renewal_to_donor | Whether a renewal claim is logged against the donor |
Digital delivery
| Filter | Changes |
|---|---|
charitable_rewards_download_url_ttl | Lifetime in seconds of a signed download URL. Default 604800, seven days |
charitable_rewards_allowed_file_types | Permitted file types for digital reward uploads |
charitable_rewards_max_file_size | Upload size ceiling |
Fulfillment
| Filter | Changes |
|---|---|
charitable_rewards_carriers | The carrier list offered when recording tracking |
Receipts and tax
| Filter | Changes |
|---|---|
charitable_rewards_receipt_heading | Heading of the rewards block on a receipt |
charitable_rewards_receipt_pending_note | Note shown against a claim not yet fulfilled |
charitable_rewards_tax_receipt_heading | Heading above the tax disclosure |
charitable_rewards_tax_receipt_disclaimer | The tax disclosure wording |
Emails
Each of the three emails exposes the same four filters.
| Filters | |
|---|---|
| Reward confirmation | charitable_email_reward_confirmation_recipient, _default_subject, _default_headline, _default_body |
| Reward digital delivery | charitable_email_reward_digital_delivery_recipient, _default_subject, _default_headline, _default_body |
| Reward shipped | charitable_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
| Filter | Changes |
|---|---|
charitable_rewards_admin_tabs | The Rewards tab list |
charitable_rewards_admin_tab_badges | Count badges on the tabs |
charitable_rewards_overview_range_presets | The dashboard date-range presets |
charitable_rewards_overview_empty_state_html | Markup shown when there is nothing to report |
charitable_rewards_catalog_search_limit | How many results the catalog search returns |
charitable_rewards_reports_overview_stat | A stat in the Reports integration |
Setup wizard
| Filter | Changes |
|---|---|
charitable_rewards_onboarding_enabled | Turn the wizard off entirely |
charitable_rewards_onboarding_steps | Add, remove, or reorder steps |
charitable_rewards_onboarding_capability | Who can run it. Defaults to charitable_manage_rewards |
charitable_rewards_onboarding_should_show_panel | Whether the Overview entry panel renders |
charitable_rewards_onboarding_campaign_limit | How many campaigns the attach step lists |
charitable_rewards_onboarding_step_errors | Per-step validation messages |
charitable_rewards_onboarding_docs_url | Base URL for the Learn more links |
charitable_rewards_onboarding_docs_url_for_step | Per-step docs URL, for deep-linking to an anchor |
charitable_rewards_onboarding_video_id | Video ID for the step 1 tile |
charitable_rewards_onboarding_video_file | Self-hosted video file for the step 1 tile |
charitable_rewards_onboarding_video_params | Player parameters for the step 1 tile |
Environment, license, and integration
| Filter | Changes |
|---|---|
charitable_rewards_license_state | The resolved license state |
charitable_rewards_license_grace_period_seconds | License grace period |
charitable_rewards_ambassadors_active | Whether Rewards believes Charitable Ambassadors is present |
charitable_rewards_docs_url | Documentation base URL used outside the wizard |
Capabilities
Four capabilities, so access can be scoped rather than all-or-nothing.
| Capability | Allows |
|---|---|
charitable_manage_rewards | Create, edit, and archive rewards |
charitable_fulfill_rewards | Work the claims queue and mark claims fulfilled |
charitable_view_reward_pii | See donor names and shipping addresses |
charitable_manage_reward_tax | Change fair market values and tax settings |
Settings
Stored in the charitable_rewards_settings option, read through Charitable_Rewards_Settings::get().
| Key | Default | Purpose |
|---|---|---|
enable_tax_receipting | false | Record fair market value and disclose the deductible portion |
reservation_ttl_minutes | 30 | How 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
| Constant | Value | Purpose |
|---|---|---|
Charitable_Rewards_Env::MIN_PRO_VERSION | 1.8.16 | Below this the admin UI locks behind a notice |
Charitable_Rewards_Download::DEFAULT_TTL | 604800 | Signed download URL lifetime in seconds |
Charitable_Rewards_Matcher::MODE_HIGHEST | highest | Default stacking mode |
Charitable_Rewards_Matcher::MODE_CUMULATIVE | cumulative | Alternative stacking mode |
Value objects
| Class | Exposes |
|---|---|
Charitable_Rewards_Reward | Type, scope, attach model, and status constants |
Charitable_Rewards_Claim | Status and claim-type constants |
Charitable_Rewards_Level | The giving-level fields |
Charitable_Rewards_Tax | deductible( $total, $fmv ), a pure helper |
Charitable_Rewards_Tracking | carriers(), save(), tracking_url(), parts_for_donation_reward() |
Charitable_Rewards_Shipping | field_keys(), parts_for_donation(), format_address() |
Charitable_Rewards_P2P_Source | resolve_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
- Charitable Rewards – the hub page.
- Automatic Mode – per-campaign settings keys and card state classes.
- Delivering Rewards – signed download URLs and shipping fields.
- Claims and Fulfillment – the three claim actions in context.
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
🔗 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 →




