Charitable Documentation

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

Campaign Showcase

The Campaign Showcase block lets you display fundraising campaigns in a modern, interactive layout with filtering, sorting, search, and optional carousel or grid – all without leaving the Block Editor. It is built on the same [campaigns] shortcode and shares all of its enhanced parameters (Charitable Pro 1.8.13+).


Table of Contents


Requirements

  • Charitable Pro: Version 1.8.13 or higher
  • WordPress: Version 6.2 or higher
  • PHP: Version 7.4 or higher

The Campaign Showcase block is available in the Block Editor (Gutenberg). It uses the same backend as the [campaigns] shortcode; any parameter supported by the shortcode for Campaign Showcase features can also be used when embedding via shortcode.


Getting Started

  1. Edit a page or post in the Block Editor.
  2. Add a block and search for Campaign Showcase (or Charitable).
  3. Insert the Campaign Showcase block.
  4. Use the Campaign Settings, Display Settings, Interactive Features, and Search and Sorting panels in the block’s sidebar to configure which campaigns appear and how they look and behave.

The block renders a live preview in the editor. On the frontend, it outputs the same [campaigns] shortcode with the options you chose, so behavior and styling match.

Key Benefits

  • No shortcode syntax: Configure everything via the block’s sidebar.
  • Live preview: See changes immediately in the editor.
  • AJAX-powered: Filtering, sorting, search, and pagination work without page reloads.
  • Carousel or grid: Switch layouts from the sidebar.
  • Fully themeable: Color, typography, and spacing controls built in.

Block Settings (Editor)

All settings below are available in the block sidebar when the Campaign Showcase block is selected. Each group corresponds to a collapsible panel.

Campaign Settings

Controls which campaigns are fetched and how they are ordered.

SettingShortcode ParameterDefaultDescription
Number of campaignsnumbersite defaultHow many campaigns to display. Use -1 for all.
Order byorderbypost_dateSort field: post_date, post_title, post_modified, rand, menu_order, closest_to_goal, number_donations, donation_amount
OrderorderDESCSort direction: ASC or DESC
Campaign IDsid–Comma-separated campaign IDs to display specific campaigns only
Categorycategory–Comma-separated campaign category slugs to include
Tagtag–Comma-separated campaign tag slugs to include
Statusstatus–Filter by status: active, finished, or leave blank for all
Excludeexclude–Comma-separated campaign IDs to exclude
Parent campaigns onlyparent_onlyfalseShow only top-level (parent) campaigns
Child campaigns ofparent_campaigns–Comma-separated parent campaign IDs – shows only their child campaigns
Creatorcreator–Filter to campaigns by a specific creator user ID
Include inactiveinclude_inactivefalseInclude campaigns that are not currently active

Display Settings

Controls how each campaign card looks.

SettingShortcode ParameterDefaultDescription
LayoutlayoutgridLayout style: leave blank for default grid, card for card layout, carousel for carousel
Columnscolumns2Number of columns in the grid
ButtonbuttondonateButton mode: donate (go to donation page), modal (open modal overlay), view (view campaign), or hide
Button textbutton_text–Override the default donate button label
Show View Campaign buttonshow_view_buttonfalseShow a secondary View Campaign button alongside the donate button
View button textview_button_text–Override the default view button label
Description lengthdescription_limit100Maximum characters of campaign description to show
Image heightimage_height–Fixed height in pixels for campaign thumbnail images
Title over imagetitle_over_imagefalseDisplay the campaign title overlaid on the thumbnail image
Zoom image on hoverimage_hover_zoomfalseZoom thumbnail image on hover
Donation displaydonation_displayamount_goalHow to display donation totals: amount_goal, amount_only, goal_only, or none
Show progress barshow_progress_bartrueShow the donation progress bar
Show creatorshow_creatorfalseShow the campaign creator’s name
Show parent linkshow_parent_linkfalseShow a link to the parent campaign (for fundraisers)
Show campaign typeshow_campaign_typefalseShow the campaign type label
Show fundraiser countshow_fundraiser_countfalseShow the number of fundraisers on the campaign
Show aggregated statsshow_aggregated_statsfalseShow donation stats aggregated across child campaigns
Show fundraise buttonshow_fundraise_buttonfalseShow a Start Fundraising button on each card
Show tagsshow_tagsfalseDisplay campaign taxonomy tags on each card
Show badgesshow_badgestrueMaster toggle – show or hide all urgency badges
Show time badgeshow_time_badgetrueBadge showing time remaining until campaign end
Show funding badgeshow_funding_badgetrueBadge showing funding status (for example, Funded!)
Show donations badgeshow_donations_badgefalseBadge showing total amount raised
Show donation count badgeshow_donations_count_badgefalseBadge showing number of donations received
Show donors badgeshow_donors_badgefalseBadge showing total unique donor count
Show quick donateshow_quick_donatefalseShow pre-selected donation amount buttons on each card
Quick donate prefixquick_donate_prefix–Text prefix for each amount button (for example, Give renders “Give $25”)

