Ignition Crowdfunding v0.10.0
This release adds Test Campaigns — an admin-only mode that runs full pledge flows against an isolated, publicly-hidden campaign so payment gateways and email pipelines can be exercised without polluting real data. The wp-admin Pledges screen gains two CSV exports: Export Pledges (line items, respects filters) and Export Backers (one row per backer × currency, with a per-status pivot). Site owners can now flip a single Public campaign creation switch to keep new registrants on the backer role while leaving the door open to creators. The pledge review screen consolidates its identity section into two clear states — logged-in (with an inline Sign out link and live “Pledging as” preview) and logged-out (equal-weight Guest / Sign in / Register paths) — and the new-user welcome email is now a fully branded HTML message with a working Set-your-password link.
New Features
Section titled “New Features”- Test Campaigns — Administrators can duplicate a real campaign as a test campaign (
[TEST] …prefix, isolatedTeststatus) or click Add New Test Campaign to start one from scratch. Test campaigns accept pledges through the real pipeline so gateways, emails, and dashboards can be exercised, but they never appear in the public archive and their pledges are excluded from guest- and verification-cleanup aggregates. A new Test Campaigns admin-side toggle hides them from the admin campaign list for admins who don’t want to see them. See Test Campaigns. - Admin CSV exports for pledges and backers — Two new buttons sit next to the H1 on the wp-admin Pledges page. Export Pledges emits one row per pledge (16 columns) and respects every filter on the list — status, campaign, month, search. Export Backers emits one row per (backer, currency) pair with a per-status pivot (15 columns) and ignores the status filter by design so a single CSV captures a backer’s whole picture across Pledged / Paid / Cancelled / Settled. See Settings.
- Public campaign creation toggle — A new Public campaign creation field in Settings → General lets site owners decide whether anyone who registers through the frontend lands as a campaign creator (default) or as a regular backer. Existing creators are unaffected; the toggle only controls new registrations. The plugin’s auth form no longer reads the WordPress Anyone can register setting — the Register tab is always available, and the new toggle plus add-on filters carry the policy. See Ignition Platform Mode.
- Branded welcome email — New users created through wp-admin → Users → Add New (Backer or Campaign Creator role) now receive a branded HTML welcome email with a working “Set your password” button. The hijacked WordPress-default plain-text email is suppressed for plugin roles and preserved for everyone else. See Email Notifications.
Improvements
Section titled “Improvements”- Pledge review identity (logged-out) — Logged-out backers now see explicit, equal-weight paths on the review step: a full-width “Continue as Guest” CTA (with inline email entry) when guest checkout is enabled, plus a two-column outlined Sign in / Register row underneath. When guest checkout is off, the email field disappears and only the Sign in / Register row remains. The Register link pre-selects the Register tab on the auth page. See Checkout — Identity section.
- Pledge review identity (logged-in) — The “Pledging as” card now shows a Sign out link aligned right of the backer’s name, and the Hide my name checkbox is a live preview of the public backer-list row — toggling it flips the visible name between the backer’s display name and “Anonymous” without a reload. The card no longer displays the user’s email, since it is now a preview of the public row where email is never shown. The Terms & Conditions checkbox was moved to sit directly above the Confirm Pledge button.
- Reward levels carry through campaign duplication — The wp-admin Duplicate row action now clones every reward tier — title, amount, quantity limit, one-per-backer flag, featured image, display order, and active/inactive state — with the claimed count reset to zero on each clone. Duplicating no longer produces a draft with no tier structure. See Managing Campaigns — Duplicating a campaign.
- Creator dashboard export rename — The creator-side Export Backers button on the campaign detail view is now labelled Export Pledges to match what it actually emits (one row per pledge). The downloaded filename follows the new pattern
campaign-{slug}-pledges-{date}.csv.
Developer
Section titled “Developer”- New actions —
igcf_user_welcome_needed(a new user needs the branded welcome email — fires after WP’s plain-text suppression for plugin roles),igcf_checkout_identity_beforeandigcf_checkout_identity_after(wrap the entire identity section on the pledge review step). See Actions Reference and Authentication. - New filters —
igcf_can_create_campaign(gate the campaign-creation form per-user; create-mode only),igcf_welcome_set_password_url(rewrite the set-password URL embedded in the branded welcome email),igcf_checkout_identity_html(wrap or fully replace the rendered identity section HTML),igcf_admin_pledge_export_columns/igcf_admin_pledge_export_row(admin pledge CSV shape),igcf_admin_backer_export_columns/igcf_admin_backer_export_row(admin backer CSV shape), andigcf_pledge_backer_aggregates_args(adjust the query args for the aggregated-backer query). See Filters Reference. - Filter rename (creator export) —
igcf_backer_export_columns/igcf_backer_export_roware renamed toigcf_creator_pledge_export_columns/igcf_creator_pledge_export_row. The creator-side query var?igcf_action=export_backersis renamed toexport_pledges, the nonce actionigcf_export_backers_{id}toigcf_export_pledges_{id}, and the underlying classIgcf_Backer_ExporttoIgcf_Creator_Pledge_Export. This is a pre-release breaking change with no compatibility shim. - Service layer additions —
Igcf_Campaign_Service::create()now acceptsis_test => bool; when set withedit_others_igcf_campaigns, the new campaign is promoted to theigcf_teststatus with the[TEST]title prefix. New helpers:Igcf_Test_Campaign::promote(),is_test(),get_test_campaign_ids(),pledge_exclusion_clause(),prefix_with_marker();Igcf_Pledge_Service::query_backer_aggregates()andbuild_args_from_request();Igcf_Reward_Level_Service::clone_for_campaign(). See Service Layer. - REST:
is_teston campaign create —POST /igcf/v1/campaignsaccepts a top-levelis_testboolean (edit context, admin-only). Whentrue, the service-layer guard requiresedit_others_igcf_campaigns— non-admin callers receiveWP_Error('igcf_test_capability', …). See REST API — Campaigns. - New post status:
igcf_test— Custom post status used by the test-campaign isolation layer. Test campaigns are publish-locked atigcf_test; transitioning to any other status is reverted server-side. The status is excluded from public archive queries and visible only to users withedit_others_igcf_campaigns. - New merge tag:
{set_password_url}— Available in the welcome email template; resolves to the user’s set-password URL (filtered byigcf_welcome_set_password_url). - Checkout identity BEM consolidation — The three legacy identity-section modifiers (
.igcf-checkout__identity--logged-in,--guest,--auth-required) collapse to two (--logged-inand--logged-out). New element classes:.igcf-checkout__identity-row,__display,__signout,__toggle,__guest-path,__email,__email-help,__error,__guest-submit,__divider,__auth-row. Theme overrides ofcheckout.phpneed to re-sync. See CSS Classes — Checkout.