{"id":299369,"date":"2026-06-02T21:16:52","date_gmt":"2026-06-02T21:16:52","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/mission\/"},"modified":"2026-06-03T01:13:36","modified_gmt":"2026-06-03T01:13:36","slug":"mission-donation-platform","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/mission-donation-platform\/","author":23479208,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.4","stable_tag":"1.1.4","tested":"7.0","requires":"6.7","requires_php":"8.0","requires_plugins":null,"header_name":"Mission Donation Platform","header_author":"Mission","header_description":"The free donation plugin for nonprofits. Powerful features, modern forms, no add-ons required.","assets_banners_color":"f5faf6","last_updated":"2026-06-03 01:13:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/missionwp.com","header_author_uri":"https:\/\/github.com\/mission-wp","rating":0,"author_block_rating":0,"active_installs":0,"downloads":47,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1.4":{"tag":"1.1.4","author":"missionwp","date":"2026-06-03 01:13:36"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3558586,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3558586,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3558586,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3558586,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"mission-donation-platform\/campaign-statistics":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/campaign-statistics","version":"0.1.0","title":"Campaign Statistic","category":"mission-donation-platform","icon":"chart-line","description":"Display a key statistic for a campaign, such as total raised or number of donors.","supports":{"html":false,"align":["left","center","right","wide"],"color":{"background":true,"text":true,"gradients":true,"__experimentalDefaultControls":{"text":true}},"typography":{"fontSize":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalLetterSpacing":true,"lineHeight":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"margin":true,"padding":true}},"attributes":{"campaignId":{"type":"number","default":0},"statType":{"type":"string","default":"total_raised"},"heading":{"type":"string","default":"Total Raised"},"showHeading":{"type":"boolean","default":true},"textAlign":{"type":"string"},"headingFontSize":{"type":"string","default":""},"headingColor":{"type":"string","default":""},"headingTextTransform":{"type":"string","default":"uppercase"}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","render":"file:.\/index.php"},"mission-donation-platform\/recent-donors":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/recent-donors","version":"0.1.0","title":"Recent Donors","category":"mission-donation-platform","icon":"heart","description":"Display a list of recent donors for a campaign.","supports":{"html":false,"interactivity":true,"spacing":{"margin":true,"padding":true}},"attributes":{"campaignId":{"type":"number","default":0},"heading":{"type":"string","default":"Recent Donors"},"showAvatars":{"type":"boolean","default":true},"showDedication":{"type":"boolean","default":true},"donateButtonAction":{"type":"string","default":"scroll"},"donateButtonUrl":{"type":"string","default":""},"numberOfDonors":{"type":"number","default":5}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/donation-form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/donation-form","version":"0.1.0","title":"Donation Form","category":"mission-donation-platform","icon":"money-alt","description":"Donation form","supports":{"html":false,"interactivity":true},"attributes":{"formId":{"type":"string"},"campaignId":{"type":"number","default":0},"amountsByFrequency":{"type":"object"},"defaultAmounts":{"type":"object"},"customAmount":{"type":"boolean"},"minimumAmount":{"type":"number"},"recurringEnabled":{"type":"boolean"},"recurringFrequencies":{"type":"array"},"recurringDefault":{"type":"string"},"feeRecovery":{"type":"boolean"},"feeMode":{"type":"string"},"tipEnabled":{"type":"boolean"},"tipPercentages":{"type":"array"},"anonymousEnabled":{"type":"boolean"},"tributeEnabled":{"type":"boolean"},"collectAddress":{"type":"boolean"},"commentsEnabled":{"type":"boolean"},"phoneRequired":{"type":"boolean"},"confirmationType":{"type":"string"},"confirmationRedirectUrl":{"type":"string"},"amountDescriptions":{"type":"object"},"primaryColor":{"type":"string"},"continueButtonText":{"type":"string"},"donateButtonText":{"type":"string"},"chooseGiftHeading":{"type":"string"},"summaryHeading":{"type":"string"},"additionalInfoHeading":{"type":"string"},"customFields":{"type":"array","default":[]}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/donor-dashboard":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/donor-dashboard","version":"0.1.0","title":"Donor Dashboard","category":"mission-donation-platform","icon":"id-alt","description":"A self-service portal where donors can view donation history, manage recurring gifts, download tax receipts, and update their profile.","supports":{"align":["wide","full"],"html":false,"interactivity":true,"multiple":false},"attributes":{"primaryColor":{"type":"string","default":""}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/campaign-image":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/campaign-image","version":"0.1.0","title":"Campaign Image","category":"mission-donation-platform","icon":"format-image","description":"Display the image associated with a campaign.","supports":{"html":false,"align":["left","center","right","wide","full"],"spacing":{"margin":true},"__experimentalBorder":{"color":true,"radius":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"width":true}},"shadow":true,"filter":{"duotone":true}},"selectors":{"border":".wp-block-mission-campaign-image img, .wp-block-mission-campaign-image .components-placeholder","shadow":".wp-block-mission-campaign-image img, .wp-block-mission-campaign-image .components-placeholder","filter":{"duotone":".wp-block-mission-campaign-image img, .wp-block-mission-campaign-image .components-placeholder"}},"styles":[{"name":"default","label":"Default","isDefault":true},{"name":"rounded","label":"Rounded"}],"attributes":{"campaignId":{"type":"number","default":0},"alt":{"type":"string","default":""},"aspectRatio":{"type":"string","default":""},"width":{"type":"string","default":""},"height":{"type":"string","default":""},"scale":{"type":"string","default":"cover"},"resolution":{"type":"string","default":"large"}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","render":"file:.\/index.php"},"mission-donation-platform\/top-donors":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/top-donors","version":"0.1.0","title":"Top Donors","category":"mission-donation-platform","icon":"star-filled","description":"Display a ranked list of top donors for a campaign.","supports":{"html":false,"interactivity":true,"spacing":{"margin":true,"padding":true}},"attributes":{"campaignId":{"type":"number","default":0},"heading":{"type":"string","default":"Top Donors"},"showAvatars":{"type":"boolean","default":true},"showDedication":{"type":"boolean","default":true},"donateButtonAction":{"type":"string","default":"scroll"},"donateButtonUrl":{"type":"string","default":""},"numberOfDonors":{"type":"number","default":5},"showRibbons":{"type":"boolean","default":true}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/donor-wall":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/donor-wall","version":"0.1.0","title":"Donor Wall","category":"mission-donation-platform","icon":"groups","description":"Display a grid of donations for a campaign.","supports":{"align":["wide","full"],"html":false,"interactivity":true},"attributes":{"campaignId":{"type":"number","default":0},"columns":{"type":"number","default":2},"showName":{"type":"boolean","default":true},"showAnonymous":{"type":"boolean","default":true},"showAvatar":{"type":"boolean","default":true},"avatarWidth":{"type":"number","default":48},"donorsPerPage":{"type":"number","default":12},"showAmount":{"type":"boolean","default":true},"showDate":{"type":"boolean","default":true},"showComments":{"type":"boolean","default":true},"commentLength":{"type":"number","default":150},"readMoreText":{"type":"string","default":"Read more"},"showSortControls":{"type":"boolean","default":true},"defaultSort":{"type":"string","default":"recent"},"loadMoreText":{"type":"string","default":"Show More Donations"}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/campaign-progress":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/campaign-progress","version":"0.1.0","title":"Campaign Progress","category":"mission-donation-platform","icon":"chart-bar","description":"Display campaign fundraising progress with a progress bar and stats.","supports":{"html":false,"interactivity":true,"spacing":{"margin":true,"padding":true}},"attributes":{"campaignId":{"type":"number","default":0},"donateButtonAction":{"type":"string","default":"scroll"},"donateButtonUrl":{"type":"string","default":""},"showDonors":{"type":"boolean","default":true},"showDaysRemaining":{"type":"boolean","default":true}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/donate-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/donate-button","version":"0.1.0","title":"Donate Button","category":"mission-donation-platform","icon":"button","description":"A customizable donate button that scrolls to a donation form or links to a URL.","supports":{"html":false,"interactivity":true,"align":["left","center","right"],"color":{"background":true,"text":true,"gradients":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"background":true,"text":true}},"typography":{"fontSize":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalLetterSpacing":true,"lineHeight":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"fontSize":true}},"spacing":{"padding":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"padding":true}},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":true,"radius":true,"width":true}},"shadow":true,"dimensions":{"width":true}},"selectors":{"root":".wp-block-mission-donate-button .mission-donate-button__link"},"styles":[{"name":"fill","label":"Fill","isDefault":true},{"name":"outline","label":"Outline"}],"attributes":{"text":{"type":"string","default":"Donate Now"},"donateButtonAction":{"type":"string","default":"scroll"},"donateButtonUrl":{"type":"string","default":""},"backgroundColor":{"type":"string"},"textColor":{"type":"string"},"gradient":{"type":"string"}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/campaign":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/campaign","version":"0.1.0","title":"Campaign Card","category":"mission-donation-platform","icon":"megaphone","description":"Display a campaign as a card with image, progress, and a link to its page.","supports":{"html":false,"interactivity":true,"spacing":{"margin":true,"padding":true}},"attributes":{"campaignId":{"type":"number","default":0},"showImage":{"type":"boolean","default":true},"showTag":{"type":"boolean","default":true},"showDescription":{"type":"boolean","default":true},"showProgressBar":{"type":"boolean","default":true},"showDonorCount":{"type":"boolean","default":true},"buttonText":{"type":"string","default":"View Campaign"}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"},"mission-donation-platform\/campaign-grid":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"mission-donation-platform\/campaign-grid","version":"0.1.0","title":"Campaign Grid","category":"mission-donation-platform","icon":"grid-view","description":"Display multiple campaigns in a responsive grid layout.","supports":{"align":["wide","full"],"html":false,"interactivity":true,"spacing":{"margin":true,"padding":true}},"attributes":{"statusFilter":{"type":"string","default":"active"},"columns":{"type":"number","default":2},"numberOfCampaigns":{"type":"number","default":6},"orderby":{"type":"string","default":"date_created"},"order":{"type":"string","default":"DESC"},"showImage":{"type":"boolean","default":true},"showTag":{"type":"boolean","default":true},"showDescription":{"type":"boolean","default":true},"showProgressBar":{"type":"boolean","default":true},"showDonorCount":{"type":"boolean","default":true},"buttonText":{"type":"string","default":"View Campaign"}},"example":{},"textdomain":"mission-donation-platform","editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css","viewScriptModule":"file:.\/view.js","render":"file:.\/index.php"}},"tagged_versions":["1.1.4"],"block_files":[],"assets_screenshots":{"screenshot-1.gif":{"filename":"screenshot-1.gif","revision":3558586,"resolution":"1","location":"assets","locale":"","width":850,"height":550},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3558586,"resolution":"2","location":"assets","locale":"","width":850,"height":550},"screenshot-3.gif":{"filename":"screenshot-3.gif","revision":3558586,"resolution":"3","location":"assets","locale":"","width":850,"height":550},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3558586,"resolution":"4","location":"assets","locale":"","width":850,"height":550},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3558586,"resolution":"5","location":"assets","locale":"","width":850,"height":550},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3558586,"resolution":"6","location":"assets","locale":"","width":850,"height":550},"screenshot-7.gif":{"filename":"screenshot-7.gif","revision":3558586,"resolution":"7","location":"assets","locale":"","width":850,"height":550}},"screenshots":{"1":"The Mission admin dashboard with revenue, donation, donor, and campaign metrics in test and live modes.","2":"The donation form with suggested amounts, frequency picker, and tribute support.","3":"The donor-facing dashboard for viewing history, managing recurring donations, and downloading receipts.","4":"The transaction detail screen with payment info, donor details, and quick actions like refund, resend receipt, and PDF export.","5":"The donor profile in the admin with donation history, recurring subscriptions, and contact details.","6":"The campaign detail screen in the admin with stats, progress bar, goal info, and campaign image.","7":"Public-facing campaign page built from blocks for progress tracking, donor wall, and an inline donation form."}},"plugin_section":[],"plugin_tags":[5800,5801,15130,126532,5349],"plugin_category":[45],"plugin_contributors":[265529],"plugin_business_model":[],"class_list":["post-299369","plugin","type-plugin","status-publish","hentry","plugin_tags-donations","plugin_tags-fundraising","plugin_tags-nonprofit","plugin_tags-recurring-donations","plugin_tags-stripe","plugin_category-ecommerce","plugin_contributors-missionwp","plugin_committers-missionwp"],"banners":{"banner":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/banner-772x250.png?rev=3558586","banner_2x":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/banner-1544x500.png?rev=3558586","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/icon-128x128.gif?rev=3558586","icon_2x":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/icon-256x256.gif?rev=3558586","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-1.gif?rev=3558586","caption":"The Mission admin dashboard with revenue, donation, donor, and campaign metrics in test and live modes."},{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-2.png?rev=3558586","caption":"The donation form with suggested amounts, frequency picker, and tribute support."},{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-3.gif?rev=3558586","caption":"The donor-facing dashboard for viewing history, managing recurring donations, and downloading receipts."},{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-4.png?rev=3558586","caption":"The transaction detail screen with payment info, donor details, and quick actions like refund, resend receipt, and PDF export."},{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-5.png?rev=3558586","caption":"The donor profile in the admin with donation history, recurring subscriptions, and contact details."},{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-6.png?rev=3558586","caption":"The campaign detail screen in the admin with stats, progress bar, goal info, and campaign image."},{"src":"https:\/\/ps.w.org\/mission-donation-platform\/assets\/screenshot-7.gif?rev=3558586","caption":"Public-facing campaign page built from blocks for progress tracking, donor wall, and an inline donation form."}],"raw_content":"<!--section=description-->\n<p>Mission is a free, open-source WordPress donation plugin built for nonprofits. Accept one-time and recurring donations, manage donors and campaigns, give your supporters a self-service dashboard, and track everything from a modern admin \u2014 without paying for a single add-on.<\/p>\n\n<p>Most donation plugins lock the features you actually need behind a paid tier. Recurring donations? Add-on. Custom fields? Add-on. Donor dashboards, fee recovery, exports? Add-on, add-on, add-on. Mission takes a different approach: every feature ships in the free plugin, and we're funded by an optional tip donors can choose to add at checkout. Donors can change the tip, lower it, or set it to zero. 100% of the donation amount always reaches your nonprofit.<\/p>\n\n<p>The result is a donation platform that grows with your organization without surprise upgrade prompts. The plugin you install today is the plugin handling your donations next year, with no upsell screens between you and your supporters.<\/p>\n\n<h4>Why Mission<\/h4>\n\n<p><strong>No paid add-ons. Ever.<\/strong>\nRecurring donations, donor dashboards, campaign management, custom fields, tribute donations, fee recovery, exports, activity logs \u2014 all included in the free plugin. There is no \"Mission Pro\" version, no premium tier, and no upsell at checkout.<\/p>\n\n<p><strong>Modern donation forms that convert.<\/strong>\nMulti-step forms with suggested amounts, custom amounts, tribute dedications, anonymous donations, optional fee recovery. Built to feel quick and trustworthy on every device.<\/p>\n\n<p><strong>Built for performance.<\/strong>\nThe donation form is built on the WordPress Interactivity API \u2014 no React on the public-facing site, no bloated JavaScript, fast page loads for your donors. Donor data lives in dedicated database tables, not post meta, so reporting stays fast as your donor list grows into the thousands.<\/p>\n\n<h4>Powerful donation forms<\/h4>\n\n<p>The Donation Form block can be dropped into any post, page, or campaign. Configure it once and it adapts to your campaign and your brand:<\/p>\n\n<ul>\n<li>Suggested amounts and an optional custom-amount field, configured per frequency<\/li>\n<li>One-time and recurring giving (weekly, monthly, quarterly, annually) \u2014 choose which frequencies to offer per form<\/li>\n<li>Multi-step layout that keeps the donor focused<\/li>\n<li>Cover-the-fees option \u2014 let donors absorb processing fees so 100% of their donation reaches your cause<\/li>\n<li>Anonymous donation toggle<\/li>\n<li>Tribute and memorial dedications, with an optional notification email to the honoree<\/li>\n<li>Custom fields per form \u2014 text, textarea, select, multiselect, radio, checkbox<\/li>\n<li>Built-in client and server-side validation<\/li>\n<li>Low-specificity CSS with no <code>!important<\/code> rules so themes can restyle freely<\/li>\n<\/ul>\n\n<h4>Recurring donations included free<\/h4>\n\n<p>Recurring donations are the single biggest revenue lever for nonprofits, and they're the feature most plugins charge extra for. Mission ships them free:<\/p>\n\n<ul>\n<li>Weekly, monthly, quarterly, and annual frequencies<\/li>\n<li>Automatic renewal handled by Stripe with retry on failure<\/li>\n<li>Donor self-service \u2014 pause, resume, or cancel from the donor dashboard<\/li>\n<li>Renewal history tracked per subscription<\/li>\n<li>Email notifications for renewals, cancellations, and failed payments<\/li>\n<li>Admin controls to pause, resume, cancel, or retry any subscription<\/li>\n<\/ul>\n\n<h4>A donor dashboard your supporters will actually use<\/h4>\n\n<p>Drop the Donor Dashboard block on any page and your supporters get a self-service portal. They can:<\/p>\n\n<ul>\n<li>See a complete donation history<\/li>\n<li>Manage recurring donations \u2014 pause, resume, or cancel without contacting you<\/li>\n<li>Download a receipt for any donation<\/li>\n<li>Update their profile and email address<\/li>\n<li>Sign in with a magic-link email \u2014 no password to forget<\/li>\n<\/ul>\n\n<p>Every action your donors can take in the dashboard is one less email in your inbox.<\/p>\n\n<h4>Campaign management<\/h4>\n\n<p>Run a single ongoing campaign or dozens of named campaigns side by side:<\/p>\n\n<ul>\n<li>Set goals by total raised, donation count, or unique donor count<\/li>\n<li>Auto-generated campaign pages built on the WordPress block editor<\/li>\n<li>Start and end dates per campaign<\/li>\n<li>Active, draft, and archived statuses<\/li>\n<li>Real-time aggregates that update as donations complete<\/li>\n<\/ul>\n\n<p>Mission ships eleven campaign and donation blocks: donation form, donate button, campaign card, campaign grid, campaign image, campaign progress bar, campaign statistic, donor wall, recent donors, top donors, and donor dashboard. Mix and match them to build campaign pages that match your brand.<\/p>\n\n<h4>Reports and exports you can actually use<\/h4>\n\n<p>The admin dashboard surfaces what fundraisers care about: total revenue, donation count, average donation, repeat donor count, top donor, and month-over-month growth \u2014 in test and live modes side by side.<\/p>\n\n<p>Need the data outside WordPress? Export donors, transactions, campaigns, and subscriptions to CSV or JSON in a single click.<\/p>\n\n<p>A built-in activity log records every donation, refund, subscription event, webhook, email, and admin action with a 90-day retention window so you can audit anything that happened on your site.<\/p>\n\n<h4>Stripe payment processing, done right<\/h4>\n\n<p>Mission processes donations through Stripe Connect with direct charges:<\/p>\n\n<ul>\n<li>Stripe Payment Element for credit and debit card donations<\/li>\n<li>Test and live modes side by side with isolated data<\/li>\n<li>Webhook-driven \u2014 donation status, refunds, and subscription renewals all sync automatically<\/li>\n<li>Per-form fee handling \u2014 organization absorbs, optional cover-the-fees, or required cover-the-fees<\/li>\n<li>Mission absorbs the incremental Stripe fee caused by tips, so adding a tip never costs your nonprofit more in processing fees<\/li>\n<\/ul>\n\n<p>Stripe is currently the only supported gateway. We chose to build a single deep gateway integration before adding more.<\/p>\n\n<h4>Who Mission is for<\/h4>\n\n<p>Mission is built to fit any organization or individual raising money online:<\/p>\n\n<ul>\n<li>Nonprofits and charities<\/li>\n<li>Foundations, clubs, and NGOs<\/li>\n<li>Churches and faith communities<\/li>\n<li>Schools, PTAs, and education nonprofits<\/li>\n<li>Political campaigns and advocacy groups<\/li>\n<li>Community groups and mutual aid funds<\/li>\n<li>Individuals raising for a specific cause<\/li>\n<\/ul>\n\n<h4>How the optional tip model works<\/h4>\n\n<p>Mission is funded by donor tips, not by selling features. Here's exactly how that works:<\/p>\n\n<ul>\n<li>At checkout, donors see a small optional tip alongside their donation amount.<\/li>\n<li>The tip is preselected at a small percentage by default. Donors can change it, lower it, or set it to zero.<\/li>\n<li>Stripe processes the donation. Mission collects only the tip portion; 100% of the donation amount goes to your connected Stripe account.<\/li>\n<li>Prefer a flat platform fee instead of donor tips? You can switch to a fixed 3% platform fee per form.<\/li>\n<\/ul>\n\n<h4>Designed for developers<\/h4>\n\n<p>Mission is open source and built to be extended. Eighty-plus actions and filters let you hook into every major event, customize every output, and integrate with the rest of your stack. A few examples:<\/p>\n\n<ul>\n<li><code>missiondp_donation_form_settings<\/code> \u2014 customize per-form configuration<\/li>\n<li><code>missiondp_transaction_status_{from}_to_{to}<\/code> \u2014 react to donation status changes<\/li>\n<li><code>missiondp_email_template_{type}<\/code> \u2014 customize email templates<\/li>\n<li><code>missiondp_receipt_html<\/code> \u2014 customize receipt PDF output<\/li>\n<li><code>missiondp_settings_updated<\/code> \u2014 react to setting changes<\/li>\n<\/ul>\n\n<p>A REST API exposes every entity for headless integrations, and a model-based data layer (<code>Donor::find()<\/code>, <code>Campaign::query()<\/code>, <code>Transaction::create()<\/code>) makes integrations clean to write and easy to maintain.<\/p>\n\n<p>The full source \u2014 including all build sources \u2014 lives at <a href=\"https:\/\/github.com\/mission-wp\/mission\">github.com\/mission-wp\/mission<\/a>.<\/p>\n\n<h3>Source Code<\/h3>\n\n<p>The full, unminified source code for this plugin is publicly available on GitHub at https:\/\/github.com\/mission-wp\/mission<\/p>\n\n<p>The repository contains the original <code>.js<\/code>, <code>.jsx<\/code>, and <code>.scss<\/code> files for every compiled asset shipped in <code>admin\/build\/<\/code> and <code>blocks\/build\/<\/code>. To build the plugin from source:<\/p>\n\n<pre><code>composer install\nnpm install\nnpm run build\n<\/code><\/pre>\n\n<p>See the README in the repository for full development setup, contribution guidelines, and a description of the build pipeline.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin connects to the following third-party services:<\/p>\n\n<h4>Stripe<\/h4>\n\n<p>Mission uses <a href=\"https:\/\/stripe.com\">Stripe<\/a> to process donations. When a donor submits a donation form, payment data is sent directly from the donor's browser to Stripe's servers via Stripe.js. The plugin also receives webhook notifications from Stripe for payment confirmations, refunds, and subscription updates.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/stripe.com\/legal\">Stripe Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/stripe.com\/privacy\">Stripe Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h4>Mission API<\/h4>\n\n<p>Mission connects to <a href=\"https:\/\/api.missionwp.com\">api.missionwp.com<\/a> (operated by the plugin author) for the following:<\/p>\n\n<ul>\n<li><strong>Stripe Connect onboarding<\/strong> \u2014 When you connect your Stripe account, the OAuth flow is handled through the Mission API as a proxy.<\/li>\n<li><strong>Payment processing<\/strong> \u2014 Donation and subscription requests are routed through the Mission API to your connected Stripe account.<\/li>\n<li><strong>Webhook forwarding<\/strong> \u2014 Stripe webhook events are forwarded from the Mission API to your WordPress site.<\/li>\n<li><p><strong>Feature signup<\/strong> \u2014 If you opt in to notifications about upcoming features (under Tools &gt; Features), your email is sent to the Mission API.<\/p><\/li>\n<li><p><a href=\"https:\/\/missionwp.com\/terms\">Mission Terms of Service<\/a><\/p><\/li>\n<li><a href=\"https:\/\/missionwp.com\/privacy\">Mission Privacy Policy<\/a><\/li>\n<\/ul>\n\n<h4>Gravatar<\/h4>\n\n<p>Mission uses <a href=\"https:\/\/gravatar.com\">Gravatar<\/a> to display profile images for donors in the admin dashboard (Donors and Transactions screens) and on the public-facing Donor Wall block. When one of these views is rendered, the visitor's browser requests an avatar image from <code>https:\/\/www.gravatar.com\/avatar\/{hash}<\/code> where <code>{hash}<\/code> is an MD5 hash of the donor's email address. Donor email addresses themselves are never sent to Gravatar \u2014 only the hash. If a donor has no Gravatar account, a blank placeholder is returned. No request is made if a donor record has no email on file.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/wordpress.com\/tos\/\">Gravatar Terms of Service<\/a><\/li>\n<li><a href=\"https:\/\/automattic.com\/privacy\/\">Gravatar Privacy Policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>mission-donation-platform<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install Mission directly from the WordPress.org plugin directory.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> menu in WordPress.<\/li>\n<li>Open the new <strong>Mission<\/strong> menu and click <strong>Connect Stripe<\/strong> to link your Stripe account. Onboarding takes about two minutes through Stripe Connect.<\/li>\n<li>Create your first campaign under <strong>Mission \u2192 Campaigns<\/strong>, set a goal, and customize the donation form.<\/li>\n<li>Add the Donation Form block (or any of Mission's eleven blocks) to a page, and you are ready to accept donations.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20mission%20really%20free%3F\"><h3>Is Mission really free?<\/h3><\/dt>\n<dd><p>Yes. Every feature ships in the free plugin \u2014 there is no Pro tier, no premium add-ons, and no plan to introduce one. Mission is funded by optional tips that donors can choose to add at checkout. They can change the tip, lower it, or set it to zero, and 100% of the donation amount always reaches your nonprofit.<\/p><\/dd>\n<dt id=\"will%20i%20ever%20be%20asked%20to%20pay%20for%20a%20feature%3F\"><h3>Will I ever be asked to pay for a feature?<\/h3><\/dt>\n<dd><p>No. There is no upgrade prompt, no upsell screen, and no premium version. The plugin you install today includes every feature Mission ships, and that is not going to change.<\/p><\/dd>\n<dt id=\"which%20payment%20gateways%20are%20supported%3F\"><h3>Which payment gateways are supported?<\/h3><\/dt>\n<dd><p>Mission currently supports Stripe via Stripe Connect for credit and debit card donations. We focused on building a deep Stripe integration before adding more gateways.<\/p><\/dd>\n<dt id=\"does%20mission%20support%20recurring%20donations%3F\"><h3>Does Mission support recurring donations?<\/h3><\/dt>\n<dd><p>Yes \u2014 included free, with no add-on required. Donors can choose weekly, monthly, quarterly, or annual frequencies (configurable per form). Renewals are processed automatically via Stripe with retry on failure, and donors can pause, resume, or cancel their own subscriptions from the donor dashboard.<\/p><\/dd>\n<dt id=\"do%20donors%20need%20an%20account%20to%20donate%3F\"><h3>Do donors need an account to donate?<\/h3><\/dt>\n<dd><p>No. The donation form is fully public and requires no account. If a donor wants to manage their recurring donations or download receipts later, they can sign in to the donor dashboard with a magic link sent to the email address they used when donating.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20donation%20form%3F\"><h3>Can I customize the donation form?<\/h3><\/dt>\n<dd><p>Yes. Every form has its own settings: amounts, frequencies, fields, fee handling, color, anonymous donation toggle, tribute support, and custom fields (text, textarea, select, radio, checkbox). Layout, spacing, and typography use WordPress's native block controls, and themes can restyle the form freely thanks to low-specificity CSS, <code>--mission-*<\/code> custom properties, no <code>!important<\/code> declarations, and no inline styles.<\/p><\/dd>\n<dt id=\"how%20is%20mission%20different%20from%20givewp%20or%20charitable%3F\"><h3>How is Mission different from GiveWP or Charitable?<\/h3><\/dt>\n<dd><p>The headline difference is the business model. GiveWP and Charitable both run on a freemium model where the most useful features \u2014 recurring donations, fee recovery, custom fields, advanced reports, peer-to-peer fundraising \u2014 are paid add-ons that stack into a meaningful yearly cost. Mission flips this: every feature is free, and the platform is funded by optional donor tips instead.<\/p>\n\n<p>If you want a single open-source plugin without surprise costs, and Stripe handles your payments, Mission is the simplest path to launch.<\/p><\/dd>\n<dt id=\"where%20can%20i%20get%20support%3F\"><h3>Where can I get support?<\/h3><\/dt>\n<dd><p>Free community support lives on the <a href=\"https:\/\/wordpress.org\/support\/plugin\/mission-donation-platform\/\">WordPress.org support forum<\/a> and on <a href=\"https:\/\/github.com\/mission-wp\/mission\/issues\">GitHub issues<\/a>. Feature requests, bug reports, and questions are all welcome there.<\/p><\/dd>\n<dt id=\"how%20do%20i%20report%20a%20security%20issue%3F\"><h3>How do I report a security issue?<\/h3><\/dt>\n<dd><p>Please report security issues privately by emailing hello@missionwp.com rather than opening a public GitHub issue. We will respond promptly and credit you in the changelog if you would like.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.4<\/h4>\n\n<ul>\n<li>Update screenshots and banners<\/li>\n<li>Don't show empty-state shell on Subscriptions\/Transactions when a search is active<\/li>\n<li>Fix multi-word search on Donors, Transactions, and Subscriptions admin pages<\/li>\n<li>Fix fatal on subscription detail when a transaction has no recorded fee_amount<\/li>\n<\/ul>\n\n<h4>1.1.3<\/h4>\n\n<ul>\n<li>Tested with WordPress 7.0<\/li>\n<li>Refreshed the admin menu icon<\/li>\n<li>API and webhook diagnostics now appear in Tools &gt; Logs alongside other plugin activity<\/li>\n<li>Internal code quality and maintainability improvements<\/li>\n<\/ul>\n\n<h4>1.1.2<\/h4>\n\n<ul>\n<li>Updated @wordpress\/dataviews to 14.3.0 and @wordpress\/icons to 13.1.0<\/li>\n<li>Fixed onboarding state select rendering taller than adjacent input fields<\/li>\n<li>Wrapped PHP templates in IIFEs to scope file-local variables<\/li>\n<li>Converted ReportingService identifier interpolation to %i placeholders<\/li>\n<li>Silenced Plugin Check false positives in custom-table data layer<\/li>\n<li>Prefixed $autoloader and silenced core-hook invocation sniff<\/li>\n<\/ul>\n\n<h4>1.1.1<\/h4>\n\n<ul>\n<li>Donor login now goes through WordPress's standard auth pipeline for better compatibility with security plugins<\/li>\n<li>Donor user accounts are no longer deleted automatically when the plugin is uninstalled<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Renamed plugin slug to mission-donation-platform and prefixed all PHP\/JS identifiers with missiondp_ per WordPress.org review<\/li>\n<li>Refactored DataStore queries and Cleanup IN-clauses to use wpdb::prepare() with proper placeholders<\/li>\n<li>Escaped block render output through wp_kses with an allowlist that preserves SVG icons and Interactivity API directives<\/li>\n<li>Moved security checks into permission_callback for state-changing public REST endpoints (donation\/subscription confirm, email-change confirm)<\/li>\n<li>Added a Source Code section to the readme linking to the public GitHub repo with build instructions<\/li>\n<li>Disclosed Gravatar usage under External Services in the readme<\/li>\n<li>Removed unused stripe\/stripe-php dependency<\/li>\n<li>Added WordPress.org directory assets (banners, icons, screenshots)<\/li>\n<li>Fixed MISSIONDP_STRIPE_PK_TEST to match the live platform Stripe account<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed plugin to Mission Donation Platform per WordPress.org review team guidance<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Accept donations, manage recurring giving, easy donor management, and grow fundraising with Mission, a free WordPress donation plugin for nonprofits","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/299369","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=299369"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/missionwp"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=299369"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=299369"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=299369"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=299369"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=299369"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=299369"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}