Carousel (when layout is Carousel)

These settings only apply when Layout is set to Carousel.

SettingShortcode ParameterDefaultDescription
Visible slidescarousel_slides3Number of slides visible at once
Autoplaycarousel_autoplayfalseAuto-advance slides
Autoplay speedcarousel_speed5000Auto-advance interval in milliseconds
Navigation positioncarousel_nav_positioninsideArrow position: inside, outside, or none

Interactive Features

SettingShortcode ParameterDefaultDescription
Show searchshow_searchfalseShow a keyword search box above the campaign grid
Show sort dropdownshow_sortfalseShow a sort dropdown above the grid
Sort optionssort_options–Comma-separated list of sort options to show. Available: post_date, post_title, donation_amount, closest_to_goal, number_donations

Search and Sorting

See Interactive Features above. Search and sort controls appear above the campaign grid and update results via AJAX without a page reload.

Pagination and Navigation

SettingShortcode ParameterDefaultDescription
Enable paginationpaginationfalseEnable pagination
Pagination typepagination_typenumberedStyle: numbered or load_more
Pagination positionpagination_positionbottomWhere to show pagination: top, bottom, or both
Show prev / nextpagination_prev_nexttrueShow Previous and Next links in numbered pagination
Show first / lastpagination_first_lasttrueShow First and Last links in numbered pagination
Page rangepagination_mid_size2Number of page links to show around the current page

Filter Settings (which campaigns)

SettingShortcode ParameterDefaultDescription
Show filter pillsshow_filtersfalseShow category and tag filter pills above the grid
Filter typesfilter_typescategory,tagWhich taxonomies to show as pills: category, tag, or both
Filter limitfilter_limit15Maximum number of pills to show per taxonomy
Filter order byfilter_orderbycountHow to order pills: count, name, or slug
Filter orderfilter_orderDESCFilter pill sort direction: ASC or DESC

Colors

All color settings accept hex, rgb, rgba, or any valid CSS color value. When set via the block, they are output as inline CSS custom properties on the campaign loop wrapper. You can also set them directly via shortcode or override them in CSS.

SettingShortcode ParameterDescription
Primary colorcolor_primaryPrimary accent color (affects highlights and active states)
Backgroundcolor_backgroundCard background color
Bordercolor_borderCard border color
Textcolor_textGeneral text color
Button backgroundcolor_buttonDonate button background color
Button textcolor_button_textDonate button text color
View button backgroundcolor_view_buttonView Campaign button background color
View button textcolor_view_button_textView Campaign button text color
Title colorcolor_titleCampaign title text color
Progress bar fillcolor_progress_barFilled portion of the progress bar
Progress bar backgroundcolor_progress_bgEmpty (background) portion of the progress bar

Typography

All font size values accept a plain number (interpreted as pixels) or any valid CSS length (for example, 1.2rem, 18px).

SettingShortcode ParameterDescription
Title font sizefont_size_titleCampaign title font size
Description font sizefont_size_descCampaign description text font size
Button font sizefont_size_buttonDonate and view button font size
Badge font sizefont_size_badgeUrgency badge text font size
Amount font sizefont_size_amountDonation amount text font size
Stats font sizefont_size_statsDonation stats text font size
Title font weightfont_weight_titleCampaign title font weight (for example, 400, 600, bold)

Spacing and Borders

Values accept a plain number (pixels) or any valid CSS length.

SettingShortcode ParameterDescription
Card paddingcard_paddingInner padding of each campaign card
Card gapcard_gapSpace between cards in the grid
Card border radiuscard_border_radiusRounded corner radius on each card
Image border radiusimage_border_radiusRounded corner radius on campaign thumbnail images
Border widthborder_widthCard border thickness
Box shadowbox_shadowCard box shadow (accepts any valid CSS box-shadow value)

