Ignition Crowdfunding v0.22.0
Until now a pledge was one number. Once an add-on can add something on top of it — a tip, a fee the backer chose to cover — one number stops being enough, and every screen has to answer two different questions: what the backer was charged, and where that money went. This release gives both questions one answer, computed once and shown the same way on the checkout, the receipt, the email, the backer’s pledge page and the wp-admin pledge screen.
New Features
Section titled “New Features”-
An itemised breakdown of every charge — When a charge is made up of more than the pledge itself, backers now see it spelled out: each part on its own line, with a bold Total charged at the foot. The same list appears on the checkout review step (updating live as the backer changes their mind), on the receipt, in the payment-received email and on the pledge’s page in the backer dashboard, so the four never disagree. A plain pledge with nothing added shows no list at all — there is nothing to itemise. See Checkout and Pledge Detail.
-
The admin pledge page is now two plain statements — Ignition → Pledges → View replaces the old Amount / Refunded / Net block with two tables side by side, one pair per successful payment: Charged to backer, itemised exactly as the backer saw it, and Where it went, the same money split by destination — returned to the backer, kept by the payment processor, taken by the platform, and the Net left over. Each destination is named in plain words, and the Net row says whether the money is still with the operator (owed) or has reached the creator. If the parts of a charge fail to add up to the charge, or if this page’s Net disagrees with the figure the rest of wp-admin reads, the page says so in an error notice instead of quietly showing a wrong total. See Managing Pledges.
-
A processing-fee column in the pledge exports — Both the wp-admin Export Pledges and the creator dashboard’s Export Pledges now carry a Processing Fee column beside the net, so the fee the payment processor kept is a figure you can read rather than a difference you have to derive. A pledge whose gateway never reported a fee leaves the cell empty — that is “never recorded”, not “zero”. See Settings and Managing a Campaign.
Improvements
Section titled “Improvements”-
Each net figure is named for whoever receives it — The creator dashboard export’s net column reads Net to You, the wp-admin pledge export’s reads Net to Recipient. The backer export keeps Net Received, because that column really is money a backer paid and is the one net on the site that cannot go negative.
-
A net below zero is shown as a negative number, and explained — When a card payment is refunded the processor keeps its fee, so the pledge can settle slightly under zero. That figure is no longer floored at
$0.00: the wp-admin Pledges list prints it signed (-$4.67, sign outside the currency symbol), the creator dashboard shows a short note above the pledge list explaining why, and the CSV exports pass it through as a real negative number a spreadsheet can sum rather than a text-escaped one. See When a refund leaves you below zero. -
The payment-received email leads with what was actually charged — It now reads “We received your payment of …” using the amount that left the backer’s card. When that amount is larger than the pledge, the email names both figures and prints the itemised breakdown beneath; when it is not, it stays a single sentence with no table. The two figures are never added together into one “contribution” total.
-
The backer’s partial-refund email no longer calls the remainder a contribution — It now reads “You have now paid … in total for this pledge.” The figure is the amount charged less refunds, which on a charge carrying a tip or a fee is not the campaign’s share, so describing it as a contribution was wrong. The administrator’s copy of the same email still uses the older “Net contribution” wording.
-
A selected amount button is bolder, not just darker — The pressed amount button on the pledge form and the checkout’s amount selector now carries a heavier weight as well as the filled background, so which one is selected does not depend on colour alone.
-
The creator dashboard’s pledge table works on a phone — Below 601px each pledge becomes a labelled card carrying every column, instead of the table dropping the Email column and squeezing the rest.
-
Two more add-ons in the catalog — Settings → Add-ons now lists Ignition Contributions and Ignition Payouts alongside the rest, with their status and download links. See Add-ons.
Bug Fixes
Section titled “Bug Fixes”-
Pledges show in the currency they were taken in — The Amount column on the wp-admin Pledges list, the
{pledge_amount}merge tag in emails, and the amount inside the offline payment instructions all formatted the figure with the site’s current currency setting rather than the pledge’s own. On a site whose currency had changed — or one taking pledges in more than one — that showed the wrong symbol and, for a currency with a different number of decimal places, an amount off by a factor of a hundred. -
Long figures no longer spill out of the Campaigns list — The Goal and Ends columns on Ignition → Campaigns were narrower than the values they hold, and because a WordPress list table uses a fixed layout the content escaped sideways over the neighbouring column instead of the column growing. Both are now wide enough for their longest ordinary value and wrap inside the cell rather than overflowing.
-
The suggested-amounts editor hides its Add control on mobile — At the six-amount maximum the Add field and button stayed visible on narrow screens, because two wp-admin rules overrode the attribute that hides them.
Developer
Section titled “Developer”-
igcf_pledge_detail_money_rowsis removed — It handed an add-on a list of pre-formatted money rows and let it pick its own position and its own plus-or-minus sign, so core could never check that the rows added up to what the backer was charged. Declare anigcf_pledge_settlement_termsterm instead: state an amount in minor units and where it went, and core does the ordering, the signs, the formatting and the totals. A callback left on the old name never runs; core detects it while rendering the pledge page and reports it through_doing_it_wrong(). -
One definition of what a charge is made of —
Igcf_Pledge_Breakdownbuilds both the projected charge (checkout) and the recorded one (everything after payment); add-ons contribute rows throughigcf_pledge_breakdown_components, andigcf_render_pledge_breakdown()renders them through the new theme-overridablepartials/pledge-breakdowntemplate. Its companionIgcf_Pledge_Settlementanswers where that same money went. -
Two new checkout seams —
igcf_checkout_review_money_beforeis a render slot on the review step for backer-facing money controls, andigcf_checkout_pre_submission_errorlets an add-on refuse a submission after the nonce check but before identity is resolved, so a refusal creates no pledge, no payment attempt and no guest account. -
Named fee components, and a projection that needs no attempt —
igcf_payment_attempt_application_fee_componentsbreaks the platform’s cut into named parts whose sum is the scalar application fee, andigcf_projected_charge_contextanswers the same questions for a hypothetical charge, campaign-keyed, before any pledge row exists. See Add-on seams. -
The processing fee has an owner —
igcf_payment_attempt_processing_fee(per attempt) andigcf_pledge_processing_fees(batched per pledge) are the gateway’s place to report what its processor kept. Core now subtracts the per-attempt figure from theigcf_payment_attempt_net_to_creatordefault, which consequently can now be negative and is no longer floored at zero — treat it as a display figure, not a payout basis. -
Payments record who is holding the money — A new
operator_custodycolumn onigcf_payment_attempts(database version 10) is stamped once at create time fromigcf_payment_attempt_operator_custodyand never re-derived, whileigcf_payment_attempt_operator_still_holdsanswers whether the operator is holding it right now. See the Service Layer. -
Ask what a routing choice would cost before making it —
igcf_pledge_routing_consequences( $to_creator )collects what a site would lose by routing pledges the given way, so a settings screen can warn about the option an operator has not picked. Append through theigcf_pledge_routing_consequence()helper rather than by hand. See Who receives pledges. -
Two refunds core now refuses — A refund against a payment attempt that never succeeded is rejected unless it carries a gateway reference (
igcf_payment_attempt_not_refundable), and a partial refund with no gateway reference against a charge larger than its pledge is rejected as unattributable (igcf_refund_partial_not_attributable). Recording a refund also no longer risks committing a caller’s open transaction: the unreliable MySQL probe is gone, and a caller inside its own transaction declares it throughigcf_db_in_transactionto get savepoint semantics. -
Two new merge tags —
{charged_amount}and{charge_breakdown}, both documented in the Merge Tags Reference. -
igcf_format_amount_signed()— Formats a minor-unit amount with the sign outside the currency symbol (-$4.67, not$-4.67). Non-negative amounts come back identical toigcf_format_amount(). -
A shared dashboard table look —
.igcf-dashboard__tableand its--grouped,__col-amountand__cell-valuecompanions are the frontend dashboard’s one table style, available to add-ons..igcf-dashboard__pledge-tablestays on the pledges table alongside it. See CSS Classes.