No description
  • PHP 75.3%
  • JavaScript 14.2%
  • CSS 6.4%
  • Shell 4.1%
Find a file
2026-06-16 08:50:29 -07:00
admin/views Release v0.3.48 2026-06-15 14:39:49 -07:00
includes Release v0.3.49 2026-06-16 08:39:03 -07:00
public Release v0.3.49 2026-06-16 08:39:03 -07:00
scripts Release 0.3.29 security audit checks 2026-05-19 09:39:57 -07:00
.gitignore Release 0.3.28 release QA tooling 2026-05-19 09:29:28 -07:00
AGENTS.md Release v0.3.50 2026-06-16 08:50:29 -07:00
CHANGELOG.md Release v0.3.50 2026-06-16 08:50:29 -07:00
composer.json Release 0.3.28 release QA tooling 2026-05-19 09:29:28 -07:00
composer.lock Release 0.3.28 release QA tooling 2026-05-19 09:29:28 -07:00
oregon-farmers-market-locator.php Release v0.3.50 2026-06-16 08:50:29 -07:00
phpcs.xml.dist Release 0.3.28 release QA tooling 2026-05-19 09:29:28 -07:00
readme.txt Release v0.3.50 2026-06-16 08:50:29 -07:00
RELEASE-NOTES.md Release v0.3.50 2026-06-16 08:50:29 -07:00
uninstall.php Release 0.3.40 delivery rename 2026-05-28 12:01:45 -07:00
wpml-config.xml Add WPML Spanish market tools 2026-05-28 15:46:49 -07:00

=== Oregon Farmers Market Locator ===
Contributors: yourname
Tags: farmers markets, maps, leaflet, wpml, csv import, oregon
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 0.3.50
License: GPLv2 or later

A WPML-ready Oregon farmers market locator with advanced frontend search filters, Leaflet maps, marker clustering, radius filtering, distance sorting, reusable CSV import profiles, dry runs, validation, import logs, and rollback support.

Production target: WordPress 7.0 with PHP 8.3. The plugin keeps its PHP 7.4 minimum for backward compatibility unless project requirements change.

== Installation ==
1. Upload the plugin ZIP through Plugins > Add New > Upload Plugin.
2. Activate the plugin.
3. Go to Farmers Markets > Settings and review map settings.
4. Add markets manually or use Farmers Markets > CSV Import.
5. Add [oregon_farmers_market_locator] to a page.
6. Use Farmers Markets > Shortcode Builder to generate English and Spanish map shortcodes.

== Shortcode Options ==
[oregon_farmers_market_locator]
[oregon_farmers_market_locator lang="es"]
[oregon_farmers_market_locator hide_filters="payment,vendor" compact="yes"]
[oregon_farmers_market_locator filters="search,day,delivery,regions" theme="minimal"]
[oregon_farmers_market_locator lat="44.0521" lng="-123.0868" zoom="11" fit_bounds="no"]

Supported filter keys are search, day, delivery, vendor, payment, radius, location, reset, and regions.

Style override values include theme="oregon_fresh|clean_light|minimal|classic", marker_style="vendor_type_pins|region_pins|fresh_pins|leaflet_default", popup_style="detailed|compact", and map_style_preset="openstreetmap|carto_positron|carto_voyager|carto_dark".
Use lang="es" or another active WPML language code to render the map data for a specific language.

== CSV Headers ==
market_name,external_id,address,city,zip,lat,lng,days_open,hours,season_start,season_end,website,phone,email,region,delivery,vendor_types,payment_types,season,description,offers_csa,csa_signup_url,csa_pickup_location,csa_pickup_days,csa_share_types,csa_price_range,csa_accepts_snap,csa_delivery,csa_waitlist

== Import Features ==
The importer supports upload preview, field mapping, reusable import profiles, dry-run mode, create/update/replace modes, duplicate checks, row validation, skip-invalid-row behavior, downloadable logs, import history, rollback for created/updated records, and a geocoding extension hook for missing coordinates.

== WPML ==
The plugin includes wpml-config.xml to make markets, taxonomies, and relevant custom fields translatable or copied as appropriate.
When WPML is active with Spanish enabled, Farmers Markets > WPML Tools can create missing draft Spanish market entries from English markets for manual translation. Market CSV exports include WPML language columns so Spanish rows can be identified.
Farmers Markets > Shortcode Builder can generate language-specific map shortcodes, including Spanish map shortcodes using lang="es".


== Changelog ==

= 0.3.50 =
* Documented WordPress 7.0 and PHP 8.3 as the active production target.
* Updated plugin compatibility metadata and operator guidance for the current live environment.
* Added a Forgejo wiki documentation set covering setup, configuration, shortcodes, WPML, CSV import, frontend behavior, releases, and troubleshooting.

= 0.3.49 =
* Added a Shortcode Builder admin page for generating map shortcodes, including Spanish/WPML map variants.
* Added a lang shortcode attribute so map instances can request a specific WPML language.
* Made per-instance map data language-aware for pages that use multiple shortcode variants.

