Charitable Documentation

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

Recurring Donations 2.0+

Do you want to make managing recurring donations easier for you and your donors?

The new Recurring Donations 2.0 extension in Charitable is just what you need! This powerful feature allows you to accept, manage, and report on subscription-based donations effortlessly.

With Charitable Pro version 2.0.0 and the Recurring Donations extension, you can enhance your fundraising efforts by incorporating recurring donations into any of your campaigns. This guide will walk you through the key features, setup, and best practices to help you get the most out of recurring donations.

Available in Charitable Pro 2.0.0+ (Recurring Donations extension).


Key Features

  • Accept recurring donations on any campaign, with flexible periods and amounts.
  • Recurring Only mode ensures all donations are subscriptions.
  • Donor self-service allows supporters to manage and cancel their own subscriptions.
  • Automated notifications for failed payments.
  • Advanced reporting tools, including MRR (Monthly Recurring Revenue) summary cards.
  • Export recurring donations data to CSV.
  • Compatible with major gateways like Stripe and PayPal.

Why Use Recurring Donations?

Recurring donors tend to contribute significantly more over time than one-time donors. By leveraging the Recurring Donations extension, you can provide supporters with an easy path for sustained giving, predict revenue streams for your organization, and utilize comprehensive reporting tools to track growth and retention.


See It In Action


Requirements

  • Charitable Pro (any plan that includes the Recurring Donations extension)
  • WordPress 5.9 or later
  • PHP 7.4 or later
  • A supported payment gateway (Stripe or PayPal) for automatic renewals

Getting Started

Activation

  1. Log in to your WordPress admin.
  2. Navigate to Charitable » Extensions.
  3. Find Recurring Donations and click Install and Activate.
  4. Once activated, new options for recurring donations will be available in the Campaign Builder.

How to Use The New Recurring Donation Features

Enabling Recurring Donations on a Campaign

Click on recurring donations in settings
  1. Open the Campaign Builder for any campaign
  2. Go to the Settings panel
  3. Expand the Recurring Donations section
  4. Select a mode from the dropdown (see Mode Options below)
  5. Configure period, amount, and length settings as needed
  6. Save or publish the campaign

Mode Options

ModeBehavior
DisabledNo recurring option is presented to donors
SimpleDonors see a checkbox to make their gift recurring
AdvancedDonors choose between one-time and recurring with a period selector
Recurring OnlyAll donations must be recurring; one-time option is hidden

Recurring Only mode (new in 2.0.0): Selecting this mode removes the one-time donation option entirely. A notice appears on the donation form: “All donations to this campaign are recurring.” Use this for monthly giving clubs, operational funds, or any campaign designed around sustained giving.

Period Configuration

When recurring is enabled, you can set:

  • Period mode: Fixed (admin-defined) or Variable (donor-chosen)
  • Donation period: Daily, Weekly, Monthly, Quarterly, Semi-Annually, Annually
  • Donation length: Number of recurring payments (0 = unlimited)

Donor Dashboard

Donors can view and manage their recurring donations from the donor dashboard or the [my_recurring_donations] shortcode.

Cancel Subscription (new in 2.0.0)

New recurring donations in donor dashboard

Cancel link appears in the recurring donations table for any subscription with a cancellable status (active, pending, on-hold). Clicking it presents a confirmation prompt before cancellation is processed.

After cancellation: – The subscription status updates to Cancelled – A success notice confirms the action – The donor is redirected back to the donor dashboard

Subscriptions with a non-cancellable status (completed, expired, already cancelled) display a dash in the Cancel column.


Emails

Payment Failed Email (new in 2.0.0)

An automated email sent to donors when a recurring payment fails. It fires when a subscription status changes to charitable-failed.

Recurring payment failed email

To configure:

  1. Go to Charitable » Settings » Emails
  2. Locate Payment Failed and click to edit
  3. Enable the email, customize the subject and body, and save

Available merge tags:

Merge TagDescription
{donor_first_name}Donor’s first name
{donor_full_name}Donor’s full name
{campaign_name}Campaign title
[charitable_email show=recurring_summary]Subscription summary block
{site_name}Your site name

