=== Gratora - Donation Platform ===
Contributors: donodp
Tags: donation, fundraising, nonprofit, recurring donations, donation form
Requires at least: 7.0
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.1.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Donation forms, recurring donations, campaigns, funds, PDF receipts and donor records. Donors can cover the processing fee. Everything included.

== Description ==

Gratora is a donation and fundraising platform for WordPress. Not a form plugin
you then extend, and not a starting point you pay to finish. The donation form,
the campaign page around it, the recurring plans, the donor record, the receipt
and the report are all here, in one plugin, on day one.

Guides, support and add-ons are at [gratora.net](https://gratora.net).

= Donation forms built in the WordPress editor =

Fields and layout are blocks, so the editor is the one you already know. No page
builder and no separate form plugin.

* Suggested amounts with captions, a custom amount, and a minimum you set
* Everything on one screen, or split into steps
* Cover the fees, recurring toggle, fund picker and currency switcher
* Name, email, phone, address, country and a message of support
* Your own custom fields: text, number, dropdown, radio, checkbox, multi-select, date
* Show a field only when it applies, based on the amount, the frequency or
  another answer on the form
* Anonymous giving, consent checkboxes and a privacy notice

= Recurring donations =

* Weekly, every two weeks, monthly, quarterly or yearly, and you pick which of
  those each form offers
* Donors change or cancel their own plan

= Campaigns and funds =

* Gratora builds the campaign page for you, donation form included
* Goals by amount raised, by number of donations or by number of donors, with an
  optional end date
* Progress bars, recent donations, top donors and a supporter wall
* Funds let donors choose what their donation pays for.

= Donor management and a donor portal =

* Lifetime totals, every donation, receipts, consent and private staff notes
* Donors sign in with an email link, so there is no password to forget
* Lifecycle stages, segments, lifetime value and retention, worked out for you
* Export donors to CSV

= Receipts and reports =

* Receipts emailed automatically, plus branded PDF receipts and year-end
  statements donors can download themselves
* Sequential reference numbers with your own prefix and padding
* Revenue, donation and donor figures over any period, per campaign or overall
* A campaign report as a one-page PDF, and revenue as CSV

= Payments =

Take payments with your own Stripe or PayPal account, so the money goes straight
to you. Additional fees may apply from your payment provider. Cash, check and
bank transfer are recorded next to online donations, full and partial refunds are
supported, and test mode is kept out of your reporting.

Public donation endpoints are rate limited, so a run of automated card attempts
does not turn into a run of donation records.

= More than one currency =

Accept the currencies you choose, show donors a currency switcher on the form.

= Ask donors to cover the processing fee =

Add one block to your donation form and donors are offered the chance to add the
payment processing fee on top of their donation, so the fee comes out of the
payment rather than out of the donation. You set the percentage and the fixed
amount, and you decide whether it starts ticked.

= Made to look like your site =

Style presets you set once and reuse across every campaign and form, with a
contrast check so text stays readable. Gratora is translation ready and ships a
.pot file.

= Your donor data stays yours =

Donors' email addresses, phone numbers, postal addresses and tax IDs are
encrypted at rest, as are private notes and answers to your own form fields.
Names, company and country are stored as plain text, so they can be searched and
sorted. Consent is recorded per donation, IP anonymization is on by default, and
you can erase or anonymize a donor on request. Gratora gives you the tools;
compliance depends on how you use them.

= Add-ons =

Gratora needs nothing else to run. When you need more, add-ons are available at
[gratora.net/add-ons](https://gratora.net/add-ons/):

* Peer-to-Peer: supporters raise money on their own pages, alone or in teams
* Event Tickets: sell tickets to fundraising events and check guests in by phone
* AI Assistant: ask about your fundraising and make changes in plain language
* Payment Gateways: Authorize.Net, Square, GoCardless, Moneris and Razorpay
* Conversion Tracking: report completed donations to GA4, Google Ads and Meta
* Connect: send donation and donor events to webhooks, Slack and Mailchimp
* Tributes: donations in honor or in memory of someone
* Gift Aid: collect UK Gift Aid declarations and prepare your claim for HMRC
* GiveWP Importer, free: move donors, donations, campaigns and recurring
  donations over from GiveWP

== External services ==

Gratora contacts these services only after you set up the feature that uses
them. A fresh install contacts none.

**Stripe** (api.stripe.com, js.stripe.com)
Takes card and wallet payments once you connect Stripe. Receives the amount,
currency and donation reference, and the donor's name and email. Card details go
straight to Stripe.
Terms: https://stripe.com/legal/ssa | Privacy: https://stripe.com/privacy

**PayPal** (api-m.paypal.com, api-m.sandbox.paypal.com, www.paypal.com)
Takes PayPal payments once you connect PayPal. Receives the amount, currency and
donation reference.
Terms: https://www.paypal.com/legalhub/useragreement-full | Privacy: https://www.paypal.com/legalhub/privacy-full

**Frankfurter** (api.frankfurter.app, which redirects to api.frankfurter.dev)
Fetches exchange rates daily while automatic rates are on and you accept more
than one currency, and whenever you ask for them. Sends your base currency code.
Terms and privacy: https://frankfurter.dev/#faq

== Source code ==

The JavaScript and CSS in `build/` are compiled. The sources they are built
from, and the tooling that builds them, are in the public repository:

https://github.com/gratorawp/gratora

== Installation ==

1. Install Gratora from Plugins > Add New, or upload the plugin folder to `/wp-content/plugins/` and activate it.
2. Open **Fundraising** in the admin menu and follow the short onboarding.
3. Under **Fundraising > Settings**, add your payment provider keys, or enable offline donations.
4. Create a campaign, then add a donation form to any page.

== Frequently Asked Questions ==

= Does Gratora take a cut of donations? =

No. You connect your own Stripe or PayPal account and donations settle straight
into it. Additional fees may apply from your payment provider.

= Can donors pay the processing fee for me? =

Yes. Add the "Cover the fees" block to a donation form, set the percentage and
the fixed amount, and choose whether it starts ticked.

= Can I change how a campaign page looks? =

All of it. A campaign page is an ordinary WordPress page, so you can move,
restyle or remove anything on it.

= Do I need a page builder or a separate form plugin? =

No. Campaign pages and donation forms are built from blocks in the WordPress
editor.

= Can I bring donations in from somewhere else? =

Yes. Import a CSV of donors, or donors and donations together, mapping your
columns to Gratora fields.

= Can I try it without taking real money? =

Yes. Turn on test mode, run donations through your provider's sandbox, and none
of it reaches your reporting.

== Screenshots ==

1. The dashboard: what came in, where it came from, and what needs attention.
2. Every donation, filterable by status, campaign, gateway and frequency.
3. A donor record: lifetime giving, their whole history, receipts, consent and notes.
4. Donor insights: lifecycle stages, segments, lifetime value and retention.
5. Campaigns, each with its goal and progress.
6. A campaign in detail, with its own figures and a report to download.
7. The block-based form builder. Fields and layout are blocks, so the editor is the one you already know.
8. Recurring plans, with monthly recurring revenue and the renewals that need attention.
9. Funds, so a donor can choose what their donation pays for.
10. Receipt settings: the template, your logo, and the merge tags it fills in.

== Changelog ==

= 1.1.0 =
* New: Fundraising > Add-ons lists every add-on, shows which ones this site has, and activates one you have installed.
* New: text, links, buttons and focus rings on donation forms, campaign pages, the donor portal and PDFs are checked against the color behind them, so they stay readable with any brand colors.
* Changed: page text no longer follows your brand's Background color. If your theme is dark and you set a dark Background under Fundraising > Settings > Brand without setting Body text, set Body text too.
* Fixed: a campaign past its goal shows by how much, on its page and in the dashboard widget.
* Fixed: the donate modal fits the screen.
* Fixed: Gratora screens say when your add-ons have no license key.
* Fixed: the readme says which donor details are encrypted and which are not.
* Developers: AsyncDispatcher::forgetRecurringHook() takes one recurring hook out of the queue, and erasing all data records its time in the gratora_erased_at option, so an add-on that was switched off at the time can still clean up after itself.

= 1.0.0 =
* Initial release.
