설명
Property listings, search and enquiries for an estate or letting agency. The
fields on a property follow the market you set: a UK agency gets tenure and
council tax band, a Spanish agency community fees and the cadastral reference,
an American agency HOA fees and an MLS number.
Everything described below is in this plugin and works without paying anybody.
What it does
- Listings. Unlimited properties, for sale, to rent or short let, with
photographs, floorplans, key selling points and every field a portal asks for. - Search. Filters that run against a flat index, so ten filters is still one
query. Distance from a point, or an area the visitor draws on the map. - Maps. Self-hosted. No third-party script and no API key. An owner who does
not want the exact position published gets a shaded circle, and the search
still works correctly. - Enquiries and clients. One record per person, however they arrived.
- Shortlists. A visitor saves the properties they like and comes back to
them, with or without registering. - Area guides, written by hand.
- CSV import and export, both ways, with a mapping screen.
- Structured data for search engines, on every property.
- Privacy tools: the export and erase requests WordPress asks plugins to
answer, covering the records this plugin keeps. - Your own website: pages, menus, a front page and a staff list, so an
agency can put a site together without a page builder.
What it does not include
No login lockout, no firewall, no malware scanner, no SEO fields, no caching,
no contact-form builder. Those belong at the edge or in one plugin that does
them properly.
A paid add-on exists
TerraSuite Pro is a separate plugin sold from terrasuite.uk. It adds the
viewings calendar and bookings, the message centre, QR codes, branded
particulars, portal feed importers and de-duplication, partner agencies and
fee splits, applicant matching and alerts, Elasticsearch and the AI features.
It also adds the knowledgebase, with sixty-three articles written for clients
and for staff.
Third-party libraries
Two libraries ship with the plugin, both unmodified release artefacts under
GPL-compatible licences:
- Leaflet 1.9.4, BSD-2-Clause, https://github.com/Leaflet/Leaflet/releases/tag/v1.9.4
- Leaflet.draw 1.0.4, MIT, https://github.com/Leaflet/Leaflet.draw/releases/tag/v1.0.4
Both are minified as published by their own projects. The non-compiled source is
at the tags above, and public/vendor/README.md records how to replace either one.
External services
The plugin contacts nothing at all unless you switch something on, and nothing
is contacted on activation or on a schedule.
Geocoding (off by default). When you enable it, the address of a property
you save is sent to the geocoding service you nominate so it can be placed on
a map. The default is Nominatim, run by the OpenStreetMap Foundation: one
request per second, and every answer cached for a year.
Service: https://nominatim.openstreetmap.org
Terms: https://operations.osmfoundation.org/policies/nominatim/
Privacy: https://wiki.osmfoundation.org/wiki/Privacy_Policy
Map tiles. On a page where you place a map, the visitor’s browser fetches
map images directly from the tile service set in Property > Settings > Maps,
which defaults to tile.openstreetmap.org. The request comes from the visitor’s
browser and carries their IP address and the area of the map being viewed.
Service: https://www.openstreetmap.org
Copyright: https://www.openstreetmap.org/copyright
Privacy: https://wiki.osmfoundation.org/wiki/Privacy_Policy
Area guides and photographs (Property > Get Content). Only when you open
that screen and press a button to download a region pack. The screen lists
what is sent before you press anything: the address of your site, and an email
address only if you choose to type one in. The packs are images and text, never
code, and they are served by us.
Service: https://terrasuite.uk/bundles/
Terms: https://terrasuite.uk/terms-of-use/
Privacy: https://terrasuite.uk/privacy-policy/
Google Places (off by default). If you choose to show Google reviews and
enter your own Google API key, the place identifier you set is sent to
places.googleapis.com to fetch the review text and rating shown on your site.
Service: https://developers.google.com/maps/documentation/places/web-service
Terms: https://cloud.google.com/maps-platform/terms
Privacy: https://policies.google.com/privacy
YouTube (only if you paste a YouTube address on a property). The video is
embedded from www.youtube-nocookie.com, the no-cookie player, and the
thumbnail comes from i.ytimg.com. Both are fetched by the visitor’s browser
when they open that property, and carry their IP address. A link to the video
on www.youtube.com is shown beside the player.
Terms: https://www.youtube.com/t/terms
Privacy: https://policies.google.com/privacy
Vimeo (only if you paste a Vimeo address on a property). The video is
embedded from player.vimeo.com and a link to vimeo.com is shown beside it.
Fetched by the visitor’s browser when they open that property, carrying their
IP address.
Terms: https://vimeo.com/terms
Privacy: https://vimeo.com/privacy
WhatsApp (only if a staff member has a WhatsApp number set). No request is
made: the number becomes an ordinary https://wa.me/ link, which opens WhatsApp
if the visitor clicks it.
Terms: https://www.whatsapp.com/legal/terms-of-service
Privacy: https://www.whatsapp.com/legal/privacy-policy
The plugin is published by Havenswift Hosting
https://www.havenswift-hosting.co.uk/
There is no usage tracking of any kind.
스크린샷