The email is sent to the donor only, not the admin. To receive admin copies, configure a separate notification email.

Recurring Donation Cancelled Email

Sent to the donor when a subscription is cancelled, whether by the donor or an admin. Configurable in the same Emails settings screen.


Reporting

recurring donations report new

MRR Summary Cards (new in 2.0.0)

Located at Charitable » Reports » Advanced, select Recurring Donations from the report type dropdown.

Four summary cards appear at the top of the report:

CardDescription
Active SubscriptionsCount of all currently active recurring donations
Est. Monthly Revenue (MRR)All active subscriptions normalized to a monthly figure
New This PeriodSubscriptions created within the selected date range
Cancelled This PeriodSubscriptions cancelled within the selected date range

How MRR is calculated:

Each active subscription’s amount is multiplied by a period factor to produce its monthly equivalent:

PeriodMonthly Factor
Daily×30
Weekly×4.333
Monthly×1
Quarterly×0.333
Semi-Annual×0.167
Annual×0.083

Active Subscriptions and MRR are global figures that do not change when you adjust the date filter. New This Period and Cancelled This Period reflect the selected date range.

Exporting Recurring Donation Data

Use the Export button on the Recurring Donations admin list page (Charitable » Recurring Donations) to download a CSV of filtered results.


Shortcodes

[my_recurring_donations]

Displays the current donor’s recurring donations in a table. Intended for use on a logged-in donor dashboard page.

ParameterTypeDefaultDescription
campaign_idintLimit to donations for a specific campaign
statusstringallFilter by donation status

Customization

Status Badge Colors

Status badges are displayed as small colored pills in both the admin list table and the donor-facing tables.