Ambassadors (Peer-to-Peer)

When the Charitable Ambassadors extension is active, additional settings appear to control peer-to-peer fundraising display. These use the parent_only, parent_campaigns, show_fundraiser_count, show_aggregated_stats, and show_fundraise_button parameters documented above.


Layouts

Card Grid

The default layout displays campaigns in a responsive grid. Set layout="card" for the card variant with a more prominent image and structured content area.

[campaigns layout="card" columns="3"]

Carousel / Slider

Set layout="carousel" to display campaigns in a horizontally scrolling carousel. Combine with carousel settings to control the number of visible slides and navigation behavior.

[campaigns layout="carousel" carousel_slides="3" carousel_autoplay="true" carousel_speed="5000"]

Interactive Features

When show_search, show_sort, or show_filters is enabled, a control bar appears above the campaign grid. All interactions update the grid via AJAX without a full page reload.

  • Search: Filters campaigns by title keyword as the visitor types.
  • Sort dropdown: Lets visitors re-order campaigns by date, title, amount raised, closest to goal, or donation count.
  • Filter pills: Shows clickable category and tag pills. Clicking a pill filters the grid to matching campaigns only.

Multiple controls can be active simultaneously. The current state is preserved across paginated loads.


Pagination and Navigation

Pagination is disabled by default. When enabled, campaigns are split across pages based on the number setting.

  • Numbered: Shows page numbers with optional Previous / Next and First / Last links.
  • Load More: Appends the next page of campaigns below the current results when the button is clicked.

The pagination_mid_size setting controls how many page numbers appear around the current page in numbered mode. Previous / Next and First / Last links can be hidden individually using pagination_prev_next and pagination_first_last.


Styling and Typography

All visual settings (colors, font sizes, spacing) set via the block sidebar are compiled into inline CSS custom properties and applied to the campaign loop wrapper element. This means each Campaign Showcase instance on a page can have independent styling.

You can also apply the same properties via the css_variables shortcode parameter:

[campaigns css_variables="--charitable-cs-btn-bg: #e74c3c; --charitable-cs-btn-color: #ffffff;"]

Or target the wrapper in your theme CSS:

.campaign-loop {
    --charitable-cs-btn-bg: #e74c3c;
    --charitable-cs-btn-color: #ffffff;
}

Ambassadors (Peer-to-Peer)

When the Charitable Ambassadors extension is active, the Campaign Showcase supports peer-to-peer fundraising display. Use these parameters to control the experience:

  • parent_only="true" – Show only parent campaigns, not individual fundraiser pages.
  • parent_campaigns="123,456" – Show only fundraisers that are children of specific campaigns.
  • show_fundraiser_count="true" – Show how many fundraisers are running for each campaign.
  • show_aggregated_stats="true" – Roll up donation totals from all child fundraisers into the parent campaign stats.
  • show_fundraise_button="true" – Show a Start Fundraising button on each campaign card.

Shortcode Reference

The full [campaigns] shortcode reference. All parameters work in both the block (via the sidebar) and the classic shortcode.

Core Parameters

ParameterTypeDefaultDescription
idstring–Comma-separated campaign IDs to display only specific campaigns
numberintsite defaultNumber of campaigns to display. Use -1 for all.
orderbystringpost_dateSort field: post_date, post_title, post_modified, rand, menu_order, closest_to_goal, number_donations, donation_amount
orderstringDESCSort direction: ASC or DESC
categorystring–Comma-separated campaign category slugs to include
tagstring–Comma-separated campaign tag slugs to include
statusstring–Campaign status filter: active, finished, or leave blank for all
excludestring–Comma-separated campaign IDs to exclude
parent_onlyboolfalseShow only top-level (parent) campaigns
parent_campaignsstring–Comma-separated parent IDs – shows only their child campaigns
creatorstring–Filter to campaigns created by a specific user ID
include_inactiveboolfalseInclude campaigns that are not currently active

Display Parameters

