Skip to content

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.

  • 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.
  • 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-wide block 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 wpautop paragraph margins, account section help text breathes properly under inputs, and notification toggles tighten the vertical rhythm between rows.
  • 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=1 flag, which triggers a one-shot post-logout flash notice on the next page. Add-ons can rewrite the destination via the new igcf_logout_redirect_url filter.
  • Igcf_Dashboard_Nav_Registry — New static registry for dashboard nav items. register_item( $id, $args ) accepts label, priority, capability, callback, template, and parent; 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() and get_visible_children( $parent_id ) resolve what the current user can see. The legacy igcf_dashboard_tabs and igcf_account_tab_sections filters are removed; register items through the registry instead. See Service Layer — Igcf_Dashboard_Nav_Registry.
  • Shipping address surface — New service class Igcf_Shipping provides 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 constant Igcf_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, and igcf_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, and igcf_pledge_shipping_saved ($pledge_id, $persisted_shipping_address) fires from Igcf_Pledge_Service::create() once the address has actually been persisted. See Actions Reference.
  • Igcf_Pledge_Service::create() accepts shipping_address — Pass a sanitized associative array keyed by the schema field keys; the service JSON-encodes and stores it in the new shipping_address column on wp_igcf_pledges. The Igcf_Pledge data object exposes the raw column as $shipping_address (string or null); decode via Igcf_Shipping::get_decoded( $pledge ) to apply filters.
  • Reward levels carry requires_shipping — Igcf_Reward_Level_Service::create(), update(), and clone_for_campaign() all read/write the new tier meta. The REST schema for /igcf/v1/reward-levels exposes requires_shipping on 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 standalone dashboard-my-account.php view is removed entirely (account sections render through the unified nav). A new block template igcf-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 the igcf-page--wide body 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-open and global .igcf-no-scroll on <body> while the drawer is open. See CSS Classes — Creator dashboard.