---
title: "WP Property Drive Changelog"
source: https://4property.com/4sites/wp-property-drive/wp-property-drive-changelog/
updated: 2026-03-19T17:16:08+00:00
---

# WP Property Drive Changelog

### 4.0.7 (cumulative)

- 4Bids optimization and DRY clean-up
- Add a 4Property module option
- Add a diagnostics panel to 4Bids
- Add a list of approved bidders for the bulk email
- Add a team carousel shortcode
- Add additional property statuses (undocumented by MyHome)
- Add agent qualifications, phone number and email to the carousel
- Add all possible statuses (sales vs rentals) to property alert queries
- Add an email (`[[cf9]]`) subject line filter
- Add BankValuation to excluded property statuses (Acquaint CRM)
- Add class to the “alert me on similar properties” box
- Add clean up routine for old options, tables and property taxonomies
- Add configurable border radius for property cards
- Add collapsible optgroup elements for proeprty alerts
- Add contextual help for the Acquaint API key (where it is used)
- Add Copilot instructions
- Add correct email address(es) for Regus quick enquiries
- Add correct parent IDs for new developments for Daft
- Add country meta (vs international flag)
- Add country meta for all importers
- Add CSS for property attribute elements (property status elements)
- Add default 4Bids Terms and Conditions page, hosted externally
- Add default license key
- Add disclaimer field to properties
- Add Exclusive flag to the property grid
- Add fallback settings and fixes for Elementor (no Supernova)
- Add featured property support for Acquaint CRM
- Add featured property support for Property CRM
- Add hook for CF9 CC emails
- Add hotels, pubs, restaurants and B&Bs for RES CRM
- Add importer rule to force using town (instead of locality) for property_area
- Add infinite loading
- Add Irish areas and counties (database dump)
- Add missing “sold out” badge styling
- Add modification date column to properties
- Add more data to the 4Bids diagnostics popup
- Add more information to the Help tab
- Add more options to CLI
- Add more widgets to the WordPress Dashboard
- Add native excerpt support for properties
- Add new Acquaint API Logs page
- Add new developments/homes visual map page
- Add new Jupiter property card style
- Add new option for tenants, and an empty “Other” one
- Add new property grid order parameter (`price|DESC`)
- Add new property management page
- Add new property tour provider (propertypix.ie)
- Add open viewings to the MyHome v2 importer
- Add option to exclude properties from the REST API
- Add option to expand the agent email form by default
- Add option to force agency logo, regardless of feed data or custom agent photo
- Add option to use Town for area (instead of Locality) for Acquaint CRM
- Add property address field to the search form
- Add property card carousel option (uses Flickity)
- Add property order for the “Sold Out” status
- Add property slider
- Add server IP information on the plugin’s Dashboard
- Add sortable images for feed images (Daft, MyHome)
- Add support for additional templates
- Add support for YouTube Shorts for property tours
- Add the international flag to the property search
- Add tiered price steps for buying dropdown
- Add time() parameter to prevent caching for 4Bids
- Add withdrawn offer email notification (similar to outbidding)
- Aggregate agent details across published properties, grouped by email
- Allow 2 videos for property tours (Acquaint CRM only)
- Allow agents to reset property subscribers if property details change
- Allow area and county taxonomies to be synced with the property metas with the same name
- Allow changing of the `property_viewings_array` field in the feed
- Allow multiple countries in the property grid shortcode
- Allow multiple property card styles on the same website
- Allow open viewings removal if field is empty in the MyHome importer
- Allow properties without images to be imported
- Allow the price range to go all the way to the most expensive property
- Change `asort()` to `natsort()` to allow Dublin 1, 2, 3, 11, 12, 13 ordering
- Change neighbourhood guide content
- Change price range step from 50000 to 25000
- Change Regus prices to `INT` (from `FLOAT`), as the feed uses the wrong currency symbols
- Check if property features are inside an array before echoing
- Check if property meets REST API requirements
- Check if property type exists and, if not, use the property type ID for MyHome
- Clarify where the property was last modified
- Clean up plugin description
- Clean up settings page
- Clean up the slider feature
- Consolidate all CPTs in the same section
- Consolidate EPI energy details in one utility function
- Deactivate `date_default_timezone_set()` on a trial basis
- Disable “Notify bidders” toggle by default when adding offers manually
- Do not delete unsubscribed users, only flag them
- Do not remove importer CRONs on deactivation, as it might be temporary or an issue with the updater
- Do not show the Moneysherpa banner if the API result is 0
- Expose feed errors in the Property Drive connector
- Expose human-readable taxonomy labels alongside core REST fields
- Extend “Let” and “Has Been Let” to “Let Agreed”
- Fix 4Bids bulk user approval not setting the Bidder role correctly
- Fix element styling being too generic
- Fix Acquaint importer when there is only one property in the feed
- Fix broken block columns
- Fix cached `wppd_get_offer_details` calls and cancel any previous countdown loop to prevent stacking
- Fix code according to the new WPCS guidelines
- Fix comment typo
- Fix comparable map inside tabbed area
- Fix contrast accessibility for BER badges
- Fix counties being searched without the “Co” prefix
- Fix Daft selling_type field to match `bidding_method` in 4Bids
- Fix deprecated jQuery `click()` function
- Fix docblocks according to the new WPCS guidelines
- Fix duplicate property type when both type and living type are “Apartment” or “House”
- Fix floorplan slider inside tabbed area
- Fix Flickity slider for non-Supernova websites
- Fix incomplete comment
- Fix issue with County prefix not being present in all instances
- Fix issue with inconsistent property status terms in the RES CRM feed
- Fix issue with manually added properties and REST API
- Fix LeafletJS enqueuing
- Fix lots of property cards to work with the latest Chrome Flex updates
- Fix missing areas and counties from the property alerts dropdowns
- Fix missing property ID from the map module
- Fix old Daft importer and do not import properties if the API is down
- Fix overflown status ribbon
- Fix property editor map picker
- Fix property removal when Acquaint API URLs return error
- Fix quick enquiry form edge case
- Fix race condition in the Acquaint API calls for 4Bids
- Fix Regus properties with no source meta to be displayed
- Fix search results when using the hierarchical property type dropdown
- Fix several deprecated features
- Fix sold price label on the single property template
- Fix `strnatcmp()` being passed arrays on specific occasions
- Fix Supernova Slider block compatiblity with the latest WordPress
- Fix tail.select (strange, browser-related issue)
- Fix taxonomies not being updated when registered via REST API
- Fix the “Approved (Globally)” badge erroneously showing for some users
- Fix the Acquaint importer when there is only one property in the feed
- Fix the old Daft importer and do not import properties if the API is down
- Fix the wrapAround option not being used
- Fix undefined columns and grid size in the search results grid
- Fix unfinished comment
- Fix wrong property ID in the Acquaint API
- Format the sold price better for specific card styles
- Hide tooltips on mobile
- Improve agent override functionality
- Improve checking for international properties (deprecated but still needs query improvements)
- Improve clean-up routine
- Improve Daft importer functionality
- Improve Grid Ads formatting
- Improve property editor back-end UI
- Increment required WP 4Leads plugin version
- Increase function scope to avoid undefined function errors
- Make offers private (hidden from SEO plugins)
- Make property description links clickable
- Make `property_type`, `property_area` and `property_county` strings, instead of arrays, in the REST API
- Make sure `$areas` is an array in property alerts
- Make sure Grid Ads are visible, even when the position is higher than the property count
- Make sure `is_plugin_active()` works with ClassicPress
- Make sure `price_min` and `price_max` are being updated, if empty
- Make sure `price_term` is updated when importing from Acquaint
- Make sure property floors are updated if empty
- Make sure property tours are deleted when removed from the MyHome API feed
- Make sure the cinematic property hero is on the single-property template
- Merge WP Property Drive Agents plugin
- Move 4Bids demo count to the 4Bids Settings page
- Move Agent Alerts to the main Property Drive settings screen
- Move all custom post types registered by Property Drive under one top-level menu
- Move Comparables option to the property page settings (not Integrations)
- Move image proxy from dev76 to local plugin
- Move property card template to a new file for better management
- Move property grid arguments to a separate function
- Move updater to an external file
- Only allow open viewings for active properties (For Sale, To Let)
- Only extend auction if end time is still in the future
- Refactor Grid Ads for speed and for per-page targeting
- Refactor property grid to include better featured properties and faster Grid Ads
- Remove `[PD]` prefix from custom post types
- Remove check for Real Time Search option (it has already been retired)
- Remove conditional check from the CRON loop
- Remove `curl_close()` calls for PHP 8.5 compatibility (handles auto-close when out of scope)
- Remove custom Google fonts in the back-end of Property Drive
- Remove duplicate CSS class
- Remove empty property tours (when having multiple empty line breaks)
- Remove favourite properties feature
- Remove Foursquare (obsolete API)
- Remove global verification and make per-property default for 4Bids
- Remove Gravity Forms currency filter, as it already exists in Supernova
- Remove more settings pages
- Remove obsolete Epic CRM importer
- Remove obsolete legal pack CPT
- Remove obsolete Reapit integration
- Remove obsolete Rightmove integration
- Remove Offmarket module
- Remove old API endpoint and replace it with the native REST API
- Remove old CRON jobs
- Remove old, commented-out code
- Remove old settings pages
- Remove old Yoast and Gravity Forms integrations
- Remove old (legacy) legal packs (CPT)
- Remove Stackgrid option (CSS Masonry is coming soon)
- Remove status check for price range
- Remove Supernova post views both from code and the post_meta table
- Remove TTF/SVG and use WOFF for Akar icons
- Remove unused “address_only” field from non-Acquaint importers
- Remove unused code
- Remove unused files
- Remove unused function
- Remove unused options
- Remove unused parent_id meta key
- Remove unused Property hashing
- Remove unused Revisor role
- Remove unused Setup page
- Remove unused and obsolete code
- Remove WPCS warnings for not-prepared `ALTER` statements
- Remove wp_block post types from taxonomies
- Remove WP Property Drive Agents plugin duplication check
- Remove Zen functionality, as it interferes with the new WordPress Dashboard updates
- Rename 4Bids logs folder
- Reorganize single property template to allow a different grid order
- Replace regular expression with native wp_oembed_get for Vimeo videos
- Replace SVG icon with Akar icon
- Replace tail.datetime.js library with a custom, smaller one
- Sanitize and secure image proxy
- Send withdrawn offers via Acquaint API
- Skip inactive properties when importing from MyHome
- Switch Grid Ad Gutenberg sidebar to classic metaboxes
- Test new updater
- Tweak cinematic panel colours
- Tweak search form CSS for better width and padding
- Tweak team carousel with responsive flip cards and better navigation arrows
- Turn off all unnecessary IO events to save SQL bandwidth
- Update admin blue colour (based on the new Modern theme)
- Update admin dashboard CSS
- Update `date()` function calls to use `wp_date()`
- Update included blocks to use API version 3
- Update location autocomplete performance for property alerts
- Update percentage change element for sold properties
- Update plugin dashboard UI
- Update plugin dependencies
- Update Regus plugin dependency version
- Update REST API with more custom property fields
- Update `tail.select` (out of band)
- Update the REST API with more custom property fields
- Update WP 4Leads dependency
- Use a high resolution image for the agent avatar
- Use non-minified version of `tail.select` (for better debugging)
- Use `wp_timezone()` for bidding start and end time

