{"id":11186,"date":"2026-05-27T16:30:46","date_gmt":"2026-05-27T08:30:46","guid":{"rendered":"https:\/\/aeosub.com\/wundraiser\/"},"modified":"2026-05-27T16:30:46","modified_gmt":"2026-05-27T08:30:46","slug":"wundraiser","status":"publish","type":"post","link":"https:\/\/aeosub.com\/zh\/wundraiser\/","title":{"rendered":"Wundraiser"},"content":{"rendered":"<div class=\"plugin-info-card\" style=\"border: 1px solid #e2e8f0;border-radius: 10px;overflow: hidden;margin-bottom: 30px;font-family: -apple-system, system-ui, sans-serif;background: #fff\">\n<table style=\"width: 100%;border-collapse: collapse;font-size: 14px\">\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 15px 20px;text-align: left;width: 35%;color: #4a5568;background: #fcfcfc\"><img decoding=\"async\" src=\"https:\/\/s.w.org\/plugins\/geopattern-icon\/wundraiser.svg\" style=\"width: 40px;height: 40px;border-radius: 6px;margin-right: 12px;vertical-align: middle\"> Developer<\/th>\n<td style=\"padding: 15px 20px;font-weight: 500\"><a href=\"https:\/\/profiles.wordpress.org\/woracious\/\" target=\"_blank\" rel=\"noopener\">woracious<\/a><\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Version<\/th>\n<td style=\"padding: 12px 20px\">v1.0.0<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Active Installs<\/th>\n<td style=\"padding: 12px 20px\">0 +<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Requires \/ Tested<\/th>\n<td style=\"padding: 12px 20px\">5.8 \/ 6.9.4<\/td>\n<\/tr>\n<tr style=\"border-bottom: 1px solid #edf2f7\">\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Last Updated<\/th>\n<td style=\"padding: 12px 20px\">2026-05-27 7:30am GMT<\/td>\n<\/tr>\n<tr>\n<th style=\"padding: 12px 20px;text-align: left;color: #4a5568;background: #fcfcfc\">Official Link<\/th>\n<td style=\"padding: 12px 20px\"><a href=\"https:\/\/wordpress.org\/plugins\/wundraiser\/\" target=\"_blank\" style=\"text-decoration: none;color: #4a3bca;font-weight: bold\" rel=\"noopener\">View Details \u2192<\/a><\/td>\n<\/tr>\n<\/table><\/div>\n<div class=\"plugin-short-desc\" style=\"margin: 20px 0;padding: 12px 15px;background: #f9fafb;border-left: 4px solid #4a3bca;border-radius: 6px;font-style: italic;color: #4a5568\">Accept donations with PayPal, campaign tracking, and a beautiful Gutenberg block.<\/div>\n<p>Wundraiser is a donation management plugin built for WordPress. It provides a complete fundraising solution through a native Gutenberg block that handles campaign creation, payment processing, donor communication, and webhook event tracking \u2014 all from within the WordPress admin.<\/p>\n<p>The donation form follows Apple design principles with rounded corners, clean typography, smooth animations, and responsive layouts that adapt from desktop to mobile without breaking. Donors select a preset amount or enter a custom value, choose between one-time and recurring frequencies, fill in their details, and complete payment through PayPal \u2014 all without leaving the page.<\/p>\n<p>Each Gutenberg block instance creates and manages its own campaign. Campaign name, target amount, currency, donation presets, and design colours are configured directly in the block sidebar. A live progress bar tracks total raised against the target with real-time donor count.<\/p>\n<p><strong>What Wundraiser handles out of the box:<\/strong><\/p>\n<ul>\n<li>PayPal payment processing (sandbox and live modes)<\/li>\n<li>One-time donations with automatic order creation and capture<\/li>\n<li>Campaign creation and management through Gutenberg blocks<\/li>\n<li>Real-time progress bar with fundraising goal tracking<\/li>\n<li>Donor and admin email notifications on every successful donation<\/li>\n<li>Webhook event logging with status tracking and event filtering<\/li>\n<li>CSV export of webhook events for reporting<\/li>\n<li>Test data import and cleanup tools for development<\/li>\n<li>Processing fee coverage option for donors<\/li>\n<li>Multi-currency support (USD, EUR, GBP, INR)<\/li>\n<\/ul>\n<p><strong>Admin dashboard features:<\/strong><\/p>\n<ul>\n<li>Donations list with search, sort, and status filtering<\/li>\n<li>Dashboard widget showing total raised, donation count, and donor count<\/li>\n<li>Payments page for PayPal credential management and webhook configuration<\/li>\n<li>Settings page for email customisation and plugin preferences<\/li>\n<li>Tools page for test data operations and diagnostics<\/li>\n<li>Webhook events page with filtering, bulk actions, and purge controls<\/li>\n<\/ul>\n<p><strong>Built for developers:<\/strong><\/p>\n<p>Wundraiser uses PSR-4 autoloading, namespaced classes, repository pattern for all database operations, a service provider container, and structured error handling with a custom exception hierarchy. The codebase passes WordPress Plugin Check with zero errors.<\/p>\n<h3>External services<\/h3>\n<p>This plugin connects to PayPal to process donations and manage webhooks.<\/p>\n<h4>PayPal REST API<\/h4>\n<p>The plugin sends requests to the PayPal REST API to create and capture payment orders, manage subscription plans, register and delete webhooks, and verify webhook event signatures. Data sent includes the donation amount, currency, donor email, return URLs, and webhook endpoint URL. Requests are made when a donor submits a donation on the frontend, when the admin configures PayPal credentials or webhooks on the Payments page, and when PayPal sends webhook event notifications. The API endpoint is https:\/\/api-m.paypal.com for live mode and https:\/\/api-m.sandbox.paypal.com for sandbox mode.<\/p>\n<h4>PayPal JavaScript SDK<\/h4>\n<p>The plugin loads the PayPal JavaScript SDK on frontend pages that contain a donation form block. The SDK renders the PayPal payment buttons and handles the client-side payment flow. The SDK is loaded from https:\/\/www.paypal.com\/sdk\/js with the site&#8217;s PayPal Client ID passed as a URL parameter.<\/p>\n<p>PayPal terms of use: https:\/\/www.paypal.com\/us\/legalhub\/useragreement-full<br \/>\nPayPal privacy policy: https:\/\/www.paypal.com\/us\/legalhub\/privacy-full<\/p>","protected":false},"excerpt":{"rendered":"<p>Accept donations with PayPal, campaign tracking, and a beautiful Gutenberg block.<\/p>","protected":false},"author":1,"featured_media":9317,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[252],"tags":[1487,726,1488,641,1363,555],"class_list":["post-11186","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-trends","tag-donate","tag-donation","tag-fundraising","tag-gutenberg","tag-paypal","tag-wordpress-plugin"],"_links":{"self":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11186","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/comments?post=11186"}],"version-history":[{"count":0,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/posts\/11186\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media\/9317"}],"wp:attachment":[{"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/media?parent=11186"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/categories?post=11186"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aeosub.com\/zh\/wp-json\/wp\/v2\/tags?post=11186"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}