ParameterTypeDefaultDescription
layoutstring–Layout style: leave blank for default grid, card for card layout, carousel for carousel
columnsint2Number of columns in the grid
buttonstringdonateButton mode: donate, modal, view, or hide
button_textstring–Override default donate button label
show_view_buttonboolfalseShow a secondary View Campaign button
view_button_textstring–Override default view button label
description_limitint100Maximum characters of campaign description to show
image_heightint–Fixed height in pixels for campaign thumbnail images
title_over_imageboolfalseDisplay the campaign title overlaid on the thumbnail image
image_hover_zoomboolfalseZoom thumbnail on hover
donation_displaystringamount_goalHow to display donation totals: amount_goal, amount_only, goal_only, or none
show_progress_barbooltrueShow the donation progress bar
show_creatorboolfalseShow campaign creator name
show_parent_linkboolfalseShow link to parent campaign (for fundraisers)
show_campaign_typeboolfalseShow campaign type label
show_fundraiser_countboolfalseShow number of fundraisers
show_aggregated_statsboolfalseShow aggregated stats across child campaigns
show_fundraise_buttonboolfalseShow a Start Fundraising button
show_tagsboolfalseDisplay campaign tags on each card
css_variablesstring–Inline CSS custom properties applied to the campaign loop wrapper

Badge Parameters

ParameterTypeDefaultDescription
show_badgesbooltrueMaster toggle – show or hide all urgency badges
show_time_badgebooltrueBadge showing time remaining until campaign end
show_funding_badgebooltrueBadge showing funding status
show_donations_badgeboolfalseBadge showing total amount raised
show_donations_count_badgeboolfalseBadge showing number of donations received
show_donors_badgeboolfalseBadge showing total unique donor count

Quick Donate Parameters

Quick donate renders pre-selected donation amount buttons directly on the campaign card.

ParameterTypeDefaultDescription
show_quick_donateboolfalseEnable quick donate buttons on cards
quick_donate_prefixstring–Text prefix for each amount button (for example, Give renders “Give $25”)

When button="modal", clicking an amount button opens the modal with that amount pre-selected. When button="donate", clicking an amount button navigates to the donation page with the amount pre-filled. If no suggested amounts are configured, a custom amount input is shown instead.

Carousel Parameters

Only apply when layout="carousel".

ParameterTypeDefaultDescription
carousel_slidesint3Number of slides visible at once
carousel_autoplayboolfalseAuto-advance slides
carousel_speedint5000Auto-advance interval in milliseconds
carousel_nav_positionstringinsideNavigation arrow position: inside, outside, or none

Search, Sort, and Filter Parameters

ParameterTypeDefaultDescription
show_searchboolfalseShow a keyword search box above the campaign grid
show_sortboolfalseShow a sort dropdown above the grid
sort_optionsstring–Comma-separated sort options to show. Available: post_date, post_title, donation_amount, closest_to_goal, number_donations
show_filtersboolfalseShow category and tag filter pills
filter_typesstringcategory,tagWhich taxonomies to show as pills: category, tag, or both
filter_limitint15Maximum number of pills to show per taxonomy
filter_orderbystringcountHow to order pills: count, name, or slug
filter_orderstringDESCFilter pill sort direction: ASC or DESC

Pagination Parameters

ParameterTypeDefaultDescription
paginationboolfalseEnable pagination
pagination_typestringnumberedStyle: numbered or load_more
pagination_positionstringbottomWhere to show pagination: top, bottom, or both
pagination_prev_nextbooltrueShow Previous and Next links (numbered mode)
pagination_first_lastbooltrueShow First and Last links (numbered mode)
pagination_mid_sizeint2Number of page links to show around the current page

Color Parameters

All color values accept hex, rgb, rgba, or any valid CSS color.

ParameterTypeDescription
color_primarystringPrimary accent color
color_backgroundstringCard background color
color_borderstringCard border color
color_textstringGeneral text color
color_buttonstringDonate button background
color_button_textstringDonate button text color
color_view_buttonstringView Campaign button background
color_view_button_textstringView Campaign button text color
color_titlestringCampaign title color
color_progress_barstringProgress bar fill color
color_progress_bgstringProgress bar background color

Typography Parameters

Font size values accept a plain number (pixels) or any valid CSS length (for example, 1.2rem).

ParameterTypeDescription
font_size_titlestringCampaign title font size
font_size_descstringDescription text font size
font_size_buttonstringButton font size
font_size_badgestringBadge text font size
font_size_amountstringDonation amount font size
font_size_statsstringDonation stats font size
font_weight_titlestringTitle font weight (for example, 400, 600, bold)

