=== EntryPilot – Universal Form Entries ===
Contributors: varungodham
Tags: form entries, metform, fluent forms, gravity forms, export
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A unified dashboard to view, search, filter, and export entries from multiple WordPress form plugins.

== Description ==

EntryPilot – Universal Form Entries gives you one clean, fast admin screen to view and manage submissions from several popular form plugins. It reads data directly from the database using a pluggable provider architecture, so it never modifies the underlying form plugin and stays compatible with future updates.

Supported form plugins (auto-detected; hidden when not installed):

* MetForm
* Fluent Forms
* Gravity Forms
* Formidable Forms
* Contact Form 7 (via Flamingo)
* Elementor Forms (Elementor Pro submissions)

The user interface, repository, export, statistics, search, pagination, filters, and settings are provider-agnostic. Adding support for another form plugin only requires one new provider class registered through the `epufe_register_providers` filter. A developer guide is included in the `docs/` folder of the plugin.

== Features ==

* Forms overview with statistics cards (total forms, total entries, today, this week, this month, average daily, most active form, latest submission).
* AJAX-powered tables with server-side pagination, search, date filters, sorting, and per-page controls (designed for large datasets).
* Dynamic columns generated from each form's fields.
* Single entry detail view with attachment thumbnails, previews, and download buttons.
* CSV export that respects the current search and filters.
* Delete single or bulk entries with nonce verification and capability checks.
* Settings for entries per page, default provider, sorting, delete and export toggles, date and time formats, cache duration, attachment preview, and debug logging.
* Transient caching with automatic invalidation when entries change.
* Developer hooks and a documented provider SDK for adding support for additional form plugins.

== Installation ==

1. Upload the `entrypilot-universal-form-entries` folder to `/wp-content/plugins/`, or install the ZIP through Plugins > Add New > Upload Plugin.
2. Activate the plugin through the Plugins screen in WordPress.
3. Open EntryPilot – Universal Form Entries in the admin menu.

== Frequently Asked Questions ==

= Does this modify my form plugin data? =

No. The plugin reads from the database and only deletes or exports entries when you explicitly request it. It does not alter how your form plugin stores data.

= What if a form plugin changes its database structure? =

Each provider detects its schema from the database and degrades gracefully, showing a friendly admin notice instead of a fatal error.

= How do I add support for another form plugin? =

Create a class that implements `EntryPilot\Contracts\Provider_Interface` (or extend `Abstract_Provider`) and register it with the `epufe_register_providers` filter. See the guide in the plugin's `docs/` folder.

= Does this work on multisite? =

Yes. Settings and data are per-site, consistent with how form plugins store entries.

== Screenshots ==

1. Forms overview with statistics cards and provider filter.
2. Entries table with search, date filters, and export.
3. Single entry detail view with field values and attachments.
4. Plugin settings page.

== Privacy ==

EntryPilot – Universal Form Entries does not collect, store, or transmit any personal data to external services. It only reads form submission data that already exists in your WordPress database, created by third-party form plugins, and displays it in the admin area for logged-in users with the `manage_options` capability.

The plugin does not add tracking, analytics, cookies, or remote requests. When debug mode is enabled in the settings, diagnostic messages may be written to a protected log file inside the WordPress uploads directory; these logs are removed when the plugin is uninstalled. No submission data is ever sent off-site. CSV exports are generated on demand and streamed directly to the requesting administrator.

== Changelog ==

= 1.0.0 =
* Initial public release.

== Upgrade Notice ==

= 1.0.0 =
Initial public release.
