Description
BonPlaya – Nearby Beaches lists beaches around a location you choose: widget, shortcode, Gutenberg block, and beach detail pages.
- Set an origin on a map (OpenStreetMap)
- Load beaches from OpenStreetMap, with optional Wikimedia Commons photos
- Optional links to reviews on BonPlaya.com (full, subtle, or none)
The plugin source is licensed under GPL-3.0-only. The BonPlaya name and logo are not licensed; forks must rebrand. See LICENSE and NOTICE.
This plugin does not track visitors and does not insert hidden links.
External Services
The public site does not call these services from the visitor’s browser. Requests are made by your WordPress server, except MyMemory on first view when a translation is missing from the local cache.
OpenStreetMap / Overpass
- What: Nearby
natural=beachobjects, plus (admin only) geocoding and map tiles. - Why: To find beaches around the origin you set, and to pick that origin on the settings map.
- When: Overpass runs on admin refresh and on the scheduled sync — not on public pageviews. Nominatim geocoding runs only when an administrator searches the settings map. Bundled Leaflet and OSM tiles load only on the BonPlaya settings screen.
- Sent: Origin latitude/longitude and radius (Overpass query); search text (Nominatim); site URL in the User-Agent. No visitor personal data.
- Links: OpenStreetMap copyright, Overpass API, Overpass Kumi, Nominatim usage policy, OSM privacy
Wikidata
- What: Beach descriptions and Wikimedia Commons file claims (P18) for OSM objects that have a Wikidata id.
- Why: Short summaries and photo filenames for the local cache.
- When: During photo enrich after a successful sync, or when an administrator clicks the photos button. Not on public pageviews.
- Sent: Wikidata entity ids. Site URL in the User-Agent.
- Links: Wikidata licensing, Wikimedia privacy policy
Wikimedia Commons
- What: Image metadata and a download of the photo file into the WordPress media library (resized locally). Public pages never hotlink Commons.
- Why: Beach photos on your site without third-party image URLs in the frontend.
- When: During photo enrich after sync or via the admin photos button. Not on public pageviews.
- Sent: Commons file titles. Site URL in the User-Agent.
- Links: Reusing Commons content, Wikimedia privacy policy
MyMemory
- What: Machine translation of cached English beach summaries into the site language (allowlist: nl, es, de, fr, it, pt).
- Why: Show summaries in the visitor’s language when a translation is not already stored.
- When: Cache-first. On first view of a beach list or beach page, if the locale is in the allowlist and no translation exists yet, the server calls MyMemory once (with a short lock). Later views use the local table. Not used for plugin UI strings.
- Sent: The English summary text (
q), language pair, optional contact email from settings (de, never hardcoded), and site URL in the User-Agent. - Links: MyMemory terms of service (includes privacy)
BonPlaya sitemap
- What: Read-only fetch of
https://bonplaya.com/sitemap.xml(and nested sitemap files) to get public beach page URLs. - Why: Optional “reviews” links in Full integration. Subtle mode only links the homepage in the footer; None links nothing.
- When: After a successful beach sync, if the stored URL list is older than the cache TTL. Not on public pageviews. No BonPlaya API and no visitor data.
- Sent: HTTP GET of the sitemap URL. Site URL in the User-Agent.
- Links: Plugin info, Terms, Privacy, sitemap
Privacy
This plugin does not track visitors, does not set analytics or advertising cookies, and does not inject hidden affiliate or tracking links. Visitor browsers do not call OpenStreetMap, Wikidata, Wikimedia Commons, MyMemory, or BonPlaya. Visible BonPlaya.com links appear only if you set integration to Full or Subtle.
BonPlaya site privacy: https://bonplaya.com/en/info/privacy
BonPlaya terms: https://bonplaya.com/en/info/terms
Screenshots



Blocks
This plugin provides 1 block.
- Nearby beaches
Installation
- Upload the plugin zip via Plugins Add New Upload Plugin, or copy the
bonplaya-nearby-beachesfolder into/wp-content/plugins/. - Activate BonPlaya – Nearby Beaches.
- Open BonPlaya in the admin menu. Set latitude and longitude (or search on the map) and a radius.
- Save, then use the refresh button to sync nearby beaches (or wait for the scheduled sync).
- Add beaches to a page with the Nearby beaches block, the widget, or
[bonplaya_beaches].
FAQ
-
How do I show beaches on a page?
-
Use the Nearby beaches Gutenberg block, Appearance Widgets, or a shortcode:
[bonplaya_beaches] [bonplaya_beaches format="minimal" limit="5"] format is `card` (default) or `minimal`. `limit` is 1–30. `source="post"` shows beaches named in that post (the editor scan). -
May I copy this plugin and keep the BonPlaya name?
-
No. The code is GPL-3.0-only; the BonPlaya name and branding are trademarks. A fork must use a different name and identity. See NOTICE.
-
Does this send visitor data to BonPlaya?
-
No. Beach data is fetched server-side. Public pages do not call BonPlaya APIs. Integration mode only controls whether public HTML links to BonPlaya.com.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“BonPlaya – Nearby Beaches” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “BonPlaya – Nearby Beaches” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.1.1
- Settings: progress for Refresh now and Refresh photos; notices stay on the update card.
- Photo import no longer re-queues beaches that have no Commons file.
- Overpass: retry and a second public instance when the first times out.
- Distance text: “from our location”.
- Directory icon, banner, and screenshots.
0.1.0
- First public license: GPL-3.0-only and trademark notice.
- WordPress.org readme: External Services and Privacy.
