Before browsing new features (on our demo or your website after update) please flush cache and perform “hard reload” by pressing Ctrl + F5 (or Cmd + Shift + R on Mac). 🙂
After theme update:
1. Make sure you updated also plugins (Listeo Core, Listeo Editor, and Listeo Elementor)
2. Clear your website’s cache and hosting cache after the update
2.3.2
New
- Listeo Appearance Editor replaces Kirki/PureCustomizer plugin; you can deactivate it and keep your settings.
- Commissions > Pay vendor shows vendor payment details first and lets you set payment method, reference, paid to, and internal note before recording a payout.
Updated
- Listeo Editor > Appearance > Fonts: Host Google Fonts locally serves fonts from your site instead of Google.
- Refreshed Commissions and Payouts pages in wp-admin.
Improved
- Commissions > Balances shows what each vendor is owed, with search and sorting.
2.3.1
New
- New demos in Setup Wizard: Marketplace and Software & Tools demos.
- Paid blog posts: owners can be asked to pay for posting, with the new "Blog Post Package" WooCommerce product type.
- New listing page styles (Product, Showcase).
- New listing card layouts (Logo, Row, Minimal).
- Boxed split archive layout and a filters popup.
- Elementor: Tile Hero and several other new widgets.
- Header Builder: search in the header, second row, scrolling menu.
Improved
- Setup Wizard: each demo is downloaded separately, only when you choose it.
Fixes
- Add Listing: category fields came back empty after a server error, or were printed twice.
- Updating Listeo could leave the site in maintenance mode on hosts with a short PHP time limit.
- Header Builder: the Logout item sent users to the WordPress logout confirmation page.
- Google Fonts: the unused Varela Round font is no longer loaded, and the locally hosted Outfit font is no longer replaced with a Google URL.
2.3.0
New
- Setup Wizard: new Demo step. Pick the Multi Purpose demo or a themed starter demo (Car Dealers, Doctors).
- Compare listings: compare button on cards and the listing page, Listing Compare widget, floating compare bar and a Compare page with side by side table, Show only differences and shareable links.
- Custom taxonomies: create your own listing taxonomies with URL base, archives and search.
- Related taxonomies with a Chained select element for Add Listing and Search forms.
- Field visibility rules for conditional display in forms, listing page, cards and search filters.
- Taxonomies can be shown among Listing Fields as a row, tags or box in listing details and as chips on cards.
- Listing Fields: number and unit display, custom SVG icons, field label on cards.
- Listing Fields: section layouts Standard, Highlights or Table, optionally collapsible.
- Search forms: slider and From/To for number fields, Buttons (pick one), and Select: up to / from.
- Search forms: result count on the search button.
- Adaptive search filters: hide or grey out options without results, with optional counts.
- Listeo Elementor: Search Card widget with tabs and Tabbed search style for hero widgets.
- Sorting by any Listing Field marked Allow sorting by this field.
- Several search forms on one page.
- Listeo Editor: Overview, Export & Import and Repair Tools tabs.
- Search Forms: Preview button and Add headline element.
- Bulk Add Categories can also add Listing Features.
- New option Order of packages to buy for the Buy New Package list.
- JavaScript events for registration/login success with optional dataLayer push.
- Mastodon and Bluesky as listing social links.
- Customizer > Blog: Blog posts style and Single post layout options.
Improved
- Faster range filters for searches combining multiple number ranges.
- Price filter and rating filter performance improved on large sites.
- Listing cards no longer write to the database when shown.
- Listeo Editor redesign.
- Add Listing Forms show element sources and warn about incompatible field types.
- Saved searches show readable summaries.
- From/To search inputs for number fields use real dropdowns with units and optional side by side layout.
- Listings with equal sort values keep a stable order.
Updated
- SVG uploads are allowed only for users who can post unfiltered HTML.
- Different taxonomies in a search are always combined with AND.
- Highest rated, Featured, Verified and price sorting include listings without a value.
- AJAX browsing is on when the setting was never saved.
- Listing URL bases always use the site language.
- With Disable payments in bookings, requests waiting for approval no longer expire and Instant booking requires payment first is ignored.
- A field hidden by Show this field when loses its value when the listing is saved.
- The My Other Listings switch now works.
- Price Cache, Recalculate Ratings and Data Migration moved to Listeo Editor > Overview > Tools.
Fixes
- Reflected XSS on listing archives and the booking confirmation page; front-end Coupons ownership checks; vendor commission and Stripe Connect fields editable by vendors; payouts screen access; guest booking with book without being logged in off; SVG sanitizer and CMB2 field definitions hardened.
- AJAX search, shortcode and Elementor widgets now find the same listings as the listings page for price and number range filters; prices with thousands separators are read correctly.
- Saved search email alerts match the listings the search shows.
- Disable payments in bookings now works through the whole booking.
- With Map markers source: All published listings the map shows the same listings as the result list.
- Setup Wizard fixes for flat main menu, persistent object cache, demo imports, term settings and images, slow hosts, Elementor kit colors reset, and PHP warnings.
- Bulk plugin update could leave the site in maintenance mode.
- Fatal error after updating from versions before per-type review criteria.
- Add Listing Forms fixes for skipped taxonomy input and sections lost with form steps.
- Package count fixes for simultaneous approvals and full package assignment.
- Package restriction fixes for pricing, FAQ, calendar, coupons and fallback package listings.
- Custom booking fields were not copied to WooCommerce orders with instant booking.
- Recalculate Ratings fixed only about half of the listings per run.
- A headline near the end of Listing Fields could disappear from the listing page.
- Saving a listing with a long pricing menu failed on some hosts.
- WebP and AVIF are accepted by the submit form file fields.
- Elementor Listings widget kept its category restriction after filtering an empty category.
- Elementor Listing Custom Fields widget in Custom Fields mode no longer prints nothing.
- Outline SVG icons showed as solid shapes.
- A dropdown inside an openable search panel closed the panel.
- Phone country selector now works on mobile.
- Admin email for a new claim request had a valid link.
- Dokan fixes for vendor coupons and blank Add new product page.
- TikTok links and analytics mapping fixed on sites with an unsaved Contact tab.
- Booking Confirmation page created with Create page uses the correct template.
- Several PHP 8 errors in search forms and smaller fixes.
2.2.4
New
- Calendar view in Listings > Bookings that shows bookings by month, week or agenda, with the same listing, status, client, owner and resource filters as the list. It loads up to 500 bookings at a time, hides cancelled and expired bookings unless you pick that status in the filter, and shades owner-blocked days when one listing is filtered.
- "Region base" field in Settings > Permalinks to replace `/region/` with your own word. Leave it empty to keep current URLs.
- Setting "Resize images before upload (max px)" in Listeo Core > Submit Listing (default 2560): gallery photos larger than this are scaled down in the browser before upload. Scaled photos are rotated correctly and sent without camera metadata such as GPS position; smaller photos are sent unchanged.
Improved
- The Listeo Core admin menu is grouped under Settings, Tools, Add-ons and Licenses headings.
- "Listeo Ads" is now called "Promotions" in all text (menus, dashboard, settings, product type "Listing Promotion", widget "Listeo Promoted Listings").
- OpenStreetMap tiles load from tile.openstreetmap.org directly instead of the old a/b/c subdomains. Custom tile servers are not affected.
- Date range search reads dates correctly on sites with a day-first, text month date format
Updated
- Region, Feature, listing-type category and listing type URL slugs are now in the translation template, so you can translate them in Loco Translate or Poedit.
Fixes
- Gallery uploads no longer create blog, avatar, WooCommerce and extra-large image sizes for every photo, which reduces load and timeouts on shared hosting.
- Failed gallery uploads show a short red error on the image, and the form cannot be submitted while an image is still uploading or has failed.
- Changing any Listeo permalink base (listing, category, region, archive) now takes effect after one save. A region base that collides with another Listeo base is refused with a notice.
- Listings > Bookings filters (status, client, owner, listing, resource) no longer end on "Sorry, you are not allowed to access this page". The Client and Owner dropdowns keep the selection and "Pay to Confirm" now matches bookings.
- The all-listings map no longer freezes after a visitor allows location access with a search radius.
- "Find my location" with OpenStreetMap no longer moves another listing's marker, keeps the zoom level, and works with address suggestions turned off. With Google, the results now refresh.
- The "All published listings" map (Listeo Core > Map Settings > "Map markers source") and clustering work again on HTTPS sites whose WordPress address or upload path is still saved as http.
- Listing descriptions no longer lose their paragraph breaks after being edited in the WordPress block editor and then in the dashboard. Existing listings display correctly without changes to stored data.
- Removing an image from the gallery uploader now really removes it from the listing, and deletes it if it was not saved with any listing yet.
2.2.3
New
- Search by category name. The keyword box can now also match the names of your categories, features, regions or any custom taxonomy you choose, so searching for a category name returns the listings filed under it even when the word appears nowhere in the listing itself. Listeo Core > Browse/Search Options > "Search taxonomy names". Off by default.
- Address filters. Country, State / County, City and Postcode detected from a listing's address are now available as search fields in Listeo Editor > Search Forms. The detected address itself moved into the Location tab of the listing, next to the map.
- Pay For Time ad campaigns. A new campaign type charging for a period of display rather than per view or per click, with a configurable price per day and minimum and maximum duration.
- Fallback package. Listing packages can now specify where listings go when the package expires ("When listings on this package expire, move them to:"), instead of simply expiring.
- Custom SMS gateways. The SMS Providers screen now links to a guide for connecting your own SMS or WhatsApp gateway.
Improved
- The "Open Now" filter is back in Listeo Editor > Search Forms and now works on every layout, including the half-map and load-more views, with a correct result count and pagination. Only listings with Opening Hours switched on take part, matching the "Open Now" badge on the cards, and each listing is judged in its own time zone.
- Number settings accept a comma as the decimal separator. A price typed as "0,15" used to be submitted as empty on browsers whose language expects a full stop, so it saved as blank with no warning.
- The Minimal Search Form widget has a new "Search Button Text" control.
Fixes
- Reviews posted by signed-in users were moved to the trash while the author was shown an "awaiting moderation" page. Blog comments from signed-in users were affected in the same way.
- A guest review rejected by the CAPTCHA was reported back as "awaiting approval", so the visitor never saw the error.
- Moderating a comment could log a PHP 8 warning and store an empty rating, which quietly removed the listing from the "Minimum Rating" search filter.
- With AJAX browsing disabled, changing the sort order still sent an AJAX request: results came back as page one while the address stayed on /page/2/ and the pager stopped working.
- "Best Match" could not be selected at all, and the two price sort orders did nothing on the listing archive.
- Searching for more than one word matched listings containing only one of them: "senior care" returned everything mentioning "care".
- With Maps Provider set to None, WordPress 6.9.1 logged a dependency warning on every page view.
- A Drilldown field placed in the panel column of a fullwidth or boxed home search form printed raw template code onto the page.
- Booking notifications were sent before the booking was saved, so a cancelled or racing change could still send emails, SMS and create a Zoom meeting for a booking that never changed status.
- A free booking approved with "Approve Booking" never got its Zoom meeting, while the same booking marked through "Confirm Payment" did. Zoom meetings can also no longer be created twice for one booking.
- Listing owners received the "listing expired" email twice.
2.2.2
New
- Owners Grid and Owners Carousel Elementor widgets for displaying listing owners.
- Built-in breadcrumbs with an option to hide them in page title bars. Breadcrumb NavXT is now optional.
- Configurable booking tax display: show prices including tax or display taxes as separate items.
- Option to calculate booking taxes based on the listing location using WooCommerce tax rates.
- Automatic listing address detection, manual address editing and tools to fill missing tax locations.
- Option to mark additional fees as non-taxable and exclude taxes and pass-through fees from commission calculations.
- New booking email tags: {price_total}, {tax_total}, {payment_method}, {tickets_breakdown}, {price_incl_tax} and {tax_note}.
Improved
- Improved Owners Directory layout, responsive filters, profile fields and contact forms.
- Service selections now stay synchronized between pricing cards and the Booking Plus popup, including individual services.
- Consistent tax-inclusive totals and tax information across booking forms, booking dashboards and QR tickets.
- Contact popups prevent repeated messages until the recipient replies. Messages related to a shared booking remain exempt.
Updated
- CMB2 Field Slider is no longer listed as a required plugin.
Fixes
- Fixed the pricing and bookable services editor layout on mobile devices.
- Hidden unnecessary booking settings in pricing forms when bookings are disabled.
- Removed artificial “Category 1” tabs for uncategorized services and fixed their visibility in mixed pricing menus.
- Fixed Elementor Taxonomy Grid losing the selection order of categories and listing types.
- Disabling enhanced admin screens now also restores standard WordPress category, feature and region screens.
- Fixed coupon calculations with WooCommerce taxes and non-taxable fees.
- Removed the misleading “Qty” column from booking order payment pages.
- Purethemes MCP: fixed connections failing after OAuth when another plugin modifies REST JSON responses.
Security
- Strengthened encryption for newly saved or refreshed Zoom credentials and newly created meeting host links and passcodes.
- Disconnecting a Zoom account now requests token revocation.
- Zoom Marketplace connections require explicit confirmation before linking an account.
2.2.1
New
- Additional safety layer for listing submission and the user-profile file handler
- Optional failed-login lockout blocks logins after repeated failures on the Listeo login popup, wp-login.php and XML-RPC
- Owners Directory: public, filterable directory of listing owners via the [listeo_owners] shortcode
- Option to use self-hosted Nominatim and OpenStreetMap tile servers
- Verified column in Users > All Users and optional auto-verification of users who buy a package
- New setting to show website and social links while contact details are hidden
- New calendar on single listing Availability section
Improved
- Shared reCAPTCHA v3 verification listeo_core_verify_recaptcha_v3() replaces five separate implementations; one token per form (register, booking, claim, review, login)
- Drilldown/taxonomy menus: labels no longer show entities, terms sorted by name unless a term_order column exists
- Hidden conversations: Restore conversation is a visible button again
- Improvements for font icons
Updated
- Pricing section: category tabs when there are several menus, card layout per item, lazy-loaded images
- Google Reviews section: card carousel with arrows and avatars/initials
- Features list rendered as cards
- Listing reviews rendered as cards with header/footer
- Redesigned POI cards
Fixes
- Fixes the review form captcha
Changes
- New Features
2.2.0
Security
- Hardened dashboard booking status changes.
- Booking confirmation verifies a nonce and validates guest, ticket and extra-service quantities. (Child themes that override `booking.php` must add the new `listeo_booking_nonce` field.)
- Additional validation for public single-listing calendars and calendar booking-detail requests
- iCal subscriptions secured with per-listing random private tokens, optional guest details (off by default), private-link rotation and a control to disable legacy links (still served, availability-only, through the updated theme).
- Removed the legacy remote license-command endpoint and its init hook.
New
- New "Enhanced listings screen in wp-admin" setting (General > Listing Management, on by default). Turning it off restores the standard WordPress list table on Listings > All Listings, including the regular publish-date column and sorting
- New "Custom field search relation" setting: AND/OR when a search matches several values of the same custom field. Previous behaviour stays the default. Filter: `listeo_custom_field_search_relation`.
- New filters for add-ons extending the event booking widget: `listeo_event_booking_closed_notice`, `listeo_booking_confirmation_fee_subtotal`.
- "Listing Type" (`_listing_type`) is available in the widget Display Condition and the Theme Builder template Condition, e.g. show the booking widget only for "accommodations".
Updated
- Reordered the listing editor's Booking options into logical groups (booking and payment, prices, guests, children, pets, fees, tickets, time slots, hourly booking, availability)
- "Expire listing after event date" did not expire events whose date had been edited: the timestamp was computed from the date saved before the edit. It is now recomputed after all listing meta is written, and removed when the date is cleared.
- the "Store Settings" section of the frontend listing form is hidden from users whose package does not include Dokan store access when "Restrict Dokan Store to Packages Only" is on.
Fixes
- Fixes for map bounds search after panning or zooming and then searching a different location
- wp-admin availability calendar showed "NaN" and unlabeled buttons (missing calendar strings); fixed unreadable "Set Price" button colors in the price dialog.
- Header Builder: custom button settings could be discarded on save or preset apply.
- Header Builder: new elements were visible on every screen size instead of the one being edited, and toggling visibility could move an element. Both fixed.
2.1.9
New
- Single listing fullwidth photo layout and listing gallery mode
- Light/dark/auto color scheme option for Google Maps
Fixes
- Datepicker on events fields
- Displaying prices after tax calculations in booking confirmation
- Fatal Dokan error on post_date_column_time
Updated
- Option to disable marker clusters on map
2.1.8
New
- Includes Listeo Notifications that adds WhatsApp and Web Push notifications alongside SMS, with scheduled booking reminders and customizable user preferences.