### 3.21.0 (unreleased)

- Fix the combined property BER design
- Fix image offset for the `[[property-images]]` shortcode
- Fix multiple filters being applied individually (instead of as a group)
- Fix date formatting in RES CRM importer
- Fix RES CRM import details not showing up on the CRON screen
- Fix “exclude_children” parameter to hide new homes children on the `[[property-grid]]` and `[[search]]` shortcodes
- Fix missing address fields for Property CRM
- Fix missing description (`Prop_Description` vs `Prop_FullDescription`) in RES CRM
- Fix `<details>` element when a `<textarea>` is inside
- Fix missing columns when upgrading the property alerts table (legacy only, will be removed in the future)
- Fix the “exclude_children” property grid parameter (array concatenation issue)
- Fix MyHome importer to include the brochure as string instead of array
- Fix property type arrays not being read as global variables
- Fix issue with multiple agent listing alerts when properties have no agent emails
- Fix Moneysherpa not picking up the correct property ID in some instances
- Fix issue with AM/PM time not being correctly transformed by JS
- Fix Acquaint importer letting type and add subtypes
- Fix brochures and floor plans for the Acquaint importer
- Fix duplicate description details for Acquaint
- Fix property alerts when the importer source is Acquaint
- Fix property summary card styling for mobile
- Fix open viewings parameter in the property grid
- Do not import properties with “Valuation” status
- Fix/clarify option to bulk email bidders
- Fix undefined variable
- Bring back the `date_default_timezone_set()` setting
- Add optgroup values as a hidden field
- Add more details to the Dashboard property list
- Add Vimeo as a virtual tour provider
- Add property expiration for Property CRM
- Add debug view for the search page
- Add county search functionality to the search form
- Add new status filter for the property grid
- Add new Property Drive import event
- Add new property type mappings for the Acquaint importer
- Add new “bar” commercial property type
- Add property comparables
- Add padding between property attributes
- Add tags to property alerts property type dropdown
- Add accent colour settings to the plugin (as opposed to Supernova)
- Add Moneysherpa provider email
- Add county and area as configurable values on the property editor page
- Add agent listing alerts option to CLI
- Add single property filter
- Add agent listing alerts event
- Add tabs option for the single property template
- Add Slack notifications for Moneysherpa banner clicks
- Add new unsubscribe button to the alerts form
- Add property import time restriction (inactive, alpha)
- Add tours/videos to the RES CRM importer
- Add option to allow clickable cards (instead of default)
- Add native share button
- Add new toolbar for native sharw and QR code
- Add back duplicate title check
- Add more details to the cf9 IO event
- Add configurable currency
- Add multicurrency
- Add missing property type and raw feed debug for Property CRM
- Add living type dropdown to the search form
- Add “residential” property type to fix malformed API data
- Add property statistics on the property editor screen
- Add **MyHome** (v2) importer
- Add a “portal” option to fix Property Drive import when old keys are present
- Add debug feed (raw) to the property editor page
- Add custom link option for property card
- Add “lock property” quick action for properties
- Add a site cache key to the page footer to help with clearing browser caching
- Add real-time search option value to the CLI
- Add native property sidebar fallback with admin settings
- Add cache key to the MyHome importer
- Add Easting and Northing fields when checking for property coordinates
- Add new `display_address` field
- Add Plesk/WP Toolkit update compatibility
- Add price term/frequency to the Acquaint CRM importer
- Add more recommended fields to readme.txt
- Add 10% (plus or minus) to the alert price range
- Add more details to the back-end properties table
- Add missing index.php file to the logs folder
- Add property expiry (beta)
- Add extra property types for the Acquaint importer
- Add missing open viewing times
- Add new properties ping API
- Add phone “reveal” feature and tracking capabilities
- Add missing property types to Property CRM
- Add bulk user management for 4Bids approval
- Add Zen mode to WordPress Dashboard
- Add IWG/Regus importer
- Add extra fields to the JSON REST API for PDL
- Make sure an agent email address exists when importing from Property Drive
- Make sure a property type is selected on the search results page
- Make sure the `hide_price` field can be reverted
- Make days visible for the 4Bids countdown
- Make the front-end user account (4Bids) section mobile responsive
- Make position mandatory for property alerts
- Allow legal packs to be uploaded on the spot, in addition to copy/paste
- Allow property cards to be clicked as a block
- Allow property order to be updated only when the property is locked (also, add sold price, if available)
- Improve search form functionality for better responsiveness
- Improve property attributes grid
- Exclude videos from Property CRM image array
- Update auction countdown to be more efficient in terms of resources
- Update date format (WordPress-specific) for last import date for the Property Drive Importer
- Refactor alert unsubscribe feature
- Refactor agent listing alerts
- Refactor the agent details box to use the agent feed ID, if the email is not available
- Refactor BER badges to allow for compound values (C3-F)
- Refactor the property typ dropdpwn to allow for hierarchical types (RESO)
- Clean up property details (editor view)
- Change PHP `date()` to WordPress `gmdate()` for better timezone compatibility
- Change the way the images are saved in order to preserve the order in Property CRM
- Change price step from `10000` to `50000`
- Change importers options to use the `checked()` function
- Use “sqm” instead of “m” for property size
- Check if buying/renting dropdowns exist before updating them
- Check for agent ID first, then for email when matching agents
- Consolidate property types to include more types and to be globally available
- Skip import process if domain is findahome.ie or commercial.ie and “FeedTo” is set to “web”
- Sort counties alphabetically (in addition to areas)
- Store the MyHome agent email in lowercase
- Move the property details (beds, baths, price and BER) to the bottom of the property card
- Trim agent email to prevent issues with agent notifications
- Track and store Moneysherpa clicks
- Track and store quick property enquiries
- More tweaks for the Acquaint importer
- More tweaks for the RES CRM importer
- Tweak the Swiper slider
- Deprecate the real-time search
- Format date correctly for timezone changes for Property CRM
- Remove unused remote plugin updater
- Remove what3words from the Acquaint importer
- Remove Google reCAPTCHA integration and refactor the Akismet one
- Remove unused stylesheets from the back-end
- Remove “My Account” progress bar
- Remove Yelp module
- Delete old agent post meta