설치
- Upload the folder to
/wp-content/plugins/and activate it. - Property > Settings > General: your country, currency and units.
- Property > Your Agency: fill in your own record.
- Add one property by hand and look at it on the website, before setting up any import.
Property > Tools will create demonstration data so you can try everything, and remove it again in one step.
FAQ
-
Does it expire, or stop working?
-
No. There is no trial, no licence check and no feature in this plugin that
waits for a payment. What is in the description is what it does, permanently. -
Does it need an API key for maps?
-
No. The map library is served from the plugin. The tile URL is a setting; read
the terms of whichever tile service you point it at. -
Will it slow my site down?
-
The search runs against a purpose-built index table rather than through post
meta, which is why a ten-filter search is a single query. On a reference
installation that search took half a millisecond. -
Does it send anything anywhere?
-
Not unless you switch something on, or paste in a video. See “External
services” below for everything that can reach an outside server, what each one
sends, and when.
후기
기여자 & 개발자
“TerraSuite – Estate Agency Software, Property Listings and Map Search”(은)는 오픈 소스 소프트웨어입니다. 다음의 사람들이 이 플러그인에 기여하였습니다.
기여자변경이력
1.1.1
- A property’s UPRN is now shown on its page. The field was added in 1.1.0 and
collected on every property, but no template printed it, so nobody outside
the editing screen ever saw one. It now sits with the other identifiers,
beside the reference and the MLS number, rather than among the disclosures. - Each country is now only asked for its own paperwork. The seven Spanish
rental disclosure fields, and the IBI and refuse charge, were being offered
on properties in Portugal, Italy and France, which have no reference rent
index, no gran tenedor and no IBI. The five British fields – UPRN, council
tax band, coalfield and the two EPC ratings – were being offered in Ireland,
which uses neither council tax nor an EPC. The fields each country does need
are unchanged. - Getting Started now covers every screen in the plugin. Two were missing, both
of them Featured email: the screen itself and its settings tab. The guide is
also checked the other way round, so a step can no longer claim it covers a
screen that does not exist – one step did, and read as coverage. - The SSH host key help on the import screen is one sentence shorter and says
what to type. Spanish is complete, at 2,493 of 2,493 strings.
1.1.0
- Spanish rental adverts now carry what the law requires. Real Decreto-ley
29/2026 came into force on 8 October 2026 and names what every rental offer
must publish: the reference rent index where the home is in a declared
rent-controlled zone, the applicable rent limit together with the rules that
set it, the unit’s registration code where it has one, and whether the
landlord is a gran tenedor. Seven new fields hold all of it. The
rent-controlled designation is made by town, not by property, so it is
answered once on the Location term and every property in that town inherits
it, with an override for a municipality declared only in part. There is no
switch to turn the fields on: each one publishes as soon as it holds a value,
and a notice above the title names anything still missing where the zone says
it is required. - A feed from another agency is now recognised as another agency’s stock. If
you import a partner’s feed, the properties used to be recorded as your own
instructions. The listing address inside the feed says whose they really are,
so they are now marked as shared and attributed, with nothing to set up and
no question to answer. - Sixty fields that no import or export could reach are now carried by both.
Eleven of these were fixed on 11 October; the rest were found by listing
every field the plugin registers and comparing it against what the import
mapping screen and the CSV export actually offer, which is now checked
automatically so it cannot drift again. - UK properties have a UPRN field. The local authority gives every addressable
property in Great Britain a UPRN, it stays with the building through a
renumbering or a conversion into flats, it is printed on every EPC, and Land
Registry has published it alongside Price Paid Data since August 2026. You
type it off the certificate; there is no lookup, because the address-to-UPRN
mapping is licensed. - The Spanish translation now travels with the plugin. It used to be installed
separately on each site, which meant no update ever carried it and the
deployed copy was three weeks behind the plugin, so new screens appeared in
English on a Spanish site. The catalogue is built into the plugin and is
rebuilt as part of every release. - Getting Started is the first item in the TerraSuite menu. It was two thirds
of the way down, below Settings, which is a poor place for the screen written
for your first morning. - Content packs now download. The area guides and photographs are fetched from
our own website, and our firewall was blocking that request for every
installation since launch; the plugin reported it as “forbidden”. The fix is
on our side and this version needs no change for it, but this is the first
release since it was put right. - The import screen now reads the file you uploaded. Instead of forty empty
boxes asking you to type your own column names from memory, each field
offers a list of the columns your file really contains, with a match already
chosen where one is obvious, and three rows of that column shown beside it
so you can see what you are about to import. Columns nothing is reading are
named underneath. - Eleven more fields can be mapped on an import and are carried by the CSV
export: your own reference, year built, furnished, parking, garden, tenure,
council tax band, community fees, IBI, and the two energy values in kWh and
kg CO2. The import has always been able to write them; nothing could ever
send them, because the mapping screen offers only the fields listed here. - The CSV export no longer carries four columns that could never hold
anything, and now fills three that were always blank: the first address
line, the source’s last-modified date and the source listing URL. - A property’s own reference now survives an export and re-import. The
reference column used to be overwritten with a WordPress post id, which
means nothing on another site, so an agency’s quotable references were lost
in a move.
1.0.3
- A column in an imported CSV reading “No”, “false” or “off” is now stored as
no. It was stored as YES, because the test asked whether the cell was empty
and those words are not. An agency importing its own stock got a swimming
pool and a garden on every property. “0” worked only by accident. - An empty price, bedroom or area column in an imported CSV now leaves the
field empty instead of setting it to zero, so a property with no price is no
longer published at nothing. - The “defaults for missing values” on the import screen – currency, country
and department – now apply to a CSV source. They were read by the XML and
JSON importers and ignored by the CSV one, while the screen warned that a
feed with no currency turns 300,000 euros into 300,000 pounds. - The directory listing is now titled “TerraSuite – Estate Agency Software,
Property Listings and Map Search” rather than “TerraSuite”. Nothing about the
plugin changes: the slug, the brand and the name WordPress shows on your
Plugins screen are all the same. WordPress.org weights the listing title
heavily when it ranks a search, and every plugin above us for “real estate
plugin” and “property listings” carries those words in its name. - An agency can now say which departments it runs. A sales-only agency switches
lettings off and the other way round, and whatever is unticked stops
appearing on the search form, the property editor, the import mapper and the
registration form. A department cannot be switched off while properties are
recorded against it, and the message says how many.
1.0.2
- The property, article, area guide, team, review and service post types, and
the eight taxonomies with them, are now prefixed terrasuite_ rather than ts_.
Existing records are carried across on upgrade; no address changes. - The printed particulars sheet loads its stylesheet the WordPress way instead
of printing it into the page. - Every value a form sends is sanitised where it is read: prices and sizes, the
areas drawn on the map, the term lists, client notes, import separators and
stored credentials. - The valuation estimate is escaped where it is output rather than where it is
built, because a filter can change it in between. - The knowledgebase is no longer part of the free plugin. Writing and publishing
articles is a TerraSuite Pro feature; nothing already written is removed. - Search results no longer repeat a property across two pages when several share
the same price or date. - Spanish, and any other translation, is read from wp-content/languages/plugins
as WordPress.org supplies it.
1.0.1
- Drawing an area on the map, and shortlists, are now part of the free plugin.
- The shortlist has its page back. Properties could be saved with the heart
but there was nowhere to see the list again. - Help articles can be written and published here. The screen for them was
missing, which left the /help page with no way to put anything on it. - QR codes, and the ready-written articles, moved to TerraSuite Pro.
- No page is created for a feature that is not installed.
- Opening Get Content no longer contacts us. The list of regions is fetched
when you ask for it, which is what that screen always said. - Stored passwords, and the tokens in feed addresses, use a key belonging to
this plugin. They were derived from the WordPress authentication salts, so
rotating those after a security incident destroyed them with no warning. - Feed passwords are stored with AES-256-CBC rather than a reversible scramble.
- A downloaded content pack is refused if it contains anything runnable.
- Every external service the plugin can reach is now listed above.
1.0.0
- First release.
