Title: Poterie Navarraise Pottery Market Manager
Author: Paul Carriquiry
Published: <strong>October 5, 2026</strong>
Last modified: October 5, 2026

---

Search plugins

![](https://s.w.org/plugins/geopattern-icon/poterie-navarraise-market-manager.svg)

# Poterie Navarraise Pottery Market Manager

 By [Paul Carriquiry](https://profiles.wordpress.org/pauligno/)

[Download](https://downloads.wordpress.org/plugin/poterie-navarraise-market-manager.0.19.5.zip)

 * [Details](https://wordpress.org/plugins/poterie-navarraise-market-manager/#description)
 * [Reviews](https://wordpress.org/plugins/poterie-navarraise-market-manager/#reviews)
 *  [Installation](https://wordpress.org/plugins/poterie-navarraise-market-manager/#installation)
 * [Development](https://wordpress.org/plugins/poterie-navarraise-market-manager/#developers)

 [Support](https://wordpress.org/support/plugin/poterie-navarraise-market-manager/)

## Description

Poterie Navarraise Pottery Market Manager helps pottery market organizers collect
applications, review candidates and present selected exhibitors. The French description
is “Poterie Navarraise — Organisation de marchés potiers”. The interface and outgoing
messages are currently mostly in French.

Visit the [official plugin website](https://gestion-marche-potier.poterie-navarraise.info/)
for a presentation in French.

The plugin is available on WordPress.org and GitHub. Updating from versions 0.19.1
through 0.19.4 preserves existing editions, applications, team assignments, ratings
and uploaded files. Existing editions without a city remain usable; enter their 
market city when next saving their settings. When switching from the old 0.19.0 
test package, deactivate it first and create fresh editions and team assignments:
the marcpo_ identifiers introduced in 0.19.1 do not migrate those older test records.
Read the document storage information below.

#### Features

 * Multiple editions with application dates, venue, prices, PDF rules and stand 
   settings.
 * Application and selection gallery blocks linked to specific editions.
 * Applications without WordPress accounts: contact details, presentation, activity
   and six uploads.
 * Separate file transfers and temporary recovery of answers in the browser.
 * Application search, filters and sorting by name, submission date or points.
 * Direct selection or ratings from 0 to 5 by active jury members.
 * Voting progress table, selection history and filtered CSV exports.
 * Invitations and submission confirmations through WordPress email delivery.
 * Public exhibitor photographs, techniques, links and optional mapping with separate
   site and applicant consent.

No ACF or form builder is required. Blocks use the WordPress editor. Scripts and
styles, including Leaflet, are bundled. Mapping providers are documented under External
services.

#### Team and permissions

The admin menu is called “Gestion Marché Potier”. The home page offers shortcuts,
a setup guide and a contact email link showing the installed version. In simple 
selection mode the voter section is hidden; existing assignments and ratings are
kept for a later return to multiple voting. Selection history has compact identity
columns and a search restricted to surname, first name and email.

Each edition requires an internal market city (“Ville”) below its year. It is not
shown in the public application form. Selection history can be filtered by this 
market city, together with the identity search; only accessible editions contribute
to the city choices and results. Existing editions without a city remain usable 
and can be found under “Ville non renseignée”. Complete their city when next editing
them. The applicant’s city and the public venue description remain separate.

The administrator’s “Enregistrer l’édition et envoyer l’invitation” button saves
the edition and sends the invitation after validation. Complete the required fields
first. A new edition remains a draft until published. New accounts are also invited
automatically when first saved. Existing accounts keep their passwords; ordinary
saves do not resend their invitations.

Each edition has one administrator identified by name and email. The “[Poterie Navarraise]
Administrateur marché” role can manage editions, applications, pages and posts across
the site, including other accounts’ content. It cannot access technical settings,
plugins or native user management.

The “[Poterie Navarraise] Votant sélection” role can review applications in assigned
editions. In multiple voting mode, active jurors can see jury ratings and update
their own rating at any time. Application closing dates do not close voting. Point
totals never select a candidate automatically.

Replacing an edition administrator does not revoke their site-wide WordPress permissions.
A site administrator must remove those permissions when necessary.

#### Public selection

The gallery requires a published edition, its “Autoriser l’affichage public de la
sélection” setting, a selected application and the applicant’s publication authorization.
Public selection is disabled by default.

The gallery displays names, town, postal code, techniques, website links and product
photographs. The map exposes geocoded addresses. Email, telephone, supporting documents
and stand photographs are not displayed in the gallery.

The application form requires authorization for public presentation if selected.
A separate, optional checkbox authorizes sending the address to IGN and displaying
it on the public map. It is unchecked by default. Refusing mapping does not prevent
applying or appearing in the gallery. Telephone collection is unchanged; telephone
numbers and email addresses are not sent to mapping providers.

Mapping also requires explicit site-administrator authorization under Gestion Marché
Potier > Services externes. IGN geocoding and OpenStreetMap tiles have separate 
switches, both off by default. Enabling the plugin, publishing the selection or 
accepting photo publication does not enable either service or imply the applicant’s
mapping consent. Existing applications without the new mapping agreement are not
mapped. Visitors do not have a separate map consent button.

#### Data and privacy

Contact details, answers, decisions, authorizations, team assignments, ratings and
email status are stored in the WordPress database. Mapping authorization is recorded
separately with the date of agreement. Applicants can contact the organizer to withdraw
it; the organizer can uncheck the mapping agreement in the application. This removes
its saved map position and cancels its queued geocoding task. Previously transmitted
requests cannot be recalled from the provider. Organizers and jurors use WordPress
accounts; applicants do not receive accounts.

Photos and supporting documents are WordPress Media Library attachments with ordinary
public file URLs. Files follow the configured WordPress uploads directory. JPEG 
copies at 1080 by 1350 pixels are generated locally after an application is saved
and are also available in the Media Library. WordPress selects the available image
editor (Imagick or GD). Copies preserve the whole photo, centred on white, without
enlarging small photos or replacing the source. If an editor is unavailable or processing
fails, the application and its source file remain saved; only the optional copy 
is marked as failed. Nothing is posted automatically to Instagram or Facebook.

Supporting documents have no special access protection. Their URLs can be opened
without signing in. This does not display them in the selection gallery: that gallery
only shows the selected product photographs and public presentation. Access to application
management and CSV export still requires the appropriate WordPress permissions.

The technical marcpo_form_session cookie links browser sessions to transfers and
is renewed for 24 hours. Answers and choices may be saved in browser localStorage
under marcpo-candidate-draft: followed by the edition ID, with a maximum logical
lifetime of 24 hours. Expired drafts are removed when the code next runs; a closed
browser may retain them physically until another visit or manual deletion.

Temporary uploads expire after 24 hours. Physical cleanup depends on subsequent 
reads and an hourly WordPress task; delayed WP-Cron execution can prolong storage.
On confirmation, the existing attachments are assigned to the application without
copying them; only the draft metadata is removed. Cleanup only deletes explicitly
marked provisional media with no application reference. Ordinary unattached media
are never collected.

Rate limiting stores counters associated with an HMAC of the IP address, with a 
fifteen-minute expiry renewed on counted attempts. Missing or invalid IP addresses
share a fallback bucket. These counters do not contain raw IP addresses; hosting
or provider logs may independently retain them.

Confirmed applications, identity records and votes have no automatic retention period.
Replacing a file or permanently deleting an application preserves its confirmed 
media for reuse. Delete unwanted confirmed media explicitly from the Media Library.
Deleting an application removes its votes but does not erase every record associated
with the person. This version does not integrate WordPress personal data export 
or erasure tools and does not purge data on uninstall.

Organizers must define retention periods and update their site’s privacy policy 
for their practices, backups and providers. The form links to that policy when configured
in WordPress.

### External services

#### IGN / Géoplateforme: French address geocoding

Provider: Institut national de l’information géographique et forestière (IGN).
 
Purpose: convert a French address into coordinates for the public workshop map.

The WordPress server requests https://data.geopf.fr/geocodage/search over HTTPS 
with q (street, postal code and town), index=address and limit=2. The User-Agent
includes the plugin name and site’s home URL. IGN also receives the server IP. The
plugin does not attach email, telephone, photographs, documents, ratings or the 
applicant’s name as a separate field; address text is normalized before transmission
without changing the application. Postal-code whitespace is removed; standalone 
st/ST becomes saint in streets and towns. Country aliases Pays Basque, Pays-Basque,
Euskal Herri, Euskal-Herri and Euskal Herria are treated as France. If the street
result is unsuitable, a second request uses q=town, type=municipality and postcode,
with index=address and limit=2. A sufficiently matching, unambiguous municipality
result is shown as an approximate town-centre position.

Scheduled WordPress tasks make requests only after a site administrator explicitly
enables IGN and only for selected applications with separate mapping consent and
publication authorization in editions allowing public selection. Authorization is
checked again when the task runs. Addresses must pass French format checks. Coordinates
already recorded for the same address avoid another call. Responses may be cached
locally for 180 days; accepted coordinates remain in application metadata until 
mapping consent is withdrawn or the application is deleted. Shared geocoding response
caches expire separately.

 * Documentation: https://ignf.github.io/cartes.gouv.fr-documentation/fr/guides-
   utilisateur/utiliser-les-services-de-la-geoplateforme/geocodage/
 * Terms: https://cartes.gouv.fr/cgu/
 * Personal data: https://cartes.gouv.fr/donnees-personnelles/

#### OpenStreetMap: map tiles

Provider: OpenStreetMap Foundation (OSMF).
 Purpose: display the gallery map background
using https://tile.openstreetmap.org/{z}/{x}/{y}.png tiles.

Only after a site administrator explicitly enables OpenStreetMap does the plugin
render a map of eligible applicants who authorized address mapping. The visitor’s
browser requests tiles directly when that map enters the visible area, or during
initialization if IntersectionObserver is unavailable. Panning and zooming may trigger
more requests. No separate visitor acceptance click is requested beforehand.

OSMF receives the visitor’s IP address, browser HTTP information, tile coordinates
and zoom level. The code sets strict-origin-when-cross-origin referrer policy: the
site’s origin may be transmitted on external HTTPS requests according to browser
rules. Marker names and addresses are rendered locally and are not included as fields
in tile requests, but those requests reveal the viewed geographical area.

The service is subject to its usage policy and has no availability guarantee. Preserve
attribution and comply with provider terms.

 * Service: https://www.openstreetmap.org/
 * Tile usage policy: https://operations.osmfoundation.org/policies/tiles/
 * Privacy: https://osmfoundation.org/wiki/Privacy_Policy
 * Map data attribution and licensing: https://www.openstreetmap.org/copyright

#### Custom providers

Developers can override provider URLs through marcpo_address_geocoder_url and marcpo_map_tile_url.
The information above describes default providers. Sites using replacements must
document the actual services and update their privacy policy accordingly.

#### Email and external links

Emails use wp_mail() and the site’s configured transport. No particular third-party
email provider is required. Submission confirmations include answers and filenames
without attachments. Recipients are the applicant and edition administrator; active
jurors also receive them in multiple voting mode. Invitations contain login information
and a password setup link for new accounts.

The form’s DATA INPI link and applicants’ website, Instagram and Facebook links 
open those sites when clicked. They do not trigger automatic imports or posts.

### Source code and third-party libraries

#### Plugin source

The plugin’s PHP, JavaScript and CSS are distributed in readable form under GPL-
2.0-or-later. No build step, Composer or npm is required to run it.

 * Repository: https://github.com/PaulPoterie/MarchePotier
 * License: https://www.gnu.org/licenses/gpl-2.0.html

#### Leaflet 1.9.4

Leaflet draws the map, markers and popups in the browser. Its JavaScript and CSS
are bundled in assets/vendor/leaflet/ and served by the WordPress site. No Leaflet
CDN is used.

Leaflet uses the BSD-2-Clause license. Its copyright notice and license text are
preserved in assets/vendor/leaflet/LICENSE.

 * Project: https://leafletjs.com/
 * Matching source version: https://github.com/Leaflet/Leaflet/tree/v1.9.4
 * Uncompressed JavaScript sources: https://github.com/Leaflet/Leaflet/tree/v1.9.4/
   src
 * Distribution and CSS: https://github.com/Leaflet/Leaflet/tree/v1.9.4/dist
 * License: https://github.com/Leaflet/Leaflet/blob/v1.9.4/LICENSE
 * Contribution and build instructions: https://github.com/Leaflet/Leaflet/blob/
   v1.9.4/CONTRIBUTING.md

Leaflet is a local library, separate from the IGN and OpenStreetMap services above.
Its license does not replace service terms or map data licensing.

## Installation

 1. Use WordPress 6.6 or later and PHP 8.2 or later, Fileinfo and a WordPress image
    editor (Imagick or GD) supporting JPEG, PNG and WebP for social copies. Use MySQL/
    MariaDB, or SQLite through the official WordPress SQLite Database Integration plugin.
 2. On staging, upload the ZIP containing the poterie-navarraise-market-manager folder
    through Plugins > Add New > Upload Plugin, then activate it.
 3. Sign in as a WordPress administrator and open Gestion Marché Potier. Review the
    documented public file storage behavior and verify email delivery before collecting
    real applications.
 4. Create an edition, complete its settings and required administrator, then publish
    it.
 5. Add the “Formulaire de candidature” block to a page and choose the edition. Use
    one form per page.
 6. Exclude the application page from page/CDN caching, ensure WP-Cron works and test
    a complete application.
 7. Add the “Présentation de la sélection” block, choose the edition and enable public
    selection when ready.
 8. To offer a map, a WordPress site administrator must read and enable the desired
    providers under Gestion Marché Potier > Services externes. Applicants must separately
    opt in to address mapping. Purge page/CDN caches after changing provider settings
    or withdrawing mapping consent so cached pages reflect the change.

When switching from the former marche-potier package, deactivate the old plugin 
before activating this renamed package. WordPress may list them separately; do not
activate both together.

Documented local tests use WordPress 7.1 and PHP 8.3. Declared minimum versions 
do not represent a fully tested compatibility matrix.

## FAQ

### Can I use SQLite or WordPress Playground?

The write lock uses the WordPress options table instead of MySQL named locks. MySQL
and SQLite with the official SQLite Database Integration plugin are covered by the
local database tests. MariaDB uses the same WordPress SQL path; it has not been 
tested separately in this test run. PostgreSQL, SQL Server and other third-party
database adapters are not validated. Playground uses SQLite, but these local tests
do not certify every browser/runtime combination.

The lock is released after each operation, with a fallback at request shutdown. 
It is never taken over merely because an operation is slow. A hard server termination
can leave an orphaned lock: if the busy message persists, ask the site administrator
to investigate rather than changing upload permissions. Recovery requires confirming
that no plugin write is still running.

### Which files are accepted?

Three product photographs, one stand photograph, proof of professional status and
professional liability insurance are required. Photos accept JPEG, PNG and WebP;
documents also accept PDF. The limit is 20 MB per file, reduced when server limits
are lower. HEIC is not supported.

### Can applications work without mapping services?

Yes. Both mapping services are disabled by default. Applications, reviews, ratings,
exports and the gallery remain available without them. Refusing mapping or an address
that cannot be geocoded does not prevent an eligible exhibitor appearing in the 
gallery. Markers require the applicant’s mapping agreement and saved coordinates;
displaying the map also requires the OpenStreetMap setting. Turning off IGN stops
new geocoding requests, including queued tasks; turning off OpenStreetMap stops 
the plugin rendering the map on subsequent page loads. Already loaded or cached 
pages need refreshing or purging.

### Is an API key required?

No API key or registration with IGN or OpenStreetMap is required by this version.
Provider terms still apply.

### Are selection decisions emailed automatically?

No. Invitations and submission confirmations are sent, but not automatic acceptance
or rejection messages. Failed emails are not automatically retried. Delivery depends
on the site’s email system.

### How do I back up or uninstall?

Back up the database and uploads directory together. Deactivating or deleting the
plugin does not automatically remove its records, files, votes, options or roles.
Manage these separately according to your retention policy.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Poterie Navarraise Pottery Market Manager” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Paul Carriquiry ](https://profiles.wordpress.org/pauligno/)

[Translate “Poterie Navarraise Pottery Market Manager” into your language.](https://translate.wordpress.org/projects/wp-plugins/poterie-navarraise-market-manager)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/poterie-navarraise-market-manager/),
check out the [SVN repository](https://plugins.svn.wordpress.org/poterie-navarraise-market-manager/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/poterie-navarraise-market-manager/)
by [RSS](https://plugins.trac.wordpress.org/log/poterie-navarraise-market-manager/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.19.5

 * Use native WordPress image editors for social copies, supporting Imagick as well
   as GD.
 * Preserve complete photos on a white 1080 by 1350 JPEG canvas without cropping
   or enlarging small images.
 * Keep source files and applications saved if the optional image copy fails; scope
   image filters to the copy operation.
 * Update installation and release documentation following WordPress.org approval.

#### 0.19.4

 * Remove an unused WordPress media library include and load required core libraries
   only at their point of use.
 * Replace MySQL named locks with an owner-checked options-table lock, tested with
   MySQL and the official SQLite integration.
 * Distinguish busy or unavailable database locks from upload-directory errors in
   migration notices.
 * Add the official plugin website to the plugin header, dashboard and documentation.
 * Remove unused notification rendering code and document media lifecycles, database
   compatibility and recovery.

#### 0.19.3

 * Require an internal market city below the edition year, with server-side validation;
   keep it out of the public application form.
 * Filter selection history by market city, combined with surname, first-name and
   email search.
 * Restrict city choices and results to accessible editions and group equivalent
   city names without case or accent differences.
 * Preserve existing editions without a city under the City not provided option 
   until their settings are updated.
 * Update English and French documentation and add regression coverage for city 
   validation, filtering and access controls.

#### 0.19.2

 * Add a save-and-invite button for the market administrator, with required-field
   validation and draft preservation.
 * Hide the voter section in simple selection mode while preserving assignments 
   and ratings.
 * Add optional edition title guidance.
 * Refresh the administration dashboard with the Gestion Marché Potier menu, role-
   based shortcuts, setup guidance and version-aware support contact.
 * Narrow identity columns in selection history and add surname, first-name and 
   email search, with access checks and accent-insensitive matching.
 * Normalize IGN address queries and fall back to unambiguous municipality centres,
   with the location precision shown to visitors.
 * Update English and French documentation and add regression coverage for administration
   workflows.

#### 0.19.1

 * Adopt the Poterie Navarraise Pottery Market Manager name and the poterie-navarraise-
   market-manager text domain.
 * Add separate site-administrator opt-ins for IGN geocoding and OpenStreetMap tiles,
   both disabled by default.
 * Add optional, unchecked applicant consent for address mapping, with a recorded
   date and withdrawal controls.
 * Validate public answers and upload descriptors before submission; use context-
   specific email, URL and filename sanitization.
 * Validate and sanitize public, voting, selection and export nonces before verification.
 * Validate IGN responses and retain only sanitized, relevant properties in the 
   local cache.
 * Update English documentation for external services, data handling and bundled
   Leaflet sources.
 * Replace short identifiers with the distinct marcpo_ prefix. Previous test data
   is not migrated.
 * Load quick-edit JavaScript through WordPress and restore the saved selection 
   correctly.
 * Sanitize public nonces and restrict operational notices to relevant plugin screens.

#### 0.19.0

 * Edition administrators and assigned jurors in one plugin.
 * Ratings from 0 to 5, totals, personal filters and voting progress.
 * Application and selection blocks linked to editions by ID.
 * Search, filters and sorting by points, submission date and name.
 * WordPress.org readme, explicit output escaping, prepared vote queries and typed
   HTTP inputs.
 * WordPress Media Library storage, resumable file transfers and safe temporary 
   media cleanup.

## Meta

 *  Version **0.19.5**
 *  Last updated **16 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.2 or higher **
 * Tags
 * [applications](https://wordpress.org/plugins/tags/applications/)[events](https://wordpress.org/plugins/tags/events/)
   [gallery](https://wordpress.org/plugins/tags/gallery/)
 *  [Advanced View](https://wordpress.org/plugins/poterie-navarraise-market-manager/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/poterie-navarraise-market-manager/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/poterie-navarraise-market-manager/reviews/)

## Contributors

 *   [ Paul Carriquiry ](https://profiles.wordpress.org/pauligno/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/poterie-navarraise-market-manager/)