PHP Pro Bid v10.0

Release Log

Released

Everything shipped in this release — new features, design updates, bug fixes, and behind-the-scenes changes, grouped by area.

80
Total items

Features

New functionality and modules added in this release.

34 items
ADD

Listing detail pages now display the secondary category alongside the primary one, where a second category has been assigned.

ADD

Listing detail pages now link through to the seller's store when they operate one.

ADD Listings

Listing cards now show a "Make an Offer" indicator when offers are enabled for that item, so buyers can spot negotiable listings at a glance.

Note Added a button on the listing card.
IMPORTANT

Listing setup fees and sale transaction fees have been consolidated into a single, unified fee for clearer, more predictable pricing.

IMPORTANT

Created the Auction Events module. Invoices are generated automatically when an event closes, or can be raised manually by buyers or sellers beforehand — a "Pending invoice" on My Purchases and My Sales links straight to checkout or invoice editing rather than routing through the cart. Lots can be added individually, in bulk, or via a composite element, and a Publish action controls when the event goes live.

ADD

Redesigned transactional emails, rebuilt from the new shared email layout template for a cleaner, more consistent look.

ADD

New setting to hide trailing decimals on whole-number amounts, displaying them only when an amount actually carries a fractional value.

ADD

Added a dedicated view helper for rendering the wish-list button consistently across the site.

ADD

Introduced a cron locking mechanism (file- or database-backed). While a lock is held, the next cron command of the same type is skipped rather than stacking up, preventing overlapping runs.

ADD

The listing preview now shows the quantity and listing duration, so sellers can confirm both before publishing.

ADD

Added a rate-limiting module to protect the platform against abusive request volumes.

ADD

New multiple-live-payment module lets users settle several live payment fees in a single transaction.

ADD

Refined how monetary amounts are rendered throughout the site — including listing lists — with more granular markup for finer styling control.

ADD

Added support for uploading and serving AVIF and WebP images for smaller file sizes and faster page loads.

ADD

The payment simulator is now disabled automatically in production, and the current environment mode is always shown clearly within the admin area.

ADD-ON

Added Stripe payment gateway to the retail version, with a refreshed design.

ADD

New cron task automatically clears items from the wish list after 15 days, unless they were added by a signed-in user.

ADD Users

Admin: listing fees are now managed on a single unified page, with fees whose underlying settings are inactive hidden from view.

ADD

Custom field attributes are now suggested and prefilled automatically based on the current selection, speeding up listing creation.

ADD

Introduced an advanced custom fields module, complete with supporting view helpers.

ADD-ON

Optional add-on that only allows feedback to be left once a listing has been paid for — protecting sellers from bad-faith buyers or competitors who purchase, never pay, and leave negative feedback.

FEATURE

Add-on CSS and JavaScript are now discovered and loaded automatically. The platform scans each add-on's assets/css and assets/js folders (as well as the theme's own asset folders) and injects them into both the admin and main layouts, with automatic cache busting on change.

FEATURE

Refreshed the social sharing options, including WhatsApp, Facebook Messenger, and a copy-link action.

ADD

In Members Area → Selling → Open, listings with the "With Bids" status now show the leading bidder's name alongside the bid count.

FEATURE

Using "Update cron" in the admin now updates the associated timer at the same time, keeping schedules in sync.

FEATURE

Rolled out a new, modern email layout across the platform.

FEATURE

Added reCAPTCHA protection to the message-sending form to cut down on spam.

FEATURE

Extended the adverts view helper with advertSingle and advertCarousel methods; the advert-carousel partial now calls advertSingle to eliminate duplicated markup across view partials.

FEATURE

Create Listing now supports collapsible sections. Blocks such as Location and Shipping can start collapsed behind an expand control to declutter the form, particularly on mobile.

Note Give sellers an option to hide/collapse rarely-edited prefilled sections such as location, shipping and payment.
FEATURE

The shopping cart has moved from a dropdown to a slide-in side panel, toggleable on both desktop and mobile.

FEATURE

Redesigned the listing setup form and added a multi-file upload box for faster image handling.

IMPORTANT Images

New admin option to disable server-side image caching and instead resize images in the browser with JavaScript, so they always fit their containers cleanly.

CODE Code

Added an on-demand async refresh path — a new waitForUpdateData() routine can be triggered whenever a page needs to update immediately rather than waiting for the next scheduled poll.

Note Applied when placing a bid, to immediately run waitForListingUpdateData after a bid is placed. Lets listing updates run less often (e.g. once every 30 seconds).
MOST IMPORTANT

Introduced a hooks system built around an AbstractHook class, letting developers extend core objects with new methods (overriding existing methods is not yet fully supported). The supporting trait is available on AbstractRow, AbstractRowset, AbstractService, and more.

Note For adding functionality to frequently-used classes such as Row/Listing and Row/User.

Design & UI

Visual, theme and layout improvements.

8 items
CSS

Improved invoice rendering on mobile devices and fixed a related printing issue.

DESIGN

Redesigned the mobile header with both dark and light menu variants.

DESIGN

Refreshed the search and browse page layouts, including the default listing card style.

DISPLAY

On auctions that offer buy-out, the buy-out price is now shown clearly in the popup so it can't be mistaken for the current bid.

DESIGN

Home-page boxes can now be arranged in a responsive grid (half-width and more) for a modern, card-based layout. The tabbed display option remains available via the setup and arrange field, with the section-width option disabled where it doesn't apply.

