=== 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.