pkg_payments changelog
Notable releases and milestones for Payments (pkg_payments).
| Version | Summary |
|---|---|
| 3.6.57 (production) | Buyers join your Updates email list. When someone buys an extension, they are now added to the Verified Forms Updates list straight away, so you can send them product updates — including customers whose account was created at checkout. Anyone who has unsubscribed is never re-subscribed. This needs Subscriptions Manager and Verified Forms; without them nothing changes. |
| 3.6.56 (production) | Accurate revenue and refund figures. The dashboard’s Refunded Amount now shows what was actually refunded, including partial refunds, rather than the original value of fully refunded payments. Total Revenue and the sales count now include partially refunded sales, counted for the amount you kept. |
| 3.6.55 (production) | Repair with Stripe completes. The new Repair with Stripe button could stop with a database error after its first repaired subscription; it now runs to the end, and if any single payment can’t be repaired it carries on and reports how many. New subscriptions also no longer log a misleading “failed to create subscription record” message. |
| 3.6.54 (production) | Subscriptions recorded in full, however the checkout finishes. When a customer returned to your site before Stripe’s confirmation arrived, a subscription could be recorded without its subscription record or its Stripe payment references, so its renewals were not recognised and a refund made in Stripe could not find the payment. Both routes now record everything, and a new subscription’s first payment no longer sends a “renewal confirmed” email. Repair with Stripe. A new Repair with Stripe button on the Transactions page checks your completed checkouts against Stripe, fills in anything missing, and records refunds you made in the Stripe dashboard. It can be run at any time. Several sites on one Stripe account. If more than one of your sites uses the same Stripe account, each site now quietly acknowledges the other sites’ payments instead of reporting them as failures, so Stripe stops retrying them and never disables a site’s webhook. |
| 3.6.51 – 3.6.53 (production) | Stripe payments processed reliably on Joomla 6. On sites running Joomla 6, the notification Stripe sends when a checkout completes could fail before the purchase was fully recorded, and subscription renewals would have failed the same way. Both now complete normally, and any unexpected error is logged and answered so that Stripe retries rather than giving up. Clearer checkout for returning customers. Checking out as a guest with the email address of an existing account now says so and offers a link to log in and return to the same checkout, instead of a general error. Smaller fixes. Features no longer switch off when your subscription has no value for them — your tier’s defaults apply and the subscription panel lists them; subscription checks are lighter; upgrade buttons stay available after a trial ends; and the Subscriptions Manager links open its directory page. |
| 3.6.44 – 3.6.50 (production) | More reliable update checks. Payments now checks for updates from a dedicated address (updates.multizone.co.uk) instead of the main website, sidestepping a security challenge that could occasionally cause a “Could not parse” error when Joomla checked for updates — applied automatically on install, and updates remain free with no key required. This range also carries shared licensing and pricing-page consistency fixes rolled out across the Multizone suite. |
| 3.6.43 (production) | Fixed: a valid paid licence could be shown as Trial. A perpetual (no-expiry) paid subscription key could get stuck showing as Trial after a routine re-check, hiding paid features. Licence validation now reads the paid tier correctly. |
| 3.6.39 – 3.6.42 (production) | Payment plans module — footer link fixed and plan descriptions render properly. Footer branding. The “available from Multizone” credit at the bottom of the payment plans module is a working link again, and the link now points to the correct extensions-directory page. The footer is now set with two simple fields in Options → Branding — a plain Module Footer Text and an optional Module Footer URL — instead of typing HTML, and existing settings are carried over automatically. Plan descriptions. A payment plan’s description now displays its formatting on the front end instead of showing raw HTML tags. |
| 3.6.36 | Subscription recognised more robustly. A licence check is now only ever trusted when it carries our server’s security signature, so a paid tier can never be granted by an unsigned response, and scheduled/background tasks recognise your licensed site the same way the browser does — so your paid tier stays recognised everywhere. No configuration change. |
| 3.6.33 – 3.6.34 | Subscription recognised after a security-key rotation, and a tidier dashboard. Subscription. Fixed: A valid subscription could briefly show as Trial after a security-key rotation. On sites updated from an earlier version, the small database change that stores the new signing key’s trust chain wasn’t always applied automatically, so after a routine rotation of our licence-signing key a paid subscription could fall back to trial-tier limits on its next cached licence check. This update automatically refreshes the cached licence, so your paid tier is recognised immediately and stays recognised. Admin layout. Dashboard and settings cards were inset slightly too far from the left and right edges and are now flush with the toolbar buttons and system messages for a cleaner, more consistent screen. |
| 3.6.30 – 3.6.32 | Trial installs re-checking their subscription less often, plus a weekly featured card in the dashboard. Validation traffic on trial sites. A signing mismatch meant trial installations re-validated their subscription quite often instead of honouring the 24-hour cache. They now behave like paid installs — about one check a day — and a new safeguard caps re-validation to once per cache window even if a future mismatch ever appears. Manual “Revalidate”, upgrades and key changes still take effect immediately. No configuration change. Featured card. The admin dashboard’s “More from Multizone” panel now shows a weekly featured card, with a link to leave a review on the Joomla Extensions Directory. |
| 3.6.24 – 3.6.29 | New signing key. Ships the new key used to verify your subscription, as part of a coordinated security rotation across all Multizone extensions, plus accumulated stability and interface improvements. No action needed — your site auto-updates and your subscription is unaffected. |
| 3.5.0 – 3.6.23 | Dashboard CTA polish synced with the rest of the family. Dashboard Upgrade CTAs unified. Trial-banner + subscription-status + subscription-widget partials re-synced. All Upgrade CTAs read “Upgrade Now”, no shopping-trolley icon, button tone follows alert tone — alert-danger → btn-danger text-white, alert-warning → btn-warning, alert-success → btn-success text-white — with explicit text-white because Atum overrides Bootstrap’s default contrast and the previous saturated-red-button-with-dark-text was unreadable. Subscription alert restructured to a single full-width row (icon | text | button) instead of the button stacking below. Subscription-widget footer keeps btn-success btn-lg — the always-on “Upgrade for more features” CTA. Tier-aware upgrade URL. Trial → standard, standard → premium, premium → enterprise, enterprise hides the footer row entirely (no tier above). |
| 3.4.0 | Joomla 6 compatibility for Stripe & licensing. Stripe API calls and licence validation now read HTTP responses through the current Joomla API. No configuration change required. |
| 3.3.0 | Subscription cache restored on customer sites. Fixed a bug where a cache mismatch caused fall back to trial.. |
| 3.2.0 | Joomla 6 Pre-Update Check no longer flags plg_system_paymentstasks as a Potentially Dangerous Plugin. The plugin now declares its own compatibility-only update manifest so the check can verify J5 / J6 compatibility — pkg_payments itself remains the canonical update path, so customers always update via the package. |
| 3.1.7 | Production release consolidating issues found in testing. Versions 3.1.1 through 3.1.6 iterated through this change before the consolidated release shipped. Subscription validation traffic reduced. The cache was repeatedly invalidating on every admin page render due to a signature mismatch with the validation API. Now caches successfully for 24 hours, so an active admin generates ~1 validation call per day rather than per page. Internal trait alignment across the four paid extensions; future drift is caught by a pre-push gate. |
| 3.1.0 | All five extensions updated to 3.1 — coordinated production release. |
| 3.0.28 | Joomla 6 update XML targetplatform now includes 6.* so the Pre-Update Check no longer flags the package as J6-incompatible. Dashboard tile regex fix in the shared “Multizone Extensions” admin home panel — replaces a lazy .*?</(?:div|li)> with a tempered-greedy pattern anchored to </li>, so future uninstall + reinstall cycles can no longer corrupt the panel. |
| 3.0.27 | Fixed “Duplicate entry '1-standard' for key 'idx_plan_tier'” error during upgrade on installs with duplicate tier rows. Migration 3.0.2.sql now dedupes the tiers table before adding the UNIQUE key, and a new idempotent postflight (ensurePaymentsTierUniqueKey) checks INFORMATION_SCHEMA and rebuilds the index safely on every install/update regardless of prior schema state. |
| 3.0.26 | Fixed upgrade error “Table ...payments_subscription_cache doesn't exist” for customers coming from ≤ 2.6.x. Migration 2.8.14.sql now creates the cache table with its pre-2.8.14 schema if it doesn't exist before running the ALTER that adds the signature verification columns. |
| 3.0.22 | Release number aligned across Multizone extension suite as part of unified DevOps pipeline |
| 3.0.21 | Featured Label help text clarified to reflect new behaviour: leaving the label blank now hides the ribbon entirely (no "Featured" / "Most Popular" fallback) |
| 3.0.17 | In-component Help view with component-wide and per-view content; tier edit inline pricing options layout, default price duration config and tax rate override toggles; plans list shows Stripe product IDs inline with Test/Live badges; tiers list grouped by plan with banded headers, PublishedButton toggle and a new Pricing column showing actual prices |
| 3.0.6 | Featured tier upsert ordering fix, multizone overlay script.php for idempotent SQL re-runs, SQL migration sync in postflight |
| 3.0.5 | Per-price tax rate IDs, whole-number pricing display, Stripe tax labels, com_veriform plan, standardised 30-day trials |
| 3.0.1 | Dashboard house style standardisation, grouped Home Dashboard tile, tier limits and pricing alignment |
| 3.0.0 | Major dashboard redesign with 6 KPI cards, navigation cards, active subscribers tracking, checkout success page improvements |
| 2.9.0 | Security hardening and JED Checker compliance across all packages |
| 2.8.0 | Product feature limit enforcement, subscription manager integration improvements |
| 2.7.0 | Subscription key creation on payment, consolidated download key system |
| 2.6.0 | Stripe key protection, full-width webhook panel, tax rate configuration, test mode improvements |
| 2.5.0 | Payment links, discount codes, multi-currency support (USD, GBP, EUR, CAD, AUD) |
| 2.3.0 | Home Dashboard tile, test/live mode toggle, toolbar test mode indicator |
| 2.1.0 | Packaged as pkg_payments with mod_payment_plans site module for displaying plans |
| 2.0.0 | Webhook processing with secure signature verification, comprehensive audit logging |
| 1.0.0 | Initial release — Stripe payment processing with subscription support for Joomla 5 |