### 3.18.0

- Add new property type for Property CRM
- Add `mailto` link to agent’s email in the single property sidebar
- Add new amount column to the offer CPT
- Add cleanup routine to remove amount from offer CPTs
- Add new API endpoint to get option values from a central location
- Add agent alert email fallback
- Add basic Moneysherpa calculator (alpha)
- Get the agent alert message from 4Property API
- Make slides internal only (no SEO)
- Make property order field editable
- Make sure the `no_properties_found_block_id` is returned, not echoed
- Check for allowed emails in agent alerts
- Change property market to dropdown and add property excerpt field
- Change minimum price amount to 0 (from 10000) to include POA properties
- Tweak the switch inset box shadow for a softer look
- Move the property card agent logo to the top (from the bottom)
- Use `selected()` instead of conditional check
- Update property Schema based on Google’s new guidelines
- Update the tail.select library to the latest version (1.1.0)
- Update contextual help
- Do not wrap some fields on the property alerts form
- Clean up single property print template
- Remove PropertyPin sharing integration

### 3.17.0

- Fix agent notifications to properly include each agent’s properties
- Fix agent notifications to send emails per agent per property
- Fix issue with the property grid and a rogue Flex element
- Fix Favourites tooltip
- Make sure directions and amenities are updated, even when empty
- Make sure bidders cannot have the same property both pending and approved
- Make the search form contextually aware
- Cache PI thumbnails in a physical directory, instead of `/tmp/`
- Add line breaks to Accommodation details
- Add new “all” parameter to show both local and international properties
- Add `date_created` and `date_modified` based on new feed update
- Add Eircode, property size, features and accommodation details to the Property CRM importer
- Add new property type to the “Residential” category for Property CRM
- Add `property_order` to REST API
- Add the SWAL library to help with Favourites notifications
- Add more help to the Settings page
- Implement first name and last name for the property alerts (switch from a single full name field)
- Implement numbered pagination
- Update custom agent name (if set)
- Amend user roles and capabilities and add new Revisor role
- More fixes for the RES CRM importer
- Remove hidden elements on the profile page
- Remove Favourites icon from the printable title

### 3.16.3

- Fix wrong property featured image order when all images are loaded locally
- Fix search form defaulting bathrooms to 1, instead of 0
- Fix the **Floorplan** section not having an anchor
- Fix date and source for the Property CRM importer
- Fix wrong `untrailingslashit()` function
- Fix old Flex CSS selector breaking property grids in some cases
- Fix wrong payload parameter for 4Bids enabler
- Fix price (min/max) and beds/baths dropdowns not using Flex CSS
- Fix menu overlap on single property template (WIP)
- Allow more strings to signal an online auction
- Make sure agent email, mobile, photo and qualifications are removed if empty in the feed
- Implement Agent management features
- Add non-featured property parameter to the property grid shortcode
- Add extra property types based on the Houzez theme
- Add last import date to the Acquaint importer
- Add “site-individual” property type to **Residential** type
- Add more merge tags to the agent notification email
- Add template parts to property areas and counties
- Add RES CRM importer (alpha)
- Update RES CRM importer with new endpoint URL
- Refactor the Media Manager for the property editor
- Save county as a meta field, as well, for RES CRM
- Tweak agent alert email
- Remove non-UTF characters from property description
- Remove clickable email address from the sidebar **Agent** section
- Remove the **Contacts** experiment (it got no traction)
- Remove old 4Bids migrator
- Remove old **Thin UI** class references
- Remove old dependency from WPCS
- Sanitize and unslash user input

### 3.16.0

- Fix post ID not being correctly picked up on property import
- Fix NULL comparisons to adhere to PHPCS standards
- Do not downsize large images
- Update Fancybox Grid Gallery library to latest version (4.x to 5.x)
- Update the user registration email template on all websites
- Add workaround to change status to “For Auction” to properties containing “Online Auction:” in description
- Allow changing property status based on description content
- Make the `<summary>` element relative to allow for `::before` and `::after` pseudo-elements
- Allow short array syntax and disallow long array syntax in PHPCS
- Move D2S scripts to shortcode (instead of head)
- Change default user registration email from 4Bids-specific to a more generic one
- UI tweaks

### 3.15.1

- Add new {status} property card template tag
- Sanitize 4Bids property agent emails twice (on sending and on importing)
- Remove Codacy badge

### 3.15.0

- Add new UI buttons
- Add property expiry feature
- Add property custom fields to REST API
- Add Studio/Bedsit to list of property types
- Add property market data parameter to single property template to be used for CSS changes
- Check for various null values for CountryName to prevent marking properties as international
- Make property location and type optional for property alerts
- Make location and category not mandatory for property alerts
- Make residential properties default when using the property filter buttons
- Change all search fields hardcoded values into loops
- Replace JavaScript accordion with native `<details>` element
- Remove columns option for property description (unused)
- Remove legacy PlanetVerify code

### 3.14.8

- Allow PDF brochures to be deleted
- Ensure at least 5 images in the Grid carousel, as CSS Grid won’t work if the grid is not complete
- Fix broken columns (switch from Flex CSS to Grid CSS)
- Add image count to the Properties screen
- Add parent property ID (importer ID, alpha)
- Allow new developments to inherit linked property agent details
- Assign linked (child) property agent, if available, to new development (parent)
- Rename variable to conform to WPCS
- Deprecate Reapit (Daft) and Reapit (Rightmove) importers
- Remove recommended plugins functionality

### 3.14.7 (cumulative)

- Fix international properties not working when using the real-time search
- Add remote updater (experimental)
- Add Font Awesome 6 integration (optional)
- Add front-end QR code
- Add printable QR code to the single property template
- Add contextual help for the property sidebar QR shortcode
- Add statistics button for properties, if the WP 4Leads plugin is enabled
- Add `minPrice` and `maxPrice` parameters for the property grid shortcode
- Add new property card design
- Add agent alerts feature
- Add Akismet key to the Help tab
- Add property type filter (dropdown and tabs)
- Allow properties to be excluded from the property grid
- Check if ManageWP worker exists on child website
- Check for empty array before importing county from Acquaint feed
- Make sure the property status is consolidated when importing properties, as lots of data depend on this value
- Only load the QR library on the single property template
- Switch Font Awesome stylesheet with JS library for faster access
- Update PropertyPin integration to work with CTRL+click instead of right-click
- Update sharing shortcode (`[[share]]`) to work with Pinterest and the custom print layout
- Update `<details>` appearance in the back-end
- Update and consolidate border radius globally
- Update previously incorrectly marked properties as International
- Reorganise the property card to allow for Flex reordering
- Tweak `<details>` element appearance
- Combine two switch elements
- Remove Post SMTP from CLI
- Remove 4Bids distraction-free mode
- Remove Thin UI dependency
- Remove feed featured property as it was confusing, visually
- Remove extra spacing from Moneysherpa container
- Disallow zooming when scrolling over the property map

### 3.14.3 (cumulative)

- Fix Let Agreed properties not getting the correct status and order for Property CRM
- Fix International/Overseas properties for Property Drive
- Fix custom block template
- Add cache busting to the QR code URL
- Add missing 1-column property grid layout
- Add active properties only to property alerts
- Add template parts to property sidebar selector
- Add labels for Acquaint CRM specific options
- Allow both Patterns and Template Parts to be visible in the Pattern dropdown
- Tweak Beholder property card design
- Check if user is not Super Admin before redirecting to My Account section
- Register template part post type (do not depend on Supernova)
- Make sure all agent and notification emails are lowercase
- Only display thumbnails in the WordPress Dashboard for Property CPT
- Show error message when Property Drive connector fails
- Switch from Patterns to custom template parts (CPT)
- Save agent email as lowercase
- Remove extra top padding from property template
- Remove non WPMU compatible action

### 3.14.0

