{"id":393498,"date":"2026-10-28T15:30:31","date_gmt":"2026-10-28T15:30:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/nmr-fundraiser-hub\/"},"modified":"2026-10-28T15:30:00","modified_gmt":"2026-10-28T15:30:00","slug":"nmr-fundraiser-hub","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/nmr-fundraiser-hub\/","author":17805734,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.1.4","requires":"5.9","requires_php":"7.4","requires_plugins":null,"header_name":"NMR Fundraiser Hub","header_author":"mirceatm","header_description":"Run fundraising events for NGOs. An event has causes donors can support (optionally with a reward), causes have champions who collect on their behalf. Pluggable payment providers.","assets_banners_color":"43565d","last_updated":"2026-10-28 15:30:00","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/namir.ro\/nmr-fundraiser-hub\/","header_author_uri":"https:\/\/namir.ro","rating":0,"author_block_rating":0,"active_installs":0,"downloads":63,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"mirceatm","date":"2026-10-28 15:30:00","revision":3770972}},"upgrade_notice":{"0.2.0":"<p>Adds a currency setting (default RON, as before), preset amount buttons and a Romanian translation.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3770972,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3770972,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3770972,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3770972,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3770972,"resolution":"1","location":"assets","locale":"","width":900,"height":660},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3770972,"resolution":"2","location":"assets","locale":"","width":900,"height":700},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3770972,"resolution":"3","location":"assets","locale":"","width":1280,"height":438},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3770972,"resolution":"4","location":"assets","locale":"","width":1280,"height":868}},"screenshots":{"1":"The donation form with preset amount buttons.","2":"An event page with progress and its causes.","3":"The Donations screen with filters and CSV export.","4":"Settings: currency, accent colour and payment methods."}},"plugin_section":[],"plugin_tags":[8222,5800,5801,2691,5349],"plugin_category":[45],"plugin_contributors":[182471],"plugin_business_model":[],"class_list":["post-393498","plugin","type-plugin","status-publish","hentry","plugin_tags-charity","plugin_tags-donations","plugin_tags-fundraising","plugin_tags-ngo","plugin_tags-stripe","plugin_category-ecommerce","plugin_contributors-mirceatm","plugin_committers-mirceatm"],"banners":{"banner":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/banner-772x250.png?rev=3770972","banner_2x":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/banner-1544x500.png?rev=3770972","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/icon-128x128.png?rev=3770972","icon_2x":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/icon-256x256.png?rev=3770972","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/screenshot-1.png?rev=3770972","caption":"The donation form with preset amount buttons."},{"src":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/screenshot-2.png?rev=3770972","caption":"An event page with progress and its causes."},{"src":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/screenshot-3.png?rev=3770972","caption":"The Donations screen with filters and CSV export."},{"src":"https:\/\/ps.w.org\/nmr-fundraiser-hub\/assets\/screenshot-4.png?rev=3770972","caption":"Settings: currency, accent colour and payment methods."}],"raw_content":"<!--section=description-->\n<p><strong>Fundraising for NGOs, structured the way NGOs work.<\/strong> An <em>event<\/em> (a race, a gala, a campaign) has <em>causes<\/em> donors can support, optionally with a reward in return (for example \"participation in the 5k run + t-shirt\"). Causes can have <em>champions<\/em>: people who collect donations on their behalf and get their own page and progress bar.<\/p>\n\n<ul>\n<li><strong>Events, causes and champions<\/strong> as their own content types, with targets and progress bars.<\/li>\n<li><strong>Donation form<\/strong> with preset amount buttons (25, 50, 100 ... and \"other amount\"), or a fixed price for tickets and rewards.<\/li>\n<li><strong>Rewards with limited places.<\/strong> A cause can stop accepting donations when its places are taken.<\/li>\n<li><strong>Payments:<\/strong> card payments through Stripe Checkout, PayPal, and bank transfer (the donation waits until you confirm the money arrived). More providers can be added by other plugins.<\/li>\n<li><strong>Donation list<\/strong> in the admin with filters, manual entries for cash and bank donations, status changes and CSV export.<\/li>\n<li><strong>Thank-you email<\/strong> to the donor and a notification to you.<\/li>\n<li><strong>Public donor list<\/strong> (anonymous donors are shown as \"Anonymous\").<\/li>\n<li><strong>Currency<\/strong> setting (RON, EUR, USD and more) and an <strong>accent colour<\/strong>; the look is controlled by CSS variables.<\/li>\n<li><strong>Privacy:<\/strong> consent checkbox, WordPress personal data export and erase support. Personal details are erased and the amounts are kept for your accounting.<\/li>\n<li><strong>Translations:<\/strong> ready for translation; community translations (including Romanian) come from translate.wordpress.org.<\/li>\n<li>A <strong>Help<\/strong> page in the admin documents every shortcode.<\/li>\n<\/ul>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[nmrfh_donate cause=\"123\" amounts=\"25,50,100,200\" other=\"Other amount\" default=\"50\"]<\/code> donation form<\/li>\n<li><code>[nmrfh_event id=\"45\"]<\/code>, <code>[nmrfh_cause id=\"123\"]<\/code>, <code>[nmrfh_champion id=\"77\"]<\/code> pages<\/li>\n<li><code>[nmrfh_donors scope=\"cause\" id=\"123\" limit=\"10\"]<\/code> recent donors<\/li>\n<\/ul>\n\n<p>Events, causes and champions also show their content automatically on their own pages.<\/p>\n\n<h4>Pro<\/h4>\n\n<p>The plugin is fully functional on its own. An optional paid add-on, NMR Fundraiser Hub Pro, adds recurring (monthly) donations, CSV import of donations and a block editor block for the donation form. This plugin shows a short description of it and a link to https:\/\/namir.ro\/downloads\/nmr-fundraiser-hub-pro\/. It does not contact any server for this.<\/p>\n\n<h4>Developers<\/h4>\n\n<p>Hooks: <code>nmrfh_gateways<\/code> (add payment providers), <code>nmrfh_currencies<\/code>, <code>nmrfh_donate_form_extra<\/code>, <code>nmrfh_donation_created<\/code>, <code>nmrfh_donation_completed<\/code>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to a payment provider only when you switch that provider on in Fundraiser &gt; Settings and a donor chooses it. Bank transfer sends nothing anywhere.<\/p>\n\n<h4>Stripe<\/h4>\n\n<p>Used to take card payments on a Stripe-hosted page. When a donor chooses \"Card (Stripe)\", the plugin sends Stripe the donation amount, currency, the cause title, the donation number, and the donor's email address, and the donor is redirected to Stripe. Stripe also sends payment confirmations to your site's webhook address. Your Stripe secret key is stored in your site's settings.<\/p>\n\n<ul>\n<li>Service: https:\/\/stripe.com<\/li>\n<li>Terms of service: https:\/\/stripe.com\/legal\/ssa<\/li>\n<li>Privacy policy: https:\/\/stripe.com\/privacy<\/li>\n<\/ul>\n\n<h4>PayPal<\/h4>\n\n<p>Used to take payments through PayPal. When a donor chooses PayPal, the plugin sends PayPal the donation amount, currency, the cause title and the donation number, and the donor is redirected to PayPal to approve the payment. The plugin then asks PayPal to capture and confirm the payment. Your PayPal client ID and secret are stored in your site's settings.<\/p>\n\n<ul>\n<li>Service: https:\/\/www.paypal.com<\/li>\n<li>Terms of service: https:\/\/www.paypal.com\/legalhub\/paypal\/useragreement-full<\/li>\n<li>Privacy policy: https:\/\/www.paypal.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>nmr-fundraiser-hub<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it. A Fundraiser menu appears in the admin.<\/li>\n<li>Open Fundraiser &gt; Settings: choose your currency and switch on a payment method.<\/li>\n<li>Add an Event, then one or more Causes for it. Put <code>[nmrfh_donate cause=\"ID\"]<\/code> on any page, or link to the cause page.<\/li>\n<li>Fundraiser &gt; Help lists every shortcode and option.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20stripe%20or%20paypal%3F\"><h3>Do I need Stripe or PayPal?<\/h3><\/dt>\n<dd><p>No. Bank transfer works without any account: donors get your account details and the donation counts once you mark the transfer as received.<\/p><\/dd>\n<dt id=\"can%20donors%20choose%20their%20own%20amount%3F\"><h3>Can donors choose their own amount?<\/h3><\/dt>\n<dd><p>Yes. Each cause is either \"donor chooses any amount\", \"at least the amount below\" or a fixed amount. The <code>amounts<\/code> shortcode option adds quick buttons such as 25, 50, 100.<\/p><\/dd>\n<dt id=\"are%20donor%20details%20deleted%20on%20request%3F\"><h3>Are donor details deleted on request?<\/h3><\/dt>\n<dd><p>Yes. The WordPress \"Erase personal data\" tool wipes name, email, phone and message and keeps the amount, so your totals stay correct.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20caching%20plugins%3F\"><h3>Does it work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes, as long as the page cache is cleared at least once a day (the default for most caching plugins). The form carries a security token that WordPress accepts for up to 24 hours. If it has expired, the donor sees \"This form has expired. Please try again.\" and the page reloads with a fresh one. It is also protected by a hidden field and a per-visitor rate limit.<\/p><\/dd>\n<dt id=\"how%20do%20i%20change%20the%20colours%3F\"><h3>How do I change the colours?<\/h3><\/dt>\n<dd><p>Pick an accent colour in Settings, or override the <code>--nmrfh-*<\/code> CSS variables listed on the Help page.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20currency%20later%3F\"><h3>Can I change the currency later?<\/h3><\/dt>\n<dd><p>Not safely once you have donations: existing donations keep the currency they were made in, so totals would mix two currencies.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Currency setting, accent colour and CSS variables.<\/li>\n<li>Romanian translation.<\/li>\n<li>Help page documenting the shortcodes.<\/li>\n<li>Preset amount buttons for the donation form (<code>amounts<\/code>, <code>other<\/code>, <code>default<\/code>).<\/li>\n<li>Extension points for the Pro add-on.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First version: events, causes, champions, Stripe, PayPal and bank transfer.<\/li>\n<\/ul>","raw_excerpt":"Fundraising events for NGOs: causes with optional rewards, champions who collect for them, and Stripe, PayPal or bank transfer payments.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/393498","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=393498"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mirceatm"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=393498"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=393498"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=393498"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=393498"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=393498"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=393498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}