Charitable Documentation

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

Handling Donation Spam & Card Testing Attacks

If you are seeing thousands of “Pending” donations appear rapidly, you are likely the victim of a “Card Testing” attack. This is where bots use your donation form to test stolen credit card numbers to see which ones are valid.

This guide covers how to clean up the spam donations and general tips for both Lite and Pro users. For more information on how Charitable continues to work on anti-spam measures, feel free to visit our blog.

⚠️ Important: Backups & Responsibility Before running any bulk deletion plugins or custom database scripts, you must create a full backup of your site. If a cleanup operation removes data unintentionally or if the suggestions above do not resolve the issue, your safety net is restoring your site to a version saved before the changes were made. Please be aware that running database queries and third-party scripts is done at your own risk; WP Charitable is not responsible for data loss resulting from these operations. If you are unsure about how to use these tools, we strongly recommend consulting with a web developer or contacting our support team for guidance before you proceed.

Table of Contents

Removing Pending Donations

If you have a large amount of spam donations it’s not recommended to try to delete them manually in the WordPress dashboard. This will likely crash your browser or time out your server.

If you are using Charitable Pro (or the Lite plugin with Spam Blocker addon) there is a “Bulk Remove Donations” setting in the Charitable -> Settings -> Advanced/Misc that can remove ALL failed and pending donations in your WordPress install. Note that this might remove legit donations, so it is best to do an audit prior to using this feature.

Warning: This permanently removes all donations from all campaigns.

The easiest way to remove these records without touching code is to use a free plugin designed for this purpose. We also recommend this option because some plugins offer more control in what items to bulk delete.

  1. Go to Plugins > Add New and search for “Bulk Delete” (one such plugin is WP Bulk Delete, but use what you think matches your needs).
  2. Install and Activate the plugin.
  3. Go to Bulk WP > Bulk Delete Posts.
  4. Select Post Type: Choose Donations.
  5. Select Post Status: Choose Pending (or charitable-pending).
  6. Choose Action: Select “Move to Trash” or “Delete Permanently”.
  7. Run the deletion. Note: You may need to run this in batches if your server is slow.

Method 3: Use a Custom Script (Advanced)

If the plugin is struggling with the volume or you prefer a code-based solution, you can use our cleanup script.

  1. Install the free WPCode plugin.
  2. Use the following snippet to safely delete the pending donations directly from the database:

Important: Once the cleanup is done, remember to deactivate the snippet so it doesn’t continue running.

Steps To Take For Further Prevention

We recommend implementing measures in this order:

DNS & Server (The Best Defense)

The best place to stop a bot is before it even reaches your WordPress site.

  • Cloudflare: We highly recommend putting your site behind Cloudflare (their free plan is excellent). It includes “Bot Fight Mode” and rate limiting which can block these attacks at the DNS level.
  • Your Hosting Provider: Contact your host immediately. They can often see the attack patterns (e.g., traffic coming from a specific country) and block those IP addresses at the server level.

General WordPress Security

  • Security Plugins: Plugins like Wordfence or Solid Security have traffic monitoring tools that can detect aggressive bot behavior and block their IPs automatically.

Charitable Specific Settings

If you have a paid license and using Charitable (not the Pro plugin), ensure you have the Spam Blocker extension installed.

  • Rate Limiting: Helps prevent rapid-fire submissions.
  • CAPTCHA: Adds Google reCAPTCHA or hCaptcha to your forms.
  • IP Logging: Tracks the IP addresses of donors, allowing you to block specific offenders.

If you are using the free (Charitable Lite) version, you can use these settings and code snippets to add barriers:

  • Increase Minimum Donation Amount: Bots often test with very small amounts (e.g., $1.00) to keep the transactions unnoticed.
    • Go to your Campaign editor.
    • Locate the Donation Options tab.
    • Increase the Suggested Minimum Donation amount (e.g., raise it from $1 to $5 or $10).
    • Note: While helpful, sophisticated bots can adapt to this, so do not rely on this as your only defense.
  • Block by Email Pattern: If the bots are using a specific email pattern (e.g., random letters or specific domains), you can use this snippet to block them:
  • Change URL: Temporarily changing the URL of your donation page can sometimes stop a bot that is targeting a specific link.

Note that Charitable Pro users have a “security” tab that includes many of the featured mentioned above. For example here is a guide on advanced email validation.

Payment Gateway Protection (Stripe & PayPal)

Your payment processor often has advanced tools that can block fraud before it even notifies your website. Note the below info is accurate at time of writing – for the most updated information please check your own gateway provider sites.

Stripe Users: Stripe Radar Stripe has a built-in fraud detection tool called Radar.

  • Standard Radar (Free): Comes with all Stripe accounts. It uses machine learning to block payments that look suspicious. You can also manually add specific email addresses or cards to a “Block list” in your Stripe Dashboard under Fraud & Risk > Lists.
  • Radar for Fraud Teams (Paid Upgrade): This version allows you to write Custom Rules.
    • Tip: If you notice bots are all using the same email domain (e.g., [email protected] or [email protected]), you can create a rule to block that entire domain.
    • AI Assistant: The paid version includes an AI assistant that lets you type natural language requests like “Block all payments where the email domain is example.com” and it will generate the rule for you.
    • Read more about Stripe Radar here.

