Ignition Crowdfunding v0.11.0
This release unifies the frontend dashboard around a single sidebar navigation — the legacy tab strip and the separate “My Account” view are gone, replaced by one nav landmark that uses aria-current="page" for the active leaf and collapses to an off-canvas drawer on mobile. Reward tiers can now opt in to Requires shipping address, and backers pledging for those tiers fill in a Name + Address + City + Region + Postal + Country block at checkout; the address surfaces on the backer’s pledge detail, on the admin pledge detail, and in the admin Pledges CSV. Settings get a new Setup tab between General and Emails that groups the one-time configuration (permalink check, page assignments, Terms page, Share Buttons install panel) with an attention dot when items still need configuration.
New Features
Section titled “New Features”- Unified dashboard navigation — The Creator and Backer Dashboards now share a single sidebar nav with one optional level of nesting. Top-level items (Campaigns, Pledges, Account) appear flat for users who only see them; the Account item expands to its sections (Profile, Email, Password, Notifications, Privacy) for the active user. On screens below 600px the sidebar becomes an off-canvas drawer with a hamburger toggle, focus trap, Escape-to-close, and body scroll lock. The label on every nav item drops the “My” prefix it used to carry. See Frontend Dashboard and Account.
- Pledge-scoped shipping address capture — Each reward tier now carries a Requires shipping address toggle. When a backer pledges for a tier that requires shipping, the checkout review screen adds a Shipping Address fieldset (Recipient name, Address line 1, Address line 2, City, State / Region, Postal code, Country). The address persists with the pledge and renders read-only on the pledge detail page, on the wp-admin pledge detail screen, and as seven appended columns in the Export Pledges CSV. See Reward Levels.
- Setup settings tab — A new Setup tab sits between General and Emails and groups every one-time configuration item: Permalink Status, Login / Register Page, Dashboard Page, Checkout Page, Terms & Conditions Page, and Share Buttons. The tab label shows an attention dot (
Setup •) whenever any of those items still needs configuration, so administrators land on the right page after activation. The remaining knobs (currency, moderation, public creator registration, test campaigns, reward levels, guest checkout, backer list, campaign ending) stay on the General tab. See Settings — Setup.
Improvements
Section titled “Improvements”- Dashboard footer prompt for first-time creators — The “Start a Campaign” button moves to a single footer row under the campaign list and is preceded by a “Got something to fund?” prompt, so the empty-list state and the populated-list state share the same CTA placement. See Creating a Campaign.
- 1200px dashboard width tier — The dashboard is now rendered through the new
igcf-page-wideblock template (1200px constrained, no post-title) so creators have more horizontal room for the campaign list, pledge tables, and shipping address rows. The narrow (480px) and standard (800px) tiers are unchanged. See Page width tiers. - Dashboard layout polish — Detail sub-views now match the dashboard’s page width, section heading rhythm is consistent across Campaigns / Pledges / Account, reward-tier descriptions no longer ship with extra
wpautopparagraph margins, account section help text breathes properly under inputs, and notification toggles tighten the vertical rhythm between rows.
Bug Fixes
Section titled “Bug Fixes”- Dashboard nav hover symmetry — Nav-item labels are vertically centred so their hover backgrounds render symmetrically. (Carried over from the 0.10.0 dashboard work.)
- Logout state preserves intent — Logging out from the dashboard now reaches the home page with an
igcf_logged_out=1flag, which triggers a one-shot post-logout flash notice on the next page. Add-ons can rewrite the destination via the newigcf_logout_redirect_urlfilter.
Developer
Section titled “Developer”Igcf_Dashboard_Nav_Registry— New static registry for dashboard nav items.register_item( $id, $args )acceptslabel,priority,capability,callback,template, andparent; nesting is capped at one level (registering a child whose parent is itself a child is rejected via_doing_it_wrong()).get_visible_top_level_items()andget_visible_children( $parent_id )resolve what the current user can see. The legacyigcf_dashboard_tabsandigcf_account_tab_sectionsfilters are removed; register items through the registry instead. See Service Layer — Igcf_Dashboard_Nav_Registry.- Shipping address surface — New service class
Igcf_Shippingprovides the field schema (default_field_schema(),get_field_schema()), per-context requirement decision (default_requires_shipping(),requires_shipping()), sanitization (sanitize_address(),find_missing_required()), persistence helpers (get_decoded()), and render helpers (render_read_only(),csv_safe()). The reward-level meta key is exposed as the constantIgcf_Shipping::REWARD_LEVEL_META(_igcf_requires_shipping). See Service Layer — Igcf_Shipping. - New filters —
igcf_pledge_requires_shipping($bool, $context) gates the requirement per-tier per-context,igcf_pledge_shipping_field_schema($fields) modifies the collected fields,igcf_pledge_shipping_address($decoded, $pledge_id) rewrites the decoded address on read, andigcf_logout_redirect_url($url) rewrites the destination of the dashboard’s logout link. See Filters Reference. - New actions —
igcf_pledge_shipping_form_fields($context) fires inside the checkout shipping fieldset so add-ons can render extra fields, andigcf_pledge_shipping_saved($pledge_id, $persisted_shipping_address) fires fromIgcf_Pledge_Service::create()once the address has actually been persisted. See Actions Reference. Igcf_Pledge_Service::create()acceptsshipping_address— Pass a sanitized associative array keyed by the schema field keys; the service JSON-encodes and stores it in the newshipping_addresscolumn onwp_igcf_pledges. TheIgcf_Pledgedata object exposes the raw column as$shipping_address(string ornull); decode viaIgcf_Shipping::get_decoded( $pledge )to apply filters.- Reward levels carry
requires_shipping—Igcf_Reward_Level_Service::create(),update(), andclone_for_campaign()all read/write the new tier meta. The REST schema for/igcf/v1/reward-levelsexposesrequires_shippingon read and accepts it on create/update. See REST API — Reward Levels. - Template renames + new block template — The dashboard PHP templates lose their
dashboard-my-prefix:dashboard-my-campaigns.php→dashboard-campaigns.php,dashboard-my-pledges.php→dashboard-pledges.php, and the standalonedashboard-my-account.phpview is removed entirely (account sections render through the unified nav). A new block templateigcf-page-wide(1200px constrained, no post-title) is registered for the frontend dashboard; it is selectable in the block editor as Ignition Page (wide) and adds theigcf-page--widebody class. Theme overrides need to re-sync. See Template Overrides. - Unified nav CSS classes — The
.igcf-dashboard__tab*and.igcf-account-subnav*classes are gone. New element classes:.igcf-dashboard__menu-toggle,__menu-toggle-icon,__menu-toggle-label,__nav,__nav-item,__nav-item--active,__nav-item--logout,__nav-subitems,__nav-subitem,__nav-subitem--active,__nav-divider,__content,__scrim; modifier.igcf-dashboard--drawer-openand global.igcf-no-scrollon<body>while the drawer is open. See CSS Classes — Creator dashboard.