=== Charity Campaigns & Fundraising System ===
Contributors: rollybueno, buenoconsulting
Tags: donations, charity, fundraising
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

An easy, privacy-conscious donation and campaign management plugin with Stripe integration, shortcodes, and a clean admin experience.

== Description ==

Charity Campaigns lets you create fundraising campaigns and accept donations securely via Stripe. It focuses on simplicity, privacy, and a great admin workflow.

Key features:

* Custom post types for Campaigns and Donations
* Stripe payment processing (Payment Intents, Stripe Elements)
* Anonymous donations (name and email not stored if selected)
* Shortcode-based donation form (no blocks required)
* Campaign goals, progress, and completion handling
* Admin dashboard: overview, activity, and reports

Shortcode:

* `[ccfs_donation_form]` – Basic donation form
* Supported attributes: `campaign_id`, `campaign`, `amount`, `button_text`, `show_goal`, `show_progress`, `show_predefined_amounts`, `style` (default|minimal|featured), `class`

= External Services =
This plugin uses the [Stripe API](https://api.stripe.com/v1/) to create and confirm Payment Intents and loads [Stripe.js (Elements)](https://stripe.com/docs/js) from [Stripe.com](https://stripe.com/) to securely collect payment details for donations.

Information required to interact with Stripe:

* **Publishable Key (`pk_test_*` or `pk_live_*`)** – Initializes Stripe.js on the frontend.
* **Secret Key (`sk_test_*` or `sk_live_*`)** – Creates and confirms Payment Intents from the server.
* **Amount & Currency** – The donation total and currency for the Payment Intent.
* **Metadata (optional)** – Campaign and donation identifiers to reconcile payments.
* **Donor Name & Email (optional)** – Included only if the donor is not anonymous.

How it’s used:

* The plugin creates a Payment Intent (amount, currency, optional metadata) and loads Stripe.js to securely collect card details.
* The Payment Intent is confirmed; on success, the donation is recorded with the Stripe transaction ID.

This plugin does not store card numbers. For details, see:

* [Stripe Terms of Service](https://stripe.com/legal)
* [Stripe Privacy Policy](https://stripe.com/privacy)

= Privacy =
* Anonymous donations: when donors choose the anonymous option, name and email are not stored.
* For non-anonymous donations, donor name and email may be stored in donation records for receipts/reporting.
* Payment card details are never sent to or stored on your server. Stripe Elements (hosted by Stripe) handles card data.

== Installation ==

1. Upload the `charity-campaigns` folder to the `/wp-content/plugins/` directory or install via Plugins → Add New.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Go to Settings → Charity Campaigns and enter your Stripe API keys.
   * Use test keys (`pk_test_…`, `sk_test_…`) for testing.
   * Switch to live keys (`pk_live_…`, `sk_live_…`) for production.
4. Create a Campaign under Campaigns → Add New (set goal, details, featured image, etc.).
5. Add the shortcode to a page or post, for example: `[ccfs_donation_form campaign_id="123" amount="25"]`.

== Screenshots ==

1. Donation form (Stripe Elements, goal and progress)
2. Campaign edit screen with goal and progress
3. Donations list and details in wp-admin
4. Dashboard overview with calendar and trends
5. Settings page with Stripe configuration and test mode status

== Frequently Asked Questions ==

= Does this plugin store credit card data? =
No. Card data is handled by Stripe Elements and never save credit card data.

= Can donors remain anonymous? =
Yes. If the anonymous option is selected, the donor's name and email are not stored; the donation is recorded as "Anonymous Donor".

= Does it support test mode? =
Yes. Test mode is supported and clearly indicated. The plugin validates that your keys match the selected mode.

= Is there a block (Gutenberg) for the donation form? =
Not in this version. Use the shortcode `[ccfs_donation_form]`.

= What currencies are supported? =
Currencies are based on your site settings and Stripe account. The plugin formats amounts according to settings.

== Credits ==
Charts are powered by [Chart.js](https://www.chartjs.org/) using [MIT License](https://github.com/chartjs/Chart.js?tab=MIT-1-ov-file).

== Screenshots ==
1. **Dashboard Overview:** Displays a campaign calendar with completion and donation summaries alongside quick performance and insights metrics.
2. **Activity Page:** Shows a chronological timeline of campaign events and donation activities with filters for search and date range.
3. **Reports Page:** Summarizes total donations, goal progress, and campaign statistics with recent donations and visual analytics charts.
4. **Help Center Page:** Provides a detailed quick-start guide, shortcode references, and troubleshooting tips within a clean, card-based layout.
5. **Campaigns List:** Displays all campaigns with columns for title, status, progress, and completion details.
6. **Donations List:** Lists all donations with donor names, associated campaigns, amounts, and completion status.
7. **Frontend Donation Form:** Public-facing donation form where donors can enter amounts, personal details, and securely submit contributions.

== Changelog ==

= 1.0.0 =
Initial release.
- Shortcode-based donation form with Stripe payment flow
- Campaign and Donation CPTs with admin metaboxes
- Anonymous donation privacy controls
- Admin dashboard: overview, activity, and reports
- Test mode support and key validation
- WordPress security best practices (nonces, sanitization)

== Upgrade Notice ==

= 1.0.0 =
Initial public release.