PayPal Users: Fraud Protection PayPal offers similar protections for Business accounts.

  • Fraud Protection: Go to Business Tools > Manage Risk > Fraud Protection. PayPal currently has a free fraud protection plan with upgrades possible.
  • You can set up filters to flag or decline transactions based on high dollar amounts, address mismatches (AVS), or card security code failures (CVV). If you identify specific email addresses or IP addresses repeatedly targeting you, you can add them to your negative lists within the PayPal Fraud Protection settings.
  • Read more about PayPal Fraud Management here.

We recommend monitoring your site closely for the first 24-48 hours after changes have been enacted. If you see the spam start again, immediately switch your campaign status back to ‘Draft’ and increase your security settings (e.g., enable “Under Attack Mode” in Cloudflare).

Check Your Stripe/PayPal Dashboards While “Pending” donations in Charitable usually indicate that the payment was abandoned or failed, you should always double-check your Stripe or PayPal dashboard directly. Verify that no successful charges slipped through during the attack. If you find any successful unauthorized charges, refund them immediately through the payment processor to avoid potential dispute fees or chargebacks later.

A Note on “Card Testing” Please remember that “Card Testing” is a common issue affecting the entire e-commerce and donation industry, not just your specific site. Bots look for any open form to test stolen data. By using a combination of server-level blocking (like Cloudflare) and the on-site restrictions outlined above, you make your site an unattractive target, encouraging the bots to move on.

Misc Requests

If you are using any version of Charitable, including Charitable Lite, and need to contact our support team about anything not covered above feel free to use our support form. If the inqury is Stripe related feel free to supply any business name and information associated with the account you used to connect your website to Stripe via Charitable. This will ensure that information exchanged will be kept private and secure.

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

🏃 Introducing Activity: Show Progress on More Than Money!

Most peer-to-peer fundraisers are about more than the money. A read-a-thon is about minutes read, a walkathon is about miles walked, and a food drive is about meals packed. Activity for Charitable Ambassadors lets your fundraisers show that effort right beside the dollars they raise. Why this is important:

  • 🎯 Progress on what you actually count: A progress bar shows each thing you count against its own target, sitting right beside the money raised.
  • 🏅 Milestones for the yes or no things: A milestone badge marks the efforts that are simply done or not done, with no number to chase.
  • ✍️ Fundraisers log their own numbers: Your supporters enter their totals from their own pages, so the effort stops living in a spreadsheet, a comment, or nowhere at all.
  • 🤖 Some numbers count themselves: An AUTOMATIC tag appears wherever the site worked the figure out from completed donations, so you can see at a glance what nobody typed in.
  • 🧩 Set it up once, use it anywhere: You decide what gets counted one time, then choose which campaigns count it. Available now in Charitable Ambassadors 3.4.7, with no new plugin and no developer.

Check out our announcement here.

ambassadors New

🖨️ Introducing Fliers and Posters: Raise Money Away From the Screen!

A lot of peer-to-peer fundraising happens away from a screen: at the finish line of a 5K, on a school noticeboard, in an office kitchen. Charitable Ambassadors 3.4.7 adds 2 printables, a fundraiser flier carrying each fundraiser’s own story and QR code, and a recruitment poster that signs new fundraisers up. Both open as a normal web page and print straight from the browser. Why this is important:

  • 🏁 A flier for every fundraiser: Each one carries that fundraiser’s own photo, story and goal, with a QR code that opens their page rather than your main campaign.
  • 📌 A poster that recruits: It shows “Now Recruiting” above your campaign name with a large QR code that opens your sign-up form, so someone can start fundraising without waiting on a link from you.
  • 🪄 No design tool needed: Both printables render as a normal web page and print from the browser, with no PDF plugin and no designer.
  • 📄 2 flier layouts: Hand out carries the full story for giving to friends and family, and Post up carries a short hook with 5 tear-off tabs for a noticeboard.
  • 🛡️ Off until you switch it on: Fliers stay off after the update until you enable them under Charitable » Ambassadors » Other » Fliers, and only the owner or an administrator can open one.

Check out our announcement here.

Improvement Payments

💸 Introducing Tiered Rates for Fee Relief: Match the Ask to the Gift!

Fee Relief asks your donors one short question at checkout: would you like to cover the processing fee on this gift? Until now that question used a single rate for every donation on a gateway, so a $10 gift and a $500 gift were asked for the same percentage. Fee Relief 1.3.0 lets you set as many donation bands as you like, each carrying its own rate. Why this is important:

  • 🪙 Gentler on small gifts: A fixed transaction cost is a far bigger share of a $10 donation than a $500 one, so bands let you ask for less at the bottom.
  • 🎚️ As many bands as you need: Each band carries its own percentage and its own fixed amount, and the top band runs on with no upper limit.
  • 🛑 An optional ceiling: A Maximum fee field stops any donor being asked for more than a number you choose, however large the gift.
  • 🔌 Set per payment gateway: Stripe can run on four bands while Windcave and Payfast stay on a single rate, because bands belong to a gateway and not to your whole site.
  • 🛡️ Nothing changes until you say so: Your current rates stay exactly as they are until you switch Use Tiered Rates on under Charitable » Settings » Advanced » Fee Relief.

Check out our announcement here.

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.