=== Web Directory Free ===
Contributors: salephpscripts
Donate link: https://www.salephpscripts.com/
Tags: directory, business directory, listings, maps, store locator
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 2.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A searchable business directory for WordPress: categories, locations, custom fields and interactive Google, Mapbox or MapLibre maps.

== Description ==

Web Directory Free turns WordPress into a searchable business directory. Sort listings into categories, locations and tags, build your own listing form, drop the directory onto any page with a shortcode, and let visitors search and browse — on a list or an interactive map.

In the free edition you add and edit listings from the WordPress admin, and visitors browse, search and view them on the front end.

**Key features**

* Categories, locations and tags to organise your listings.
* A listing-form builder — add your own fields (text, select, checkbox, price, opening hours, date, website, email, and more).
* Maps with Google Maps, Mapbox or MapLibre (MapTiler tiles), per-category marker icons and clustering.
* Advanced search: by category, location, custom fields, address + radius, and free-hand "draw area" search.
* Google reCAPTCHA on the listing contact form.
* CSV import and export for bulk listing management.
* Translation-ready: ships a POT file for any standard gettext/PO editor.
* Fast on large directories: marker clustering and on-demand loading keep thousands of listings responsive.

This plugin uses external services (map providers and, if you enable it, Google reCAPTCHA). See the **External Services** section below.

**Upgrading**

The full version of Web 2.0 Directory adds front-end paid submission, membership plans and WooCommerce checkout for paid, featured, renewed and upgraded listings. Those modules are not part of the free edition.

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`, or install the ZIP via Plugins -> Add New -> Upload Plugin.
2. Activate **Web Directory Free** from the Plugins menu.
3. Open the settings page, pick your map engine and enter its API key/token (Google Maps API key, Mapbox token, or MapTiler key).
4. Create your categories and locations, build the listing form, add listings, and place the directory on any page with the shortcode.

== Frequently Asked Questions ==

= Who can add listings in the free edition? =
Listings are created and edited from the WordPress admin. Front-end submission (with optional moderation, expiration and renewal) is part of the full version.

= Do I need API keys? =
For maps, yes — each map provider needs its own key/token, entered on the settings page. Keys are stored on your site and are never sent to us.

= Which map providers are supported? =
Google Maps, Mapbox, and MapLibre with MapTiler tiles. You pick one on the settings page.

= Is it translation ready? =
Yes. A `languages/w2dc.pot` template is included; translate it with any standard gettext/PO editor.

= How do paid listings and membership plans work? =
Paid submission, membership plans and WooCommerce checkout come with the full version of Web 2.0 Directory, not the free edition.

== External Services ==

Web Directory Free uses the following third-party services. Nothing is sent until you use the matching feature:

* Map providers (Google Maps, Mapbox, MapTiler / MapLibre) — when a map loads or an address is geocoded, the request (coordinates, the address being searched, and your API key/token) is sent to the provider you chose. See that provider's terms and privacy policy.
* Google reCAPTCHA — when you turn it on for the contact form, the visitor's interaction is checked with Google. See Google's terms and privacy policy.

The free edition does not contact the author's servers: it gets updates through WordPress.org and does no license or "phone-home" checks.

== Changelog ==

= 2.0.2 =
* Security: only users allowed to submit listings can upload files; uploads are limited to safe file types and a maximum size, and low-privilege users are rate-limited.
* Security: through the API, users can now only view and edit their own listings.
* Security: anonymous star ratings are counted once per visitor and rate-limited (with optional reCAPTCHA) to stop rating spam.

= 2.0.1 =
* Packaging: restore the historical main plugin file name so updates from earlier versions apply cleanly without deactivating the plugin. No functional changes.

= 2.0 =
* Rebuilt on the shared SalePHP engine: the directory core (categories, locations, tags), the custom listing-form builder, maps (Google, Mapbox, MapLibre) and advanced search.
* Hardened request-input sanitization across admin handlers; added a nonce and capability check to the license-notice endpoint; guarded a CSV image path against traversal.
* No self-hosted updater or license checks — updates are delivered through WordPress.org.
* Trimmed the bundled demo payload (removed compressed archives and the large country sample data).
* Routed internal diagnostics through a WP_DEBUG-gated logger so production logs stay quiet.
