=== Donor Merchant – Donations with Stripe & PayPal ===
Contributors: mattmcwilliam
Tags: donations, donate, fundraising, stripe, paypal
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Accept one-time and recurring donations with Stripe and PayPal. Track donors, send receipts, and run reports — recurring giving included free.

== Description ==

**Donor Merchant** is a lightweight donation plugin for nonprofits, churches, schools, and community groups. Drop the donation form on any page with a block or shortcode, connect Stripe or PayPal, and start accepting gifts in minutes.

Unlike most donation plugins, **recurring giving is included in the free plugin** — monthly, quarterly, and yearly gifts powered by Stripe subscriptions, at no extra cost and with no transaction fees added by us.

= Features =

* **One-time and recurring donations** — monthly, quarterly, and yearly giving built in, free.
* **Stripe** — cards, Apple Pay, and Google Pay via Stripe's secure Payment Element. Card details never touch your server.
* **PayPal** — one-time gifts through PayPal Smart Buttons.
* **Fee recovery** — let donors add a little extra so 100% of the gift reaches you.
* **Tributes and memorials** — donors can dedicate a gift in honor or in memory of someone.
* **Donor management** — every donor and gift tracked automatically, with lifetime totals and CSV export.
* **Email receipts** — customizable thank-you receipts and new-donation notifications.
* **Reports dashboard** — total raised, monthly totals, average gift, recurring count at a glance.
* **Test mode** — try everything end to end with Stripe test keys and the PayPal sandbox before going live.
* **International** — 20 currencies supported.
* **Block and shortcode** — use the Donation Form block or the `[donor_merchant]` shortcode.

= How it stays secure =

Payment details are collected by Stripe and PayPal directly in the donor's browser. No card number, expiration date, or CVC is ever transmitted to or stored on your server. Donation totals are always recomputed server-side, payment status is confirmed server-to-gateway, and webhook signatures are verified.

= Getting started =

1. Install and activate the plugin.
2. Go to **Donor Merchant → Settings → Payments** and paste your Stripe and/or PayPal API keys.
3. Add the **Donation Form** block (or `[donor_merchant]`) to any page.
4. Test with Stripe test mode, then switch to live.

== Frequently Asked Questions ==

= Is recurring giving really free? =

Yes. Monthly, quarterly, and yearly donations via Stripe are part of the free plugin. You pay only the payment processor's own fees.

= Do I need an SSL certificate? =

Yes. Stripe and PayPal require your site to be served over HTTPS.

= Where do I find my Stripe API keys? =

In your Stripe dashboard under **Developers → API keys**. Use the test keys with Test mode to try things out safely.

= Does the plugin store card numbers? =

No, never. Card details are entered into fields hosted by Stripe (or on PayPal's site) and never reach your server.

= Can donors cover the processing fees? =

Yes — enable fee recovery in settings and donors can opt in to add the estimated processing fee to their gift.

= Are webhooks required? =

Recommended, but not required for one-time gifts. Recurring renewal payments are recorded via the Stripe webhook, so set it up if you accept recurring gifts. The settings page shows the exact URL and events to use.

= Does it work with my theme? =

The form ships with clean, self-contained styling that adapts to any well-built theme, and everything is namespaced to avoid conflicts.

== Screenshots ==

1. The donation form with recurring options, suggested amounts, and fee recovery.
2. Dashboard with fundraising totals at a glance.
3. Donations list with status filters, search, and CSV export.
4. Donor list with lifetime giving totals.
5. Settings — payments tab.

== Changelog ==

= 2.0.0 =
* Complete rewrite for production.
* Stripe Payment Element with one-time and recurring (monthly/quarterly/yearly) donations.
* PayPal Smart Buttons for one-time donations.
* Fee recovery, tributes/memorials, and donor notes.
* Donor and donation management with search, filters, and CSV export.
* Customizable email receipts and admin notifications.
* Stripe webhooks with signature verification (renewals, refunds, failures).
* Reports dashboard.
* Donation Form block for the editor; legacy [donation_form] shortcode still supported.
* Internationalization-ready; 20 currencies.

= 1.0 =
* Initial prototype.

== Upgrade Notice ==

= 2.0.0 =
Complete production rewrite. Settings carry over; the [donation_form] shortcode keeps working. Raw card fields are gone — payments now run through Stripe's hosted Payment Element and PayPal.