StatusDefault Color
ActiveGreen (#008000)
PendingGray (#999)
CompletedBlue (#3fb8f5)
FailedOrange (#f7a129)
CancelledRed (#ff0000)
On HoldLight Blue (#8bb0e7)
ExpiredYellow (#ffe14a)

Template Overrides

To override a recurring donations template, copy the file from the plugin’s templates/ folder into your theme under charitable/and modify as needed.


Troubleshooting

The Cancel button does not appear in the donor dashboard

The cancel button only shows for subscriptions with a cancellable status (active, pending, on-hold). If the subscription is already cancelled, completed, or expired, no button is shown.

Additionally, some payment gateways do not support programmatic cancellation. For gateways that do not support it, the cancel button may not appear even for active subscriptions.

The Payment Failed email is not sending

Confirm the email is enabled in Charitable » Settings » Emails. Also verify that the subscription status is being updated to charitable-failed when a payment fails, as the email fires on that status transition.

MRR seems lower than expected

MRR only includes active subscriptions. Paused, on-hold, or failed subscriptions are not included. The figure is also an estimate based on stated billing periods, not actual payment history.

Recurring Only mode shows the one-time option

Clear your browser cache and any page caching plugins. The one-time option is hidden via CSS and JavaScript in the campaign builder and donation form. A caching layer serving a stale page may show outdated markup.


Developer Resources

Hooks and Filters

  • charitable_recurring_donation_modes – Filter the available recurring donation mode options
  • charitable_send_recurring_payment_failed – Control whether the Payment Failed email is sent for a specific donation
  • charitable_process_cancellation_{gateway} – Gateway-specific cancellation logic; return true to confirm success
  • charitable_recurring_cancel_redirect – Filter the redirect URL after a donor cancels a subscription
  • charitable_recurring_my_recurring_donations_table_after_receipt – Action for adding columns to the donor-facing recurring donations table

Useful Functions

  • charitable_recurring_get_recurring_donation( $donation_id ) – Returns a Charitable_Recurring_Donation object
  • charitable_recurring_get_valid_donation_statuses() – Returns array of valid status keys and labels

MRR Calculation

// Access MRR data programmatically
$report = Charitable_Report_Advanced_Recurring::get_instance();
$mrr_data = $report->get_mrr_data( $start_date, $end_date );
// Returns: active_count, mrr, new_count, cancelled_count

Additional Resources

/pattern cta

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!

ambassadors New

👤 Creator Profiles: Put a Face to Every Peer-to-Peer Campaign

Ambassadors 3.3.0 now provies Creator Profiles — giving your supporters a permanent, shareable public home that turns one-time fundraisers into ongoing relationships.

👤 Public Creator Pages: Give every fundraiser an instant, clean landing page at /creator/their-name/ to showcase their custom avatar, bio, and a browsable grid of their campaigns.

📊 Proof of Impact: Boost donor trust by displaying site-wide milestones on the profile—like total funds raised and total donor counts.

💳 Interactive Hover Cards: When donors hover over a creator’s name on a campaign page, a compact card expands with their bio and social handles right at the moment of decision.

📍 Responsible Location Sharing: Allow creators to safely show local supporters where they are based using only city, state, and country details.

🛠️ Self-Serve Customization: Fundraisers can update their own profiles and link up to six social networks directly from the My Campaigns hub, saving you admin time.

Ready to empower your advocates? Update to Ambassadors 3.3.0 and turn on “Enable Public Creator Page” today!

Improvement Payments

📱 Turn Mobile Scrollers Into Donors: Meet Charitable’s Mollie Upgrade

Losing mobile supporters because they hate typing out long card numbers on their phones? Charitable’s updated Mollie integration features:

⚡ One-Tap Wallet Checkout: Enable donors to complete their gifts instantly using Apple Pay or Google Pay with a simple face scan, fingerprint, or tap.

💰 No Extra PCI Burden: Skip complex domain verification and security compliance since all wallet transactions run safely through Mollie’s hosted checkout.

🛠️ Custom Cancel Routing: Keep the experience predictable by automatically sending donors who back out to your cancellation page, or use developer filters to route them to a custom page.

Visit this page to learn more.

ambassadors improved New

Moderation and Directory Screens In Ambassadors 3.0

Ambassadors 3.0 has new features: moderation and directory screens… now easily see those who are earning donations on your peer to peer network – including campaign creators that might need to be verified – all in one place. Generate reports, email ambassadors and campaign creators directly and more.

🚀 See when campaign creators and ambassadors have updated their campaigns, what donors/donation they have brought in and more.

🎉 Manually add ambassadors and campaign creators, and approve them in one-click!

Visit this page to learn more.

New Payments

⚡ Unlock India-Based Donations: Meet Charitable’s Native Razorpay Integration

Trying to collect donations in India? Charitable’s native Razorpay integration features:

⚡ Instant UPI Integration: Accept fast, local donations directly inside your form via apps like PhonePe, Google Pay, Paytm, and BHIM without sending donors away from your site.

📲 Auto-Generated Campaign QRs: Instantly render scannable QR codes encoding a UPI deep link directly on your public campaign pages and sidebars for an effortless “scan-to-give” experience.

💰 Dual Local & Global Reach: Headline your campaigns in INR while seamlessly accepting major international currencies like USD, EUR, GBP, and CAD to maximize global support.

🔁 Seamless Recurring Giving: Fully integrates with the Charitable Recurring addon to manage automatic monthly subscriptions directly through Razorpay without extra code.

↩️ Automatic Two-Way Sync: Keep your books perfectly clean with two-way refund syncing—issue a refund inside WordPress or your Razorpay dashboard and both sides update automatically.

🔒 Webhook-Verified Security: Automatically protect your donation records using HMAC-signed webhook verification to ensure every status update represents real money cleared on the rails.

Visit this page to learn more.

Integration New

🎉 New Built-in PushEngage Integration

Struggling with falling email open rates and rising ad costs just to keep your supporters engaged? Charitable’s built-in PushEngage integration features:

🔔 Zero-Fee Direct Messaging: Deliver crisp, instant pop-up notifications straight to your donors’ desktops and mobile devices.

⏱️ Four Smart Automated Triggers: Automatically send updates for immediate donation thank yous, full-list campaign launches, urgent “ending soon” alerts, and goal milestone celebrations.

📈 Group Momentum Broadcasts: Turn private milestones into public wins by automatically broadcasting alerts to your entire subscriber list the moment a campaign hits 50%, 75%, or 100% of its goal.

📊 Automatic Analytics Tracking: Monitor exactly where your incoming notification traffic is coming from with built-in attribution that requires zero complex configuration.

Visit this page to learn more.