= 0.3.48 =
* Fixed the WPML Spanish draft tool so it remains runnable when no missing drafts are detected and uses English as the preferred source language when available.
* Improved CSV imports with better header alias matching, UTF-8 BOM handling, clearer import errors, and smarter default column mapping.

= 0.3.47 =
* Improved large map popup readability by constraining popup cards within the viewport and making long content scrollable.
* Added sticky popup action buttons and mobile-friendly popup detail rows.

= 0.3.46 =
* Added settings fields for customizing vendor type marker colors.
* Passed custom vendor marker colors through shortcode settings and embedded frontend data.

= 0.3.45 =
* Added vendor type-colored map marker pins using the requested CSA, Farmers Market, Farm Stand, Food Hub, and Grocery colors.
* Made vendor type-colored pins the default marker style while keeping region-colored pins available.

= 0.3.44 =
* Fixed WPML Tools detection so existing source-language markets without WPML language metadata can be used to create missing Spanish drafts.
* Added source language and market counts to the WPML Tools screen for clearer troubleshooting.

= 0.3.43 =
* Added WPML Tools for creating missing draft Spanish market translations from existing English markets.
* Added WPML language columns to market CSV exports so Spanish rows are clearly identified.
* Updated WPML configuration so CSA signup URLs are copied like other URL/contact fields.

= 0.3.42 =
* Added an Export Markets CSV button to the CSV Import screen.
* Exported current non-trash market records using the same columns accepted by the importer.
* Preserved safe formatted description HTML when importing exported market descriptions.

= 0.3.41 =
* Preserved safe WordPress description formatting in marker popup Details sections, including paragraphs, lists, and links.

= 0.3.40 =
* Renamed the user-facing Market Features taxonomy surface to Delivery while preserving existing assigned terms.
* Updated the frontend filter, CSV template/header, import mapping, REST data, and shortcode filter documentation to use Delivery.
* Kept compatibility for existing `feature` shortcode filters, URL parameters, REST parameters, and legacy `features` CSV columns.
* Displayed market descriptions in map marker popups when description content is available.

= 0.3.39 =
* Removed standalone SNAP, WIC, and Double Up benefit custom fields from market editing, CSV imports/templates, REST output, WPML config, and frontend popup badges.
* Added cleanup for existing standalone benefit meta rows and prevented old import rollback snapshots from restoring those removed fields.
* Kept SNAP/EBT, WIC, and Double Up values available through Payment Types Accepted terms.

= 0.3.38 =
* Fully removed the admin menu default-screen rewrite to restore the standard WordPress Farmers Markets admin behavior.

= 0.3.37 =
* Restored the known-safe admin menu behavior from 0.3.34 to recover dashboard stability.

= 0.3.36 =
* Fixed admin dashboard compatibility after the persistent submenu state update.

= 0.3.35 =
* Kept the Farmers Markets submenu expanded and correctly highlighted while working inside plugin admin screens.

= 0.3.34 =
* Fixed Farmers Markets admin submenu visibility after making Market Health the default screen.

= 0.3.33 =
* Made Market Health the default Farmers Markets admin screen.
* Preserved the standard market list as All Markets.

= 0.3.32 =
* Replaced CSA Pickup Days/Times text entry with a structured day/time grid.
* Added structured CSA pickup schedule data to REST/frontend popup output and WPML config.
* Existing `csa_pickup_days` CSV values continue to import.

= 0.3.31 =
* Added conditional CSA fields for markets marked Offers CSA.
* Added CSA CSV import, REST/frontend data, popup display, search text, Market Health checks, and WPML config.

= 0.3.30 =
* Added per-shortcode filter visibility controls.
* Added initial map center and zoom overrides.
* Added compact mode and per-shortcode style overrides.
* Added fit_bounds control for fixed map views.

= 0.3.29 =
* Added a focused security audit script.
* Integrated security audit checks into the release check workflow.
* Added Composer advisory, secret pattern, admin action, REST data, remote request, and package leak checks.
* Added nonce protection to import log downloads.

= 0.3.28 =
* Added repeatable release QA tooling.
* Added PHPCS, WordPress security checks, and PHPCompatibilityWP configuration.
* Added package validation and packaged PHP syntax checks.
* Tightened CSV upload temp filename sanitization and market meta output handling.

= 0.3.27 =
* Added a Market Health admin dashboard.
* Added summary counts for total, published, mappable, and attention-needed markets.
* Added issue lists for missing coordinates, location fields, regions, vendor types, payment types, duplicate external IDs, and unpublished records.
* Added direct Edit Market links from health findings.

= 0.3.26 =
* Added a Download CSV Template button to the CSV Import screen.
* Template includes every supported import field plus a sample row.
* Corrected the on-screen recommended CSV sample to match the current importer fields.

= 0.3.25 =
* Added Payment Types Accepted as a new filterable market taxonomy.
* Added a Payment accepted dropdown to the frontend filter area.
* Added payment type data to REST/frontend market data, search text, popups, CSV import, rollback snapshots, and WPML config.
* Added CSV support for a new `payment_types` column.