- Fix undefined variables in the property grid filters
- Fix issue with multiple email notifications in 4Bids
- Fix wrong open viewings option link
- Fix z-index issue with property grid filters
- Add new map modal shortcode – `[[property-map-modal]]`
- Add on-the-fly thumbnail generation for Property CRM
- Add new Property CRM feed fields: agent email, agent name, date published and date modified
- Add Google Consent to the privacy modal
- Add more API keys to the Help page
- Add a “Back” button to the single property template, if the referrer is from the same domain
- Add status message for 4Bids document upload
- Add “property status” to the simple property map shortcode
- Add property count to CLI
- Refactor 4Bids document upload boxes
- Expand QR codes to allow square logos inside
- Make the entire property card title clickable (block display)
- Move bid increment to an AJAX variable to protect it from tampering
- Remove email sanitizion in the 4Bids array, as the emails are already checked
- Remove WordPress user registration option, as the front-end registration
- Remove obsolete privacy tools, as [WP Google Consent Platform (GCP) plugin](https://getbutterfly.com/wp-gcp-a-wordpress-plugin-for-google-consent-mode-v2/) took over in a more compliant way
- Update code (WPCS)
- Code cleanup

### 3.13.0

- Fix Reapit CRM importer not detecting new developments
- Fix Reapit CRM importer not deleting withdrawn properties
- Fix old login URL in 4Bids email
- Manually added offers now trigger outbid/bidder notifications
- Notification fixes, updates, and changes
- Add the custom agent email to 4Bids document upload notifications
- Add PSRA number option to agency details
- Add print brochure option + orientation settings
- Add custom print shortcodes
- Add print shortcodes for maps (both terrain and satellite)
- Add margin below the property cinematic hero
- Add property alert force-send
- Add importer information at the bottom of the importer window
- Implement a custom print template for single properties
- Respect alert checkbox preference
- Record property alert subscription
- Create an alert automatically for every CF9 (quick enquiry) request
- Remove the Patterns menu item, as WordPress 6.5 adds it automatically under Appearance
- Remove asynchronous decoding from images to help with printing compatibility
- Remove ActiveCampaign from all CF9 calls

### 3.12.0

- Fix canvas overflow issue with the Moneysherpa widget
- Fix issue with CF9 form appearing on inactive properties due to a missing property ID
- Fix 4Bids settings and T&Cs agreement link targets
- Fix issue with overlapping dropdown for the property alerts dropdown
- Only display the GeoCoordinates schema if both latitude and longitude exist
- Clean up Property CRM importer
- Deprecate the Legal Pack CPT and use a textarea with multiple URLs, same as brochures or 3D tours or videos
- Add Reapit (Foundations) API importer
- Add Matterport tours to the Reapit importer
- Make sure pending properties are reactivated with Reapit CRM
- Add user segments to the bulk email feature
- Add better field validation for price and price term to the property editor
- Apply content filters to the property description to take advantage of W3P SEO’s Link Whisper functionality
- Change colours to match the overall tone of the plugin
- Remove property alert option (on|off) and enable it by default
- Remove obsolete WP Property Drive Pro from the list of internal plugins
- Remove 4Bids global notifications option and enable it by default

### 3.11.0

- Fix property price term and add additional property types for Property CRM
- Fix EUR symbol positioning for Gravity Forms
- Fix wrong agent email check for 4Bids outbid notifications
- Fix mobile view for “My Account” tabs
- Fix mobile view for UI pills
- Add bidder notification status to “My Account”
- Add extra wording for the Offr integration
- Add rentals to property alerts
- Add “Bungalow” residential property type to Property CRM importer
- Only display the Quick Enquiry form (CF9) for active properties
- Update Moneysherpa banner
- Update unavailable property notification color
- Disable back-end user/author account

### 3.10.7

- Fix links to user account pointing to wp-login.php
- Fix “My Account” page author not being the first one
- Make sure user “leaves” are not included multiple times

### 3.10.0

- Fix issue with different property types for Property CRM
- Add front-end user account
- Add event logging for 4Bids (invoices, properties and offers)
- Various fixes for forms for iOS

### 3.9.9 (cumulative)

- Fix missing properties due to empty `property_features` field
- Fix invalid latitude and longitude values for the property map shortcode
- Fix line break in the privacy modal
- Fix prices for Property CRM importer
- Fix error class for the CF9 quick enquiry form
- Fix issue with the property brochure Grid gallery not being clickable on mobile
- Fix issue with disabling 4Bids if property status is “Sale Agreed” or “Sold” (hidden meta key)
- Fix missing `$date_format` variable in 4Bids email
- Fix duplicate agent emails in 4Bids notifications
- Hardcode ‘Europe/Dublin’ for multisite only (for single site, use the `timezone_string` option)
- Update user restrictions to fix missing 4Bids properties
- Update 4Leads plugin description
- Update tail.select JavaScript library to latest version
- Update Moneysherpa widget
- Update property alerts form
- Update code (WPCS)
- Improve wording on the property alerts location selector
- Allow comma-separated emails for agent notifications
- Use the property agent email for 4Bids notifications
- Convert specific tour URLs to embedded iframes for Property CRM
- Add WordPress version to CLI
- Add event tracking (IO)
- Add Tiny Login & Registration module to WP Property Drive to allow for front-end account management
- Add fallback for no location selector for the property alerts module
- Add Property CRM (beta) importer
- Add property grid filters (uses FancySelect JS library)
- Add option to convert specific tour URLs to iframes (disabled by default, applies to Property CRM)
- Add helper files for a future Onboarding section
- Add new (WIP) Onboarding section
- Refactor the **Moneysherpa** module
- Change datetime format in the CLI utility
- Remove “True Metabox” plugin dependency and implement native block editor sidebar
- Remove “True Metabox” helper code
- Remove property alerts v1 migrator
- Remove extra paragraph from the privacy summary/details
- Remove `AggregateRating` Schema object for properties

### 3.9.5

- Fix issue with Acquaint’s “exclusive” flag hiding properties

### 3.9.4 (cumulative)

- 4Bids automation 3-step migration (add, process, and remove)
- Add WHMCS ID to Supernova SU CLI
- Add automatic updater (alpha)
- Add Post SMTP activation check
- Add message for no favourite properties
- Add Acquaint “exclusive” properties to property grid
- Add phone number and position to the property alert form
- Add migration routine to the alerts Dashboard page
- Restrict authors from accessing “property” and “page” post types in the admin area
- Update cleanup routine wording
- Update bid increment to 1000 (from 500)
- Merge the Property Doctor and the Tools tabs into System Tools
- Remove empty option for WP Property Drive Pro
- Remove unused settings tab

### 3.9.1

- Fix BER image height for property alerts
- Fix z-indexing issue with the Hittite property card design
- Fix z-indexing issue with property cards in the latest version of WordPress
- Fix slash being added to the wp-login.php link inside agent email
- Fix missing login URL from the front-end registration form
- Fix “has-tour” grid parameter to show only properties with an empty serialized array
- Fix issue with property creation date (Acquaint)
- Fix wrong link for WHMCS ID
- Implement ESLint checking for JavaScript files
- Implement a property removal endpoint for API key-based removals
- Add front-end registration for WordPress Multisite
- Add completed date if property is coming from Acquaint and is Sold
- Add an “optional” label to the property button in the buyer’s “My Account” section
- Add a list of all previous bids, authors and phone numbers to the agent’s bid notification
- Add property size to property cards
- Add more visibility into property creation vs modification date
- Improve design of document upload confirmation
- Improve column design when using Thin UI
- Combine user profile-specific saving function
- Tweak the 4Bids box on the “My Account” dashboard section
- Switch off 4Bids when property gets Sold or Sale Agreed
- Make the new user email notification message more clear
- Make phone numbers clickable in 4Bids notification emails
- Make block editor default editor for properties
- Format phone numbers for Irish market
- Change wording of per-property verification
- 4Bids automation migration
- Remove vendor from custom user role list
- Remove convoluted process of verifying bidders by using 2 parameters: user role and user verification
- Remove dataroom/solicitor functionality

### 3.9.0

- Fix new user email template to not use the deprecated wp_editor()
- Fix datatable styling for table headers
- Fix links to changelog and official WP Property Drive website
- Fix Feedcruncher and Epic importers mixed up feeds
- Fix issue with unescaped description in property schema
- Add new user email template configurator
- Add energy details on the Elegant property hero template
- Add new Invoices section for 4Bids properties
- Add coloured labels for “Under Offer” status
- Add a media manager option to the property CPT block editor
- Add country as a property grid parameter
- Add Panoroo as a 3D property tour provider
- Add option to show featured properties first, regardless of status
- Add a star Unicode icon to all featured properties in the property grid
- Implement new collapsible box UI for the back-end
- Implement multi-agent module (alpha)
- Implement Acquaint CRM importer
- Implement Epic CRM importer (alpha)
- Allow import of properties with no images
- Update Thin UI library (2.1.0)
- Update code (WPCS)
- Keep WordPress logo on the login page
- Only allow bidding applications once, then show a note
- Refactor document uploads to not use Media Library for temporarily storing document attachments
- Refactor agency details section and remove jQuery dependency
- Make the 4Bids email signature consistent
- Rename all “Reusable Block” instances with “Pattern” to match WordPress 6.3 strings
- Clean up the alerts module
- Clean up after turning off importer CRON timers
- Remove hardcoded Thin UI classes to prevent conflicts with the included Thin UI library
- Remove BNFW plugin recommendation
- Remove unused code
- Remove broken single Property Drive importer
- Remove translatable fields
- Remove/refactor property removal and manual property import buttons

### 3.8.9

- Fix property sold notice to only apply for sold properties
- Fix property alert email mobile view
- Fix (again) the unavailable property notice
- Fix 4Bids watcher behaviour and improve user experience
- Fix wrong string in property alert email template
- Implement property alerts V2
- Add a Privacy tab to the user’s Account section to clarify data collection
- Add 4Bids verification 2-in-1 (apply for property when uploading documents)
- Add country dropdown to Property Drive importer settings
- Allow subscriber (alert) emails to be replaced
- Allow agents to override notification emails for property offers
- Tweak the property alerts UI to better integrate with the current theme design
- Change the code element font size to match its parent
- Make sure attachments are being deleted, even after being removed from Media Library
- Clean up old 4Bids database structure
- Clean up old property alerts (V1)
- Update code (WPCS)

### 3.8.8

- Fix property cinematic hero (new version) on mobile devices
- Fix broken [Stackgrid](https://getbutterfly.com/stackgrid-a-light-vanilla-javascript-masonry-grid/) library on the search results page
- Fix land size for fields containing non-numerical characters
- Fix center alignment for BER in single property pages
- Add agency description field (optional)
- Add better contextual messages for XML2U import
- Add an option to display no availability for inactive properties (Sale Agreed, Sold, Let Agreed, Let)
- Add option to delete inactive users, older than 12 months
- Add option to manually set primary image
- **4Bids** Re-enable timezone reset due to server misconfiguration
- **4Bids** Fix issue with rejecting bids with the same amount as withdrawn ones
- **4Bids** Add email trigger for offer withdrawals
- **4Bids** Decode alert email subject in order to avoid ampersand encoding
- **4Bids** Merge 4Bids metabox into Property Details to avoid undefined IDs
- **4Bids** Remove the ability to delete offers using bulk actions or quick links
- **4Bids** Require a reason for withdrawing or cancelling offers
- Implement XML2U (single feed)
- Disable duplication check for properties
- Remove Action Scheduler on plugin cleanup action
- Remove unused details from the CLI file
- Remove the “loading” and “decoding” HTML parameters, as they interfere with legacy iOS

### 3.8.7

- **4Bids** Fix 4Bids badge z-index on the Hittite property card style
- Fix BER display on single property template
- Fix old [Thin UI](https://getbutterfly.com/thin-ui/) classes (replace with updated ones)
- Implement filtering properties by status
- Only load the [Stackgrid](https://getbutterfly.com/stackgrid-a-light-vanilla-javascript-masonry-grid/) library if the Stackgrid option is enabled
- Remove `console.log()` message
- Remove white background from the Black Sea card template
- Remove unused (commented out) CSS
- Remove unused styles
- Remove extra line break under the property BER

### 3.8.6

- Fix missing thumbnail image for the slide’s featured image
- Add new badge type – Plugin – to differentiate between **Core** and **External** functionality
- Add **WP Property Drive Agents** as an external plugin to the **WP Property Drive** Dashboard
- Add the **WP Property Drive Agents** plugin version to CLI
- Add links to [Supernova](https://4property.com/4sites/supernova/) and [Lighthouse](https://getbutterfly.com/wordpress-plugins/lighthouse/)
- Implement **Property Drive** for multiple keys (both ROI and overseas)
- Implement JSON caching for property types and areas using the native CRON (instead of Action Scheduler)
- Update [Thin UI](https://getbutterfly.com/thin-ui/) to latest version
- Optimize the main property grid query
- Improve plugin Dashboard UI and reorder the extension cards
- Tweak user card metabox
- Change BER element to Flex display, instead of float
- Remove the Action Scheduler library
- Remove developer email from importer notifications
- Remove unused User Contact Card option (`wppd_user_card_id`)
- Remove beta user/agent card functionality (moved to the Agents plugin)

### 3.8.5

- Fix an SEO crawlability warning by making floor plans local (not a link)
- Add property size to the new cinematic hero
- Add gaps between images in the property grid template
- Add agent cards functionality
- **4Bids** Fix Offer capability type to “post” so that all user types can be assigned
- **4Bids** Re-implement withdrawn offers functionality
- **4Bids** Change wording for the document upload notification email
- **4Bids** Allow orphaned offers to be labelled as such and re-assigned to another property
- **4Bids** Add cache breaking mechanism for property URLs in the “My Account” section
- **4Bids** Allow admins/agents to change the agreement status and the buyer notifications
- **4Bids** Fix hardcoded login URL in the document upload email for agents
- **4Bids** Enable buyer notifications when registering a new user
- Show property areas in WordPress Menu screen
- Clean up 4Leads landing page triggers
- Check if image error check function exists before running it in older browsers and/or bots
- Increase height of the image when using the Cyrangar style cards
- Make the author bio/description visible again
- Make sure `ui-admin.css` clears its cache with every plugin update
- Attach an “agent card” (page) to a user

### 3.8.4

- Fix cinematic hero not being stretched to 100vw

### 3.8.3

- Fix closing element for the regular property grid template

### 3.8.2 (cumulative)

- Fix uninitialized `wp_mail()` header array
- Fix issue with SEO code being added on all pages instead of properties only
- Fix remote server updater
- Fix undefined country variable for overseas properties
- Fix missing gap in the “Latest Properties” element on the property brochure page
- Fix stretched property floor
- Fix alert email template (add logo and property size and fix BER, baths & beds)
- Fix missing comma in array
- Fix undefined fields when price range is not visible in the search form
- Fix issue with YouTube regular expression for property tours
- Add Captur3d.io provider for virtual tours
- Add WP Super Cache detection to CLI
- Add new property grid template (Stackgrid)
- Add new property card template (Cyrangar)
- Add BER images
- Add new cinematic hero template
- Add BER to the cinematic template cover element
- Add missing contextual help for the search result page shortcode
- Add a Gravity Forms filter to hide license details for agency-managed websites
- Add assets URL to `init.js` to help with BER logos/images
- Add the BER logo to all property card types
- Add a default property grid value in case none is selected
- Add the full [Thin UI library](https://getbutterfly.com/thin-ui/) to the WordPress back-end
- Remove more Contact Form 7 event handlers
- Remove TGMPA plugin recommendations due to a conflict with PHP 8.1+
- Remove TGMPA class file
- Remove unused code
- Remove GitHub plugin URL
- Remove all references to Git Updater
- Remove MacOS artifacts
- **4Bids**Remove the Billing section and refactor the 4Bids billing details
- **4Bids**Add new 4Bids engine (powered by native CPTs)
- **4Bids**Fix 4Bids price being reset to 0 for first-time private treaties
- **4Bids**Fix checking for identical offer for specific properties (not all of them)
- **4Bids**Remove all references to the old 4Bids table
- **4Bids**Add searchable and sortable open offer properties on the 4Bids Dashboard page
- **4Bids**Remove timezone fix for the old 4Bids PHP API endpoint
- **4Bids**Add comments (docblocks) to 4Bids helper functions
- **4Bids**Consolidate all 4Bids “API calls” into one master file
- **4Bids**Switch bidders notification from JavaScript to PHP
- **4Bids**Add property title to the 4Bids confirmation modal
- **4Bids**Make sure the selected property comparison for 4Bids is strict
- **4Bids**Remove all bidder attachments as the verification process no requires sending documents via email
- **4Bids**Send all uploaded bidder documents via email and delete all sensitive documents immediately
- **4Bids**Replace “bid” with “offer” in several contexts
- **4Bids**Clean up all uploaded files from 4Bids author roles
- **4Bids**Fix conflict with Post SMTP and empty arrays in 4Bids
- **4Bids**Remove user attachments and attachment-based scoring system
- **4Bids**Remove YaySMTP from the list of recommended SMTP plugins
- **4Bids**Add new user label for “Is Notified” for new 4Bids offers
- **4Bids**Change property status from right to left to allow for the 4Bids status to be visible
- **4Bids**Add a success response to the JavaScript Fetch function
- Move cinematic property hero to WP Property Drive (from Supernova)
- Improve property alerts design and usability
- Only remove menu items if they exist or a plugin is supported
- Change wording to reflect document email sending instead of storing locally
- Refactor property card class selector
- Send sync details via CLI
- Hide bedrooms and bathrooms in the Cyrangar property card template
- Compress BER icons
- Combine size and area in the property attributes bar
- Update LightGallery JS
- Update alert email template design
- Update Flexbin gallery
- Update LightGalleryJS to latest version (2.7.0-beta to 2.7.1)
- Update codebase (WPCS)

### 3.8.1

- Fix text field not having a default type
- Fix property title – remove broken address concatenation
- Remove a redundant variable
- Remove XML-RPC restriction as this is handled by [Lighthouse](https://getbutterfly.com/wordpress-plugins/lighthouse/) (if available)
- Remove the `[property-tabstrip]` shortcode
- Remove old Contact Form 7 submission hook
- **4Bids**Add more items to the 4Bids setup checklist
- **4Bids**Automatically enable First Name, Last Name, Phone and Password on the registration form if 4Bids is enabled
- **4Bids**Create `wp-config-4bids.php` on 4Bids activation
- **4Bids**Add trial end to Supernova SU
- **4Bids**Create an API endpoint for 4Bids activation and trial end date
- **4Bids**Remove the Billing module completely as the WHMCS ID is the only thing required

### 3.8.0

- **4Bids** Add Phone Bids and Room Bids as custom admin roles
- **4Bids** Make phone number mandatory on the registration screen
- **4Bids** Add new “My Account” link using the `/4login/` URL
- **4Leads** Remove contact creation on new alert
- **4Leads** Add option to create a 4Leads contact on demand for property alerts
- Simplify recommended plugins (without TGMPA)
- Add Gravity Forms fix for Irish market (currency placement and license check)
- Change priority of removing menu items for custom post types
- Disable new user notification emails (basic WordPress ones)
- Remove recommended plugins from TGMPA
- Remove unused function
- Update codebase (WPCS)

### 3.7.8

- Fix incorrect marker inside the GDPR popup
- ****4Bids****Fix rare issue with MySQL 8+ where a NOT NULL variable will still require a default value
- ****4Bids****Fix DreamHost timezone
- Fix missing image array when generating a downsized featured image
- Fix filtering issue with related properties
- Fix MyHome sending garbled data in the feed
- Add header/navigation information to the CLI endpoint
- Add a container for property description, features, accommodation, floorplans and flexbin
- Add debug messages to the manual importer
- ****4Bids****Add new 4Bids parameter to the property grid
- ****4Bids****Notify users of bidding verification for all verification types (global, per property)
- ****4Bids****Allow admins to regenerate the 4Bids configuration file
- ****4Bids****Remove unused user email from 4Bids notification
- Remove cookieless YouTube domain as it causes console errors
- Delete unused post meta

### 3.7.7

- Fix “Let Agreed” label override
- Fix typo in option name
- **4Bids** Fix offer removal and withdrawal
- **4Bids** Change order of messages on document upload
- **4Bids** Add public offers option (per property)
- Add new property card template (Hittite)
- Add new property attributes bar
- Add new full width parameter to property grid
- Add class to CF9 form
- Add header type to the CLI endpoint
- Add property type and size to the single property elegant attributes block
- Strip tabs from property price to fix POA (Price on Application)
- Remove old post meta condition that would never be met
- Clean up old post meta
- UI improvements

### 3.7.6

- Add Light Gallery carousel and refactor the cinematic hero
- Add BER number to the property brochure page

### 3.7.5

- Add new overseas/NI property import option
- Open CRON importers in a new tab
- Rename “Open Viewings” to “Upcoming Viewings”
- Remove old importer functionality and corresponding UI

### 3.7.4 (cumulative)

- Fix property description parsing
- Fix property tours showing empty array items
- Fix property market for **Acquaint CRM** properties (via importer)
- Fix image saving for locked properties
- Fix source/office parameter for the property grid
- Add the **Action Scheduler** library
- Add caching for property types and areas (Portal feature)
- Add open viewings to the `[cf9]` form shortcode
- Add option to show acres as meters (for non-Irish websites)
- Add viewing details to `[cf9]`
- Add **Codacy** style specifications
- Add developer view to the property brochure page with feed details
- Add configurable height for mobile carousels
- Add property source and API key custom meta fields to each property
- Add **Acquaint CRM** importer to the CRON list
- Move hash/checksum check to **Portal** settings
- Use alternative wording for “Has Been Let” (optional)
- Change plugin version in the Setup section
- Change `date()` to `current_datetime()`
- Tidy up the **Acquaint CRM** integration panel
- Multi-agent feature: Allow property post type to be visible in the Dashboard
- Allow removal of old property viewings
- Remove autocomplete from the minimum bid to fix an isolated bug
- Remove unused function
- Update codebase (WPCS)

### 3.7.0

- Add QR code to posts, pages and properties
- **4Bids** Flag 4Bids properties in the user approval dropdown
- **4Bids** Show all “For Sale/Auction” properties in the user approval dropdown
- **4Bids** Restrict latest offers to verified bidders of each property
- Add Property Drive API key as importer parameter in order to initiate the process externally
- Add importer API endpoint for external CRON jobs
- Add new portal settings page
- Add property hash/checksum to improve the import process
- Add MyHome importer
- Add custom CRON job viewer
- Add Acquaint CRM importer
- Add extra property types and speed up non-paginated grids
- Add internal endpoint for externally triggered CRON jobs
- Remove unused code from the property importer
- Remove assigned single property from the Vendor user role
- Remove unused comment
- Remove deprecated Tours post meta and fix `wppd_pics` array in the property API
- Remove old CSS selectors
- Remove unused columns (temporarily)
- Delete `detail_images_array` property meta (string) in favour of `wppd_pics` array
- Make sure `wppd_pics` is always an array
- Improve initial Property Drive feed connection
- Improve property removal loop by checking for attachments before attempting to delete them
- Improve the property card function by not checking for Tours/Videos on every iteration
- Limit linked properties to 128 to improve single property query performance
- Clean up the property grid loop
- Clean up and refactor the search form to allow for faster processing of areas and locations
- Clean up admin pages
- Clean up API importer endpoint
- Various fixes for the Reapit XML importer
- Various fixes for the Daft importer
- Fix undeclared variable if no parameters are set
- Fix undeclared variable
- Fix null variable
- Replace deprecated `FILTER_SANITIZE_STRING` with `FILTER_UNSAFE_RAW`
- Sanitize more fields on import
- Update codebase (WPCS)

### 3.6.9 (cumulative)

- Remove `/docs/` from GitHub’s `gh-pages` branch and use the local [knowledge base](https://4property.com/training-documentation/)
- Remove brochure media styles (used for the blocks template)
- Remove the blocks property template (media tabs)
- Remove obsolete Markdown files
- Add primary image as a data parameter
- Filter featured image for properties to return the primary image
- Change order of sharing icons
- Add login URL plugin recommendation
- Add default login URL as `/4login/`
- Add Social Sharing Block plugin recommendation
- **4Bids** Update outbid email
- **4Bids** Add User-to-Contact converter
- **4Bids** Fix variable indentation
- **4Bids** Fix 4Bids meta box being displayed regardless of 4bids status
- **4Bids** Add a new `_bidding_invoiced` meta key to all properties to store 4Bids invoicing status

### 3.6.4

- Add asynchronous decoding to all Property Drive images
- Combine all activation/deactivation hooks for faster plugin activation
- Change search results for area (switch from meta query to taxonomy query)
- **4Bids** Implement 4Bids watching (better functionality, beta)
- **4Bids** Remove `H3` styling (use native)
- **4Bids** Move obsolete PlanetVerify settings to own tab
- **4Bids** Update codebase (WPCS)
- **4Bids** Remove bookmarks feature (watched properties)
- **4Bids** Remove global sale watching and replaced with per-user permissions
- Add simple agent details for the custom property brochure template
- Add custom styles for the custom property template

### 3.6.3

- Attempt to fix HTML entities being decoded by email clients
- Fix missing strings from `changelog.md`
- Remove custom welcome email feature
- Add “Better Notifications for WP” as a recommended plugin
- Add all meta boxes in one call in `includes/meta.php`
- **4Bids** Add pending 4Bids applications on the property back-end page
- **4Bids** Remove unused variables
- **4Bids** Hide WordPress’ native user role from the user editor screen
- Implement `date-from` parameter for the property grid

### 3.6.2

- **4Leads** Fix WordPress 6.0 overriding display type for blocks
- Fix Reapit schedule not showing properly in the options dropdown
- Add missing `date_created` and `date_modified` fields for Reapit (XML) importer
- Add empty `property_market` attribute to fix missing properties (alpha)
- Add Daft commercial property types based on `property_type_id`
- Capitalize property type and subtype (living type)
- Update changelog URL

### 3.6.1

- **4Bids** Fix font size for 4Bids offer box
- Fix z-index of collaborative map (property map)
- Fix undefined bid author in some rare occasions
- Enable **Contacts** module for property alerts as an experiment only
- **4Bids** Add smart options for 4Bids
- Add persona, market, IP address and source to contact meta
- Add alpha tabs for active experiments (Labs) and CRON jobs
- Update Leaflet to latest version (1.8.0)
- Update codebase (WPCS)

### 3.6.0

- Add custom list of property living types
- Remove broken emojis in WordPress 6.0
- Remove broken Reply-To header with comma-separated list of email addresses
- **4Bids** Remove unused 4Bids heartbeat action
- Update WordPress compatibility
- Update codebase (WPCS)

### 3.5.15

- Check if WP Property Drive is installed before checking it via `cli.php`
- Check for empty `DistrictName` before importing it
- Add configurable `date_modified` field for properties
- Add property type parameter to the simple property map shortcode
- Change recommended plugins to external, instead of pre-packaged
- Update simple property map leaflet popup style
- Remove LeafletJS source code files
- Remove hardcoded changelog
- Remove Parsedown library
- Update codebase (WPCS)

### 3.5.14

- Add option to show price for inactive (Sold, Let) properties
- Add new property brochure image gallery (Grid)
- Allow multiple email recipients for 4Bids notifications
- Updated WordPress compatibility
- Update codebase (WPCS)

### 3.5.13

- Fix undefined function (removed in a previous release)
- Fix old search form shortcode
- **4Bids** Fix public sale watching
- Add check for elements before adding class to prevent a JavaScript console error
- Add new property brochure grid gallery (Beta)
- Add multiple counties parameter (instead of only one) to the property grid shortcode
- Update codebase (WPCS)

### 3.5.12

- Fix PHP tag in HTML code
- Fix issue with string-to-array conversion in PHP 8.1
- Fix deprecated default function parameter in PHP 8.1
- Fix PHP notice for missing property market
- Fix counting an `INT` value
- Add SendGrid API key to the Help section/tab
- Add new Reapit XML integration and settings page
- Rename settings page to comply to WPCS
- Rename setup page to comply to WPCS
- Improve responsiveness of the classic property carousel
- Create a unique `wppd_setup_custom_schedules()` function for all importers
- Remove logging feature (incomplete)
- Remove unused logging function(s) and table(s)
- Remove properties from “At a Glance” section on Dashboard
- Remove duplicate CRON schedules for Daft and Rightmove
- Remove unused file(s)
- Update codebase (WPCS)

### 3.5.11

- Override WordPress 5.9 which breaks the Flickity slider (again, only for the slider)

### 3.5.10

- Override WordPress 5.9 `max-width: 100%;` which breaks the Flickity slider

### 3.5.9

- **4Bids** Add more checks to the 4Bids checklist
- Optimise images for size
- Remove email custom post type and replace with a simple counter
- Customise login details email
- Delete unused (or redundant) assets
- Delete tail.select.min.js.old
- Delete unused code

### 3.5.8

- Fix documentation typo
- **4Bids** Add extra details to the 4Bids setup checklist
- Add missing email trigger for user T&C agreement
- Remove automated Lighthouse footer link for new websites only
- Clean up old (commented out) code
- Update codebase (WPCS)
- Ignore object properties naming conventions from Property Drive feed

### 3.5.6

- Fix double property type for Reapit
- Add land size to **Land** properties
- Add plugin suggestions for welcome email editors
- Add kuula.co as a property tour provider
- Add new Contacts feature (alpha)
- **4Bids** Improve back-end UI
- **4Bids** Add brand colours to 4Bids badges and buttons
- **4Bids** Add T&Cs on registration
- **4Bids** Add missing Euro sign from offer confirmation
- **4Bids** Refactor verification screen (back-end)
- Update codebase (WPCS)
- Remove unused WPCS (Coding Standards) checks

### 3.5.5

- Fix properties with no coordinates
- Fix issue with location search when no location is present
- Fix permission issue for single sites (as opposed to multisites)
- Fix Supernova Slider for not parsing button styles (WordPress 5.9)
- Remove extra div from metabox
- Do not downsize legacy carousel images
- Add specific “Let Agreed” option to replace “Has Been Let”
- Add simple property map feature (use the `[[property-map-simple]]` shortcode)
- Add date_created to property editor
- Add WPCS ruleset
- Update codebase (WPCS)
- Add single location autocomplete search field
- Add minimum price parameter to property grid
- Add “order by price then by status” option to real-time search
- Add option to disable oEmbed parsing and avoid duplicate YouTube videos in property description
- Add energy details to property brochure page
- Add missing LeafletJS scripts
- Optimise single property template by removing unused variables and DB queries
- Improve `[[areas]]` shortcode to allow for more customization
- Restrict access to post/page publishing for authors (beta)
- Replace `gmdate()` with `date()` for timezone inclusion

### 3.5.4

- **4Bids** Fix properties not visible for author roles
- **4Bids** Add event log page (alpha)
- **4Bids** Add user notification message on **User Profile** page
- **4Bids** Create event log table on plugin activation and start logging various 4Bids events
- **4Bids** Better handle (catch) bidder notification errors (to be used with Sentry)
- Add BER rating field to the Rightmove importer
- Update Rightmove upload path to the new location
- Tweak the moneysherpa UI and allow placement outside property template

### 3.5.3

- Remove duplicate variable assignment
- Add changelog section to plugin’s Settings screen
- Clean up Integrations tab

### 3.5.2 (cumulative)

- **4Bids** Add additional 4Bids shortcodes for upcoming and completed auctions
- Fix performance issues with the search form
- Fix undefined query variable
- Fix duplicate meta description on taxonomy pages
- Add CRON debug for Rightmove
- Add county and area as separate custom post meta for Rightmove
- Add `Beds` and `MaxPrice` parameters to the `[[cf8]]` and `[[cf9]]` shortcodes for better Acquaint integration
- Remove useless file (save one file request)

### 3.5.0

- **GDPR** Change GDPR popup button justification to left
- **GDPR** Change GDPR cookie to sitewide
- **GDPR** Update GDPR notice UI
- **GDPR** Tweak GDPR popup to not cover the entire screen
- **4Bids** Only show 4Bids charge notice if Billing is enabled
- **4Bids** Add further checks (Billing module and WHMCS ID) to 4Bids checklist
- Fix property map (alpha)
- Fix issue for non-Supernova websites
- Fix missing table row
- Move “My Settings” user tab to last position and rename it to “Settings”
- Add block sidebar (ES5, pre-alpha)
- Add searchable locations to `tail.select()`
- Add workaround for the block-based property template with non-Supernova websites
- Add moneysherpa module (beta)
- Add color contrast check for the moneysherpa widget
- Add Lighthouse as a recommended helper plugin
- Add property status class to the `<article>` element on the single property template
- Clarify option check
- Remove duplicate admin tab section
- WordPress compatibility update
- Update tail.select to latest version (`0.5.22`)
- Downsize Digital Ocean-served images for property thumbnails

### 3.4.23 (cumulative)

- Move “My Settings” user tab to last position and rename it to “Settings”
- Add CLI file with version number and 4Bids module status

### 3.4.15

- Fix issue with uninitialized function

### 3.4.14

- Add hardcoded Slack notification for 4Bids properties

### 3.4.13

- Change “bid” wording to “offer” to better reflect user actions

### 3.4.11

- Move linked property to user **Profile** section

### 3.4.10

- **Security** Redirect author, bidder and solicitor roles to a custom back-end page
- **Security** Only show linked property for admins
- **Security** Only show 4Bids settings for admins
- **Security** Only show dataroom settings for admins
- **Security** Only show warning(s) for admins
- **Security** Remove Yoast SEO for non-admins for posts, pages and properties
- **Security** Style all yes/no Dashicons uniformly throughout CORE and PRO
- **Security** Remove unused content from docs
- **Security** Update changelogs for WP Property Drive and Supernova (retroactively)

### 3.4.9

- Clean up WordPress Dashboard for non-admin users
- Finalize Rightmove importer (change from Alpha to Beta)

### 3.4.8

- Add Dataroom alpha module
- Add more options to Integrations & Modules
- Add email class to sidebar (template parts)
- Add email class to sidebar
- Rightmove feed updates
- Initialise new Yoast canonical option
- Move Yoast hooks and filters to a separate file

### 3.4.7

- **4Bids** Only restrict access when 4Bids is enabled (not every time)

### 3.4.6

- Add Rightmove importer (alpha)
- Delete unused test files
- **4Bids** Enable restricted access for 4Bids-enabled sites

### 3.4.5 (cumulative)

- Only update attachments for Property Drive properties (not manual, not custom, not Daft, not Rightmove)
- Fix issue with wrong linked property date (reported by Phil Thompson)
- Double-check property alerts database schema
- Add `rel=0` at the end of YouTube embed links and use the `nocookie` domain for all YouTube videos
- Add column count to the property carousel parameter
- Add property carousel
- Add CRON debugger
- Add new Billing section in WP Property Drive settings
- **4Bids** Add 4Bids -> WHMCS billing
- Simplify property alert email sending process
- Show property ID after description (optional)
- Update WordPress compatibility
- Refactor (test) some settings UI

### 3.4.4 (cumulative)

- Implement custom single property template
- Add initial files for Rightmove support
- **4Bids** Add approved properties to Users table
- **4Bids** Add bid ID to 4Bids API response
- **4Bids** Allow agents to delete bids
- Allow changing number of properties per page for the real-time search
- Remove ActiveCampaign from all Akismet calls
- Remove required position field from CF9 form
- Initialize several orphan options
- Move some of Supernova property-related styles to WP Property Drive plugin
- Change creation date to modification date for the real-time search
- Tweak classic carousel margins
- Fix issue with image/tour icons being overlapped

### 3.3.5 (cumulative)

- **4Leads** Add initial persona blocks CSS
- **4Leads** Add 4Leads weekly report
- **4Leads** Properly include 4Leads analytics
- **4Leads** Move `vanilla-datatables` dependency to local
- **4Leads** Change HTML structure to allow modal email popups
- **4Leads** Tweak 4Leads email table to behave more like a CRM
- **4Bids** Add phone to user registration
- **4Bids** Change the 4Bids agreement checkbox to read-only in the back-end
- **4Bids** Combine General 4Bids Settings and Legal Settings
- **4Bids** Refactor document uploads
- **4Bids** 4Bids UI/UX updates
- **4Bids** Add 4Bids Core Alpha
- **4Bids** Introduce 4Bids Core (Local) API
- **4Bids** Remove bid CPT and replace with custom table
- **4Bids** Fix undefined index for auctions
- **4Bids** Add `Reply-To` headers for all bidder emails
- Fix and speed up latest properties shortcode
- Fix rare issue with single property template not being loaded
- Fix Google reCAPTCHA duplication when Contact Form 7 is installed
- Fix search issue with metas and taxonomies
- Fix issue with property type array
- Fix issue with breaking out of current iteration instead of entire loop
- Fix property alerts database not being available on activation
- Fix accordion code
- Fix missing HTML tag
- Fix issue assigning reusable blocks to areas
- Fix issue with new developments conflict with `ignore` parameter
- Fix wrong label and fix saving primary image (back-end)
- Fix property attributes (single property template) on small resolutions
- Fix shortcode builder `replaceAll()`
- Fix issue with `author` parameter being filtered out
- Fix empty living type being overriden on property edit/save
- Fix for auction groups (both status and selling type)
- Change block_categories to block_categories_all for block filters
- Back-end UI/UX improvements
- Exclude password-protected properties from search
- Exclude password-protected properties from search results
- Exclude password-protected properties from property grid
- Make position mandatory in `[cf8]` and `[cf9]`
- Move legacy Agent CPT from Supernova into WP Property Drive and then into a custom functionality plugin
- **Performance** Add lazy loading to slider videos (`mp4` only)
- **Performance** Update `ui.css` and load the minified one for production sites
- **Performance** Implement lazy loading for the Flickity slider
- Refactor Yelp Nearby and Foursquare Amenities modules
- Update Git Updater requirements
- Update search results property order
- Update TGMPA class for PHP 8+
- Add PRO version (alpha)
- Add property sharing shortcode
- Add office ID, name and address to properties on import
- Add shortcode builder feature (alpha)
- Add experimental block editor support or properties
- Add custom property tour
- Add custom property type workaround based on custom tag
- Add basic GDPR consent form (jQuery-dependent, subject to modification)
- Add Offr integration
- Implement plugin auto update
- Remove empty Property Alert CRON job
- Remove draft properties count
- Remove an extra line break
- Remove duplicate variable declaration
- Merge several Property Grid self-excluding parameters and remove an unused variable
- Do not show property attributes (size, BER) if they are empty
- Do not append Eircode number by default (make optional)

### 3.2.4

- **4Bids:** Facebook Live video (alpha)
- **4Bids:** Start modularizing code (FP)
- Fix line breaks on import (beta)
- Fix wrong type for textareas
- Fix broken slide icon if Font Awesome is not loaded in the Dashboard
- Add more in-plugin documentation for APIs, hooks and filters

### 3.2.3

- Fix issue with property import being skipped (`continue` instead of `return`)

### 3.2.2

- **4Bids** Refactor guide/reserve/minimum price
- Standardise property size retrieval
- Add option to control full property size display (square meters + square feet) vs condensed display (square meters only, default)

### 3.2.1.2

- **4Leads** Move 4Leads to the Integrations section (instead of config constant)
- **4Bids** Add 4Bids config file creation (subject to Nginx/Apache permissions)
- Add local brochures to properties
- Add tours/videos to Flickity carousel
- Refactor property tours/videos into a separate function
- Add overrides for featured properties and (unlimited) property tours
- Refactor Property Drive image import

### 3.2.1.1

- Improve video/tour mobile responsiveness in Flickity carousel
- Allow admin to unsubscribe property alert subscribers
- Add importer ID to property alerts table and convert to utf8mb4
- Add EyeSpy360 as tour provider
- Add option to toggle the custom og:image fetching on or off
- Update Flickity to 2.2.2

### 3.2

- **4Leads** Recreate database structure in analytics.designbricks.ie
- **4Leads** Push parallel data to analytics.designbricks.ie
- **4Leads** Create/migrate endpoint to read data
- **4Leads** Remove local leads database
- Remove property views and use the **4Leads** database
- Add in-plugin documentation for reusable blocks and shortcodes
- Refactor property alerts to use VanillaJS

### 3.0.2

- Move CF8 to `helpers.php`
- Refactor CF8 to use ES6
- Move property alerts to core plugin

### 3.0.1

- Re-add a custom quick contact form built using Google reCAPTCHA v3

### 3.0

- Implement Contact Form 7 as a plugin dependency for quick enquiries and contact form
- Remove unused sharing to friend feature
- Add a price range for new developments
- Add a unit size range for new developments
- Remove property sidebar widgets and promote reusable blocks
- Remove/consolidate duplicate property sidebar shortcodes
- Remove own GitHub updater code (PDUpdater)
- **4Leads:** Remove external `sa.js`
- **4Leads:** Implement a configurable daily/weekly CRON job for properties
- **4Leads:** Add 4Leads requirements (basic)
- **4Leads:** Add scheduled events

### 2.11

- Bug fixes

### 2.10

- Deprecate integrated updater and use @afragen GitHub Updater
- Refactor external featured image (for property CPT social sharing and Google SERP featured image)
- Remove AJAX modal for the Map Navigator feature (too tricky to style, manage and maintain and also not good for SEO)
- Add documentation/requirements for the new GitHub Updater
- Add consistent shortcodes for the property sidebar reusable block
- Add new “For Auction” status ribbon and colour
- Fix issue with maximum price option being set, even if disabled
- **4Bids:** Add guide price and allow bid decrease
- **4Bids:** Allow custom bids (back-end)