THEME

Modernised the admin theme with an updated design language across buttons, form elements, and controls.

THEME Design

Added theme variations for the Nine theme.

THEME

Introduced Essence, a brand-new theme.

Bugs & Fixes

Reported defects and small corrections resolved in this release.

27 items
BUG

Fixed several layout and interaction issues when listing products on Android phones: the "Products" button in the Members Area Scheduled section overflowed the screen, drag-and-drop photo reordering didn't work on touch devices, and the "List Now" button on the preview also ran off-screen.

Note "Products" extends but is now scrollable. Arrange on phones now works (jquery-ui-touch-punch). List buttons display one under the other.
BUG

Fixed unreliable saving of category meta titles and descriptions from the admin table editor, where moving straight to the next category could silently discard changes that appeared to have saved.

BUG

Fixed the show-password (eye) control, which failed on Safari for iPhone and anywhere inside the bid confirmation popup.

BUG

Fixed an incorrect redirect where actions such as "sign in to ask the seller a question" sent users to the Members Area instead of returning them to the page they came from.

BUG

Fixed an issue that prevented custom bid increments from being added to an auction.

Note Fixed (forceValue = true).
BUG

Fixed the show-password button on the login form, which did not respond on mobile browsers such as Chrome.

Note Only occurred on mobile phones.
BUG

Improved the visibility of the mobile menu icon in dark mode by switching it to white.

BUG

Fixed misaligned table columns on the sales browse page when no shipping was configured at all.

BUG

Fixed a bug where making a basic edit to a listing (for example switching to "Buyer Must Pickup") reset its start time to the moment of the edit instead of preserving the original date.

BUG

Fixed filtering by listings with bids when ordering by highest price.

BUG

Resolved a PHP 8.3 deprecation warning from usort() returning a boolean instead of an integer in the cron service.

Note PHP 8.3.
BUG

Fixed the admin logout button, which was missing in mobile view.

BUG

The listing step labels (Details / Shipping & Payment / Preview) are now fully translatable, rather than being limited to single-language use.

BUG

Added the missing oval.svg loader asset in the Nine theme, which was referenced throughout the CSS but returned a 404.

BUG

Cleared a further PHP 8.3 usort() deprecation warning in the cron service.

BUG

Fixed a case where, with "hide empty categories" enabled, empty categories were correctly hidden while browsing but still appeared in the left-hand column on category pages.

FIX

The cart count beside the cart icon now updates immediately when items are added from the cart popup, with no page reload required.

FIX

Empty and whitespace-only values can no longer be saved to the word-filter table, and are ignored when filtering. This whitespace-trimming safeguard now applies across all tables.

FIX

Home-page CMS boxes now respect the active language on multi-language sites, instead of displaying every box regardless of language.

Note Created one CMS section per language, or select "all" (accepts a single entry).
FIX

Fixed multi-language support for certain site fee descriptions.

FIX

Fixed an issue where adult categories and items could be viewed within a store without first confirming age consent.

FIX

Corrected inflated watcher counts that could appear on low-traffic auctions.

Note Workaround: purge the watch table every 15 days.
ISSUE

When combining invoices, the sale_id is now carried over from accounting to the newly created invoice.

ISSUE

Fixed a race condition where a bid placed just as cron marked a listing as "closing" could result in the auction closing on the previous high bid.

Note Added a 2–3 second delay before assigning the winner to make sure all bids are captured.
ISSUE

Direct payment gateway fields no longer appear on the registration page; they are now shown only on the account information page after sign-up.

Note Useless setting on the registration page.
ISSUE

The sidebar keyword search now ignores punctuation, so a query such as "Paul Procter" matches titles even when they contain a full stop or other punctuation.

ISSUE

Removed leftover end_time and tax_type_id fields from the bulk lister when both custom end times and tax are disabled in the admin.

Changes & Other

Refactors, dependency updates and miscellaneous changes.

11 items
DESIGN

Updated the X (formerly Twitter) logo to the current branding.

Note Updated to Bootstrap Icons.
FEATURE

The wish list can now be sorted using the same ordering options as the browse listings view.

CHANGE

The maximum custom listing date is now capped to the longest available value in the durations table.

Note Hardcoded at +1 year for now.
CODE Code

Introduced a central file for site-wide wording overrides, so that common terms can be changed in one place rather than edited sentence by sentence.

DESIGN

Refined the Members Area listing list, drawing on design ideas from the CardBidder layout.

CHANGE

Outbound emails now use quoted-printable transfer encoding, with the body encoded accordingly.

Note SMTP only.
CHANGE

Retired the standard router mode in favor of the hybrid router.

CHANGE

Corrected an incorrect method overload on save and select in the listings service, and audited related methods such as delete for the same issue.

INSTALLER

Refreshed the installer with a new logo and updated design, and removed the retired "standard" router type.

MOVE

Tax types are now tracked per listing rather than per invoice.

Note Added without cart checkout — the cart checkout option is still to be implemented to display properly on pending sales.
MOVE

Refactored inline JavaScript into heredoc blocks within their own dedicated protected methods for cleaner, more maintainable view code.

Looking for an earlier version? Browse the release logs for previous PHP Pro Bid releases.
Looking for how a feature works? Head to the documentation, browse the features page, or open a support ticket if you are a licensed customer.