= 0.3.23 =
* Improved popup days and hours formatting with a structured schedule block.
* Added structured schedule rows to frontend market data.
* Added clearer day/time styling inside Leaflet popups.

= 0.3.22 =
* Fixed active Region button contrast so selected region text remains readable.
* Changed selected Region buttons to a high-contrast green-on-light-green active state.

= 0.3.21 =
* Fixed duplicate entries appearing in the Vendor Type filter.
* Added frontend de-duplication for filter option labels using normalized text.
* Added REST/API de-duplication for taxonomy names and slugs before market data is sent to the map.
* Added CSV importer de-duplication for comma-separated taxonomy terms during imports.

= 0.3.20 =
* Added Map Style Presets setting with OpenStreetMap, CARTO Positron, CARTO Voyager, CARTO Dark Matter, and Custom Tile URL options.
* Added Locator Theme setting with Oregon Fresh, Clean Light, Minimal, and Classic themes.
* Added Marker Style and Popup Style settings.
* Added region-colored custom map pins and polished marker cluster styling.
* Added cleaner detailed popup cards with benefit badges and action buttons.
* Updated default visual direction to Oregon Fresh with a clean light basemap.

= 0.3.19 =
* Widened the Use My Location button so the full label stays on one line while keeping compact inline button styling.
* Improved filter action button spacing and alignment.

= 0.3.16 =
* Replaced the full-width floating-filter layout with a cleaner contained locator design.
* Moved filters back into a polished top filter card.
* Improved map card styling, spacing, mobile behavior, and region button presentation.

= 0.3.15 =
* Made the frontend locator map full-width.
* Moved filters into a floating bottom-corner map control panel.
* Kept mobile filters collapsed by default as a floating control.

= 0.3.14 =
* Slowed and smoothed region jump map animations.
* Added eased Leaflet view transitions for region buttons and all-region jumps.
* Added subtle region button transition styling.

= 0.3.13 =
* Restored Season tracking after rollback of the 0.3.12 removal.
* Restored Seasons taxonomy, Season Start/End fields, season REST/frontend data, CSV season fields, rollback snapshots, and WPML season config.
* Kept Region functionality from 0.3.11 intact.

= 0.3.12 =
* Removed Season tracking. This change was rolled back in 0.3.13.

= 0.3.11 =
* Added Regions taxonomy for assigning markets to Oregon regions.
* Added frontend region jump buttons above the map.
* Added region support to REST data, URL filters, CSV import, rollback snapshots, and WPML config.

= 0.3.10 =
* Enabled Leaflet mouse-wheel zoom by default.
* Added a Map Settings checkbox to turn mouse-wheel zoom on or off.
* Passed the mouse-wheel zoom setting to the frontend map initializer.

= 0.3.9 =
* Fixed gray/blank Leaflet map background when tile URL placeholders were encoded by WordPress sanitization.
* Added frontend tile URL normalization and fallback OpenStreetMap tile URLs.
* Added clearer map tile load error messaging.

= 0.3.8 =
* Added address search on the market edit screen to fill latitude and longitude.
* Added secure admin AJAX coordinate lookup with clear success/error messaging.

= 0.3.7 =
* Added embedded market data fallback when the REST API endpoint is unavailable.
* Added coordinate status counts and Geocode Missing Coordinates tool.
* Added admin warnings for published markets missing latitude/longitude.
* Improved frontend messaging when published markets cannot be mapped due to missing coordinates.

= 0.3.6 =
* Fixed map initialization/visibility when no markets are found or filters return zero results.
* Map now resets to the configured default center/zoom and refreshes its size after empty-result renders.

= 0.3.5 =
* Security hardening for Leaflet popup rendering.
* Updated popup generation to use DOM nodes and textContent instead of raw HTML strings for market data.
* Added safer URL handling for popup links.
* Added CHANGELOG.md and RELEASE-NOTES.md to the plugin package.

= 0.3.4 =
* Removed county tracking throughout the plugin, including taxonomy, frontend filter, REST data, shortcode support, CSV import fields, and WPML config.

= 0.3.3 =
* Added mobile-collapsed filters with a Show filters toggle for screens 700px wide and smaller.

= 0.3.2 =
* Replaced plain text open-hours setup with structured weekday checkboxes and start/end time fields.
* Preserved CSV compatibility for days_open and hours columns.

= 0.3.1 =
* Removed the right-side location list/results panel from the frontend.
* Kept filters above the map and marker popups on the map.

= 0.3.0 =
* Added improved frontend search/filter UI.
* Added production CSV importer features including dry runs, saved profiles, validation, import history, logs, and rollback support.

= 0.2.0 =
* Added marker clustering, radius filtering, geolocation distance calculations, CSV preview/mapping, import modes, logs, and external ID support.

= 0.1.0 =
* Initial installable plugin scaffold with custom post type, market fields, settings page, shortcode, REST endpoint, Leaflet map, CSV import page, and WPML config.