Spacing and Border Parameters

Values accept a plain number (pixels) or any valid CSS length.

ParameterTypeDescription
card_paddingstringInner padding of each card
card_gapstringSpace between cards
card_border_radiusstringCard corner radius
image_border_radiusstringThumbnail image corner radius
border_widthstringCard border thickness
box_shadowstringCard box shadow (any valid CSS box-shadow value)

Examples

Basic 3-column card grid with modal donate:

[campaigns layout="card" columns="3" button="modal"]

Active campaigns sorted by closest to goal, with load-more pagination:

[campaigns status="active" orderby="closest_to_goal" number="9" pagination="true" pagination_type="load_more"]

Campaign carousel with 4 visible slides and autoplay:

[campaigns layout="carousel" carousel_slides="4" carousel_autoplay="true" carousel_speed="4000"]

With quick donate buttons and custom button color:

[campaigns show_quick_donate="true" button="modal" color_button="#e74c3c"]

With search, sort, and category filters:

[campaigns show_search="true" show_sort="true" show_filters="true" filter_types="category" columns="3"]

Specific campaigns only:

[campaigns id="12,45,67" layout="card" columns="3"]

Troubleshooting

Block or preview not showing correctly

  • Confirm Charitable Pro 1.8.13 or higher is active.
  • Deactivate other plugins temporarily to rule out a JavaScript conflict.
  • Check the browser console for JavaScript errors.
  • Try switching to a default WordPress theme (Twenty Twenty-Four) to rule out a theme conflict.

Sort / filter / search not working

  • Verify that the page is not served from an aggressive full-page cache that strips the data-shortcode-atts attribute from the <ol> wrapper.
  • The AJAX handler requires wp-admin/admin-ajax.php to be reachable. Some security plugins block this endpoint.
  • Check that JavaScript is enabled and no Content Security Policy is blocking inline scripts.

Carousel not sliding or arrows missing

  • Ensure layout="carousel" is set.
  • Check that the Swiper library assets are loading (look for /assets/js/libraries/swiper* in the browser network tab).
  • If using a caching plugin, clear the cache after saving the page.

Styling looks wrong

  • If colors or sizes set in the block sidebar are not appearing, clear the page cache.
  • Custom CSS that targets .campaign-loop selectors with !important will override the CSS custom properties set by the block. Remove conflicting rules or increase specificity.
  • Confirm the theme is not enqueueing a stylesheet that resets custom properties.

Developer Resources

Block and shortcode

The Campaign Showcase block is registered as charitable/campaign-showcase. It has no client-side save; it uses a server-side render callback that builds a [campaigns ...] shortcode string from block attributes and outputs it inside a block wrapper. Any attribute you set in the editor is translated to the corresponding shortcode parameter.

Hooks and filters

Filters

charitable_campaigns_shortcode_atts – Modify the parsed shortcode attributes before display (block and shortcode).

add_filter( 'charitable_campaigns_shortcode_atts', function( $args ) {
    $args['button'] = 'modal';
    return $args;
} );

charitable_campaigns_shortcode_view_args – Modify the view arguments passed to the campaigns template (block and shortcode).


charitable_campaigns_shortcode_query_args – Modify the WP_Query arguments used to fetch campaigns (block and shortcode).

add_filter( 'charitable_campaigns_shortcode_query_args', function( $query_args, $args ) {
    $query_args['post__not_in'] = array( 42 );
    return $query_args;
}, 10, 2 );

charitable_ajax_campaign_showcase_query_args – Modify the query arguments used for Campaign Showcase AJAX requests (sort, filter, search). Apply the same exclusions here that you set in charitable_campaigns_shortcode_query_args so they persist on paginated and filtered loads.

add_filter( 'charitable_ajax_campaign_showcase_query_args', function( $args, $shortcode_atts ) {
    $args['post__not_in'] = array( 42 );
    return $args;
}, 10, 2 );

charitable_campaigns_shortcode – Modify the final HTML output of the entire campaign showcase before it is returned.


charitable_campaign_sort_options – Modify the available sort options shown in the sort dropdown.

add_filter( 'charitable_campaign_sort_options', function( $options, $args ) {
    $options['my_custom_sort'] = __( 'Featured First', 'my-plugin' );
    return $options;
}, 10, 2 );

charitable_campaign_filter_pills – Modify the filter pills array before rendering. Each element has term, count, and label keys.


charitable_show_campaign_urgency_badges – Return false to suppress all badges for a specific campaign.

add_filter( 'charitable_show_campaign_urgency_badges', function( $show, $campaign, $args ) {
    if ( $campaign->has_ended() ) {
        return false;
    }
    return $show;
}, 10, 3 );

charitable_quick_donate_url – Modify the destination URL used by non-modal quick donate buttons. Only applies when button is not modal. Return the base URL only – the ?amount=X parameter is appended automatically after this filter runs.

add_filter( 'charitable_quick_donate_url', function( $url, $campaign_id, $args ) {
    return add_query_arg(
        array( 'campaign_id' => $campaign_id ),
        home_url( '/donate/' )
    );
}, 10, 3 );

charitable_campaign_card_image_height – Modify the image height in pixels applied to campaign cards when image_height is set.


charitable_campaigns_shortcode_pagination_args – Modify the pagination arguments before the pagination HTML is generated.


charitable_campaigns_shortcode_pagination – Modify the pagination HTML string before it is output.


charitable_modal_donate_button_html – Modify the HTML of a modal donate button.


charitable_campaigns_shortcode_template – Override the template used to render the campaign loop. Return a template file path to use a custom template.


Action hooks

These hooks fire at key points during campaign loop rendering, allowing you to inject custom HTML.

charitable_campaign_loop_before – Fires immediately before the campaign loop wrapper opens.

do_action( 'charitable_campaign_loop_before', $campaigns, $args );

charitable_campaign_loop_after – Fires immediately after the campaign loop wrapper closes.

do_action( 'charitable_campaign_loop_after', $campaigns, $args );

charitable_campaign_content_loop_before – Fires at the start of each individual campaign card, before any content is output.

do_action( 'charitable_campaign_content_loop_before', $campaign, $view_args );

charitable_campaign_content_loop_before_title – Fires just before the campaign title is output inside the card.

do_action( 'charitable_campaign_content_loop_before_title', $campaign, $view_args );

charitable_campaign_content_loop_after_title – Fires just after the campaign title is output inside the card.

do_action( 'charitable_campaign_content_loop_after_title', $campaign, $view_args );

charitable_campaign_content_loop_after – Fires at the end of each individual campaign card, after all content is output.

do_action( 'charitable_campaign_content_loop_after', $campaign, $view_args );

CSS classes

.campaign-loop                    - outer list wrapper
.campaign-layout-card             - card layout modifier
.campaign-loop li                 - individual campaign item
.campaign-thumbnail               - image wrapper
.campaign-title                   - campaign title
.campaign-description             - description text
.campaign-donation                - donate button area
.campaign-quick-donate            - quick donate button row
.campaign-badge                   - individual urgency badge
.campaign-badge-time-remaining    - time badge
.campaign-badge-funding-status    - funding status badge
.campaign-badge-donations         - donations raised badge
.campaign-badge-donation-count    - donation count badge
.campaign-badge-donors            - donor count badge
.charitable-carousel-wrapper      - carousel outer wrapper

Version history

VersionChanges
1.8.13Added Campaign Showcase block, card and carousel layouts, AJAX sort / filter / search / pagination, urgency badges, quick donate buttons, color / typography / spacing controls, modal donate integration, Ambassadors peer-to-peer support

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!

Donations Improvement

📊 Your Pro Dashboard Can Now Compare, Export, and Score!

Most fundraising dashboards only tell you how much you have raised. Charitable Pro 1.8.19 rebuilds the dashboard and the Reports Overview around the harder questions: whether anything is broken, whether this period beat the last one, and which single change would make the most difference today. Why this is important:

  • 📈 Every figure has a trend: Pick a period and the tiles and the chart move together, with each total shown against the previous period.
  • 🗓️ Charts that stay readable: Short ranges group donations day by day, while longer ranges group by week or month, so a full year reads as a curve instead of a flat line.
  • 🔀 Compare any 2 periods: Not just consecutive ones, so you can ask how this December did against last December. That matters because fundraising is seasonal.
  • 📤 Export the whole summary: Send the full overview out as CSV or PDF, ready for a board pack or a funder report.
  • 🎯 Score your setup for free: Have your fundraising setup scored, so the one change worth making next is the one you can see.

Check out our announcement here.

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.