From 6d15fe28f59bf669a210a1a9767ebf420dfdb47f Mon Sep 17 00:00:00 2001 From: ee-extensions release bot Date: Sat, 27 Jun 2026 01:43:34 +0000 Subject: [PATCH] release eea-foh-collect 0.3.3 --- eea-foh-collect.json | 8 ++++---- eea-foh-collect/eea-foh-collect-0.3.2.zip | Bin 6849 -> 0 bytes eea-foh-collect/eea-foh-collect-0.3.3.zip | Bin 0 -> 7764 bytes 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 eea-foh-collect/eea-foh-collect-0.3.2.zip create mode 100644 eea-foh-collect/eea-foh-collect-0.3.3.zip diff --git a/eea-foh-collect.json b/eea-foh-collect.json index e1ade6f..ff11299 100644 --- a/eea-foh-collect.json +++ b/eea-foh-collect.json @@ -1,13 +1,13 @@ { "name": "Front of House — Collect for Stripe (Card-Present)", "slug": "eea-foh-collect", - "version": "0.3.2", - "download_url": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-foh-collect/eea-foh-collect-0.3.2.zip", + "version": "0.3.3", + "download_url": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-foh-collect/eea-foh-collect-0.3.3.zip", "homepage": "https://gitea.mulligan.casa/ee-extensions/eea-foh-collect", "requires": "6.4", "tested": "7.0", "requires_php": "8.1", - "last_updated": "2026-06-26 17:51:11", + "last_updated": "2026-06-27 01:43:33", "icons": { "1x": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-foh-collect/icon-128x128.png", "2x": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/eea-foh-collect/icon-256x256.png" @@ -26,6 +26,6 @@ "description": "

A payment-method provider for Front of House for Event Espresso. It registers a \"Credit Card\" method that takes a card-present charge at the point of sale: the station deep-links the sale out to the Collect for Stripe terminal app, the card is charged on the reader, control returns to the station, and the payment is recorded against the Event Espresso transaction.

\n

Key points:

\n\n

This plugin extends Front of House for Event Espresso and does nothing on its own — it adds one method to that app's payment picker. It does not bundle or replace any Stripe integration; recording the charge relies on the Stripe Onsite payment method provided by Event Espresso's Stripe add-on.

", "installation": "
    \n
  1. Install and activate Event Espresso, its Stripe add-on (with the Stripe Onsite payment method active), and Front of House for Event Espresso.
  2. \n
  3. Pair a Stripe M2 reader or a Tap-to-Pay capable device with the Collect for Stripe app.
  4. \n
  5. Upload this plugin to wp-content/plugins/ and activate it.
  6. \n
  7. In Front of House's Settings ▸ Payment Methods, enable Credit Card (and optionally set a card surcharge).
  8. \n
", "faq": "

What hardware do I need?

\n

A Stripe M2 reader or a Tap-to-Pay capable device running the Collect for Stripe app, plus the Stripe Onsite payment method active in Event Espresso.

\n

Does it work without Front of House for Event Espresso?

\n

No. This plugin only adds a method to that app's station payment picker. It requires both Event Espresso and Front of House for Event Espresso.

\n

Why is the card button disabled at the station?

\n

The method marks itself unavailable when the Stripe Onsite payment method is not active in Event Espresso. Activate Stripe Onsite and the button enables.

", - "changelog": "

0.3.2
\n* Fix: the card-present return mapping now matches Collect's actual callback (result=success), not the never-correct status=succeeded. Previously a successful charge returned to the app as \"declined\" — money taken, payment not recorded. Card sales now record on return. Requires eea-foh with the matching return handler.

\n

0.3.1
\n* Migrate to the shared release pipeline; richer View-details modal (readme.txt sections, tags). No functional change.

\n

0.3.0
\n* Added a color-coded plugin icon (delivered through the update channel) and declared WordPress 7.0 compatibility. No functional change.

\n

0.2.1
\n* Updates are now handled by the Manifest Updater plugin (via the standard \"Update URI\" header) instead of a bundled updater. No functional change.

\n

0.2.0
\n* The card method is now registered through Front of House's payment-method registry (eea_foh_register_payment_methods), so Front of House owns enabling/disabling card, its button label, and an optional card surcharge in its own Settings ▸ Payment Methods section. This plugin's separate enable toggle has been removed (card enable lives in Front of House now); it keeps owning the Stripe gateway — the deep-link launch/return and the server-side charge verification are unchanged. Requires Front of House 0.21.0+.

\n

0.1.2
\n* Server-side verification: the card result is now confirmed against Stripe (charge retrieved with the merchant key, asserted succeeded/captured/USD/not-refunded) before Front of House records it, and the gateway's true captured amount is recorded — the return URL is no longer trusted. Transient gateway-unreachable failures retry, then surface distinctly so a clerk reconciles rather than re-charges.

\n

0.1.1
\n* Update channel + repository URLs moved to the ee-extensions org. No functional change.

\n

0.1.0
\n* Initial release: card-present \"Credit Card\" payment method that deep-links to the Collect for Stripe app and records the result against the Event Espresso transaction.
\n* Off-by-default settings toggle in Front of House settings.
\n* Availability check that disables the method when Stripe Onsite is not active.

" + "changelog": "

0.3.3
\n* Fix (confirmed against a real card return): the return mapping and the Stripe verifier now match Collect's ACTUAL callback. On completion Collect returns status=succeeded&customerId=…&paymentIntentId=pi_… — so the status param is status=succeeded (the 0.3.2 switch to result=success was the regression that made every real charge read as \"declined\"), and the ref is a Stripe PaymentIntent (pi_), not a charge (ch_). The server verifier now retrieves the PaymentIntent (confirms succeeded + USD + amount_received, detects refunds via its charge) and records Stripe's true captured amount. Requires eea-foh 0.23.7+.

\n

0.3.2
\n* Fix: the card-present return mapping now matches Collect's actual callback (result=success), not the never-correct status=succeeded. Previously a successful charge returned to the app as \"declined\" — money taken, payment not recorded. Card sales now record on return. Requires eea-foh with the matching return handler.

\n

0.3.1
\n* Migrate to the shared release pipeline; richer View-details modal (readme.txt sections, tags). No functional change.

\n

0.3.0
\n* Added a color-coded plugin icon (delivered through the update channel) and declared WordPress 7.0 compatibility. No functional change.

\n

0.2.1
\n* Updates are now handled by the Manifest Updater plugin (via the standard \"Update URI\" header) instead of a bundled updater. No functional change.

\n

0.2.0
\n* The card method is now registered through Front of House's payment-method registry (eea_foh_register_payment_methods), so Front of House owns enabling/disabling card, its button label, and an optional card surcharge in its own Settings ▸ Payment Methods section. This plugin's separate enable toggle has been removed (card enable lives in Front of House now); it keeps owning the Stripe gateway — the deep-link launch/return and the server-side charge verification are unchanged. Requires Front of House 0.21.0+.

\n

0.1.2
\n* Server-side verification: the card result is now confirmed against Stripe (charge retrieved with the merchant key, asserted succeeded/captured/USD/not-refunded) before Front of House records it, and the gateway's true captured amount is recorded — the return URL is no longer trusted. Transient gateway-unreachable failures retry, then surface distinctly so a clerk reconciles rather than re-charges.

\n

0.1.1
\n* Update channel + repository URLs moved to the ee-extensions org. No functional change.

\n

0.1.0
\n* Initial release: card-present \"Credit Card\" payment method that deep-links to the Collect for Stripe app and records the result against the Event Espresso transaction.
\n* Off-by-default settings toggle in Front of House settings.
\n* Availability check that disables the method when Stripe Onsite is not active.

" } } diff --git a/eea-foh-collect/eea-foh-collect-0.3.2.zip b/eea-foh-collect/eea-foh-collect-0.3.2.zip deleted file mode 100644 index 1a5220106eb49d18367328e274e19566bc19a783..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6849 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 literal 0 HcmV?d00001