=== iKetch Entries Viewer for Contact Form 7 ===
Contributors: iketcheg
Tags: contact-form-7, cf7, entries, database, submissions
Requires at least: 5.3
Requires PHP: 7.0
Tested up to: 7.0
Stable tag: 2.3.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Capture, view, manage, and export Contact Form 7 submissions directly from your WordPress dashboard with built-in Honeypot spam protection.

== Description ==

CF7 Entries Viewer is a lightweight, secure, and developer-friendly plugin that automatically saves all Contact Form 7 submissions into your WordPress database.

It provides an intuitive dashboard to view, search, filter, and export entries to CSV. It also includes built-in Honeypot Spam Protection that silently blocks spam bots without requiring CAPTCHAs, along with real-time spam statistics.

Developed by [iKetch](https://iketch.com/), a WordPress development team focused on custom plugins, WooCommerce solutions, performance and accessible RTL/LTR experiences.

=== Key Features ===

* Automatically saves all Contact Form 7 submissions.
* Built-in Honeypot Spam Protection with zero configuration.
* Real-time spam analytics dashboard.
* Secure attachment storage with protected file access.
* Advanced search and filtering.
* Read/unread tracking with visual highlighting and status filters.
* Unread entry counter in the WordPress admin menu.
* Favorite entries with instant toggling, filters and bulk actions.
* Print individual entries using a clean, print-friendly layout.
* Export a single entry, selected entries or all entries to CSV (UTF-8 compatible).
* Track selected forms or all forms.
* Automatic cleanup of old entries.
* GDPR tools to remove entries by email address.
* Translation ready with Arabic, Spanish, French, German and Russian.
* Fully compatible with RTL and LTR layouts.

== Installation ==

1. Upload the plugin folder to the `/wp-content/plugins/` directory, or install it directly from the WordPress admin.
2. Activate the plugin.
3. Open **CF7 Entries** from the WordPress dashboard.
4. Configure the plugin from **CF7 Entries → Settings**.

== Frequently Asked Questions ==

= Does this plugin work with other form builders? =

No. This plugin is designed exclusively for Contact Form 7.

= How does the Honeypot Spam Protection work? =

A hidden field is automatically injected into every Contact Form 7 form before the submit button. Human visitors never fill it, while spambots usually do. If the field contains any value, the submission is automatically rejected as spam.

= Are uploaded files secure? =

Yes. Uploaded files are protected from direct public access and are only available to authorized administrators through secure WordPress endpoints.

= Can I export submissions? =

Yes. Export one entry from its detail page, selected entries with a bulk action, or all entries. CSV files use UTF-8 for compatibility with Microsoft Excel.

= Can I print a single submission? =

Yes. Open an entry and select **Print Entry**. The print layout removes WordPress admin navigation and keeps the submitted fields and metadata readable.

= Is this plugin translation ready? =

Yes. The plugin includes translation files for Arabic, Spanish, French, German and Russian.

== Support ==

For plugin information and professional WordPress development, visit [iKetch](https://iketch.com/).

== Screenshots ==

1. Entries dashboard with search, filters, export tools and spam statistics.
2. Plugin settings page.
3. Data management including automatic cleanup and GDPR tools.
4. Honeypot spam protection in action.

== Upgrade Notice ==

= 2.3.0 =

Adds individual print and CSV export actions, improves desktop/mobile/RTL layouts, and updates translations. No database migration is required.

== Changelog ==

= 2.3.0 =

* Redesigned the entries interface for more consistent spacing, typography and alignment on desktop and mobile.
* Improved RTL and LTR behavior across entry lists and detail screens.
* Added a print-friendly action for individual entries.
* Added secure CSV export for an individual entry from its detail page.
* Renamed star actions to clearer favorite actions while retaining the familiar star control.
* Reworked the mobile list to follow the WordPress responsive table pattern, with details expanded by default.
* Updated Arabic, German, Spanish, French and Russian translations.
* Confirmed compatibility with WordPress 7.0.

= 2.2.0 =

* Added automatic read/unread tracking for form entries.
* Added unread row highlighting, status labels and read-status filtering.
* Added single-entry and bulk actions to mark entries as read or unread.
* Added an unread entries counter to the WordPress admin menu and dashboard statistics.
* Existing entries are treated as read during upgrade, while new submissions start as unread.
* Added Starred entries with gold-star toggling over AJAX, combined filtering, bulk actions and detail-page controls.
* Existing entries remain unstarred by default.
* Fixed the unread admin-menu counter so it updates immediately when an entry is opened.
* Resolved Plugin Check warnings for mixed line endings and documented no-cache exceptions for schema migrations.

= 2.1.1 =

* Improved the settings interface by removing the redundant tracked forms section.

= 2.1.0 =

* Added granular WordPress capabilities for viewing, exporting, deleting, settings, and GDPR actions.
* Added a role-based permissions matrix for site administrators.
* Added a dedicated GDPR data-management screen and secure upgrade migration.
* Confirmed compatibility with WordPress 7.0.1.
= 2.0.6 =

* Fixed corrupted translation files (.mo).
* Updated language files.

= 2.0.5 =

* Security: Added strict capability check (`manage_options`) and entry-specific nonces to secure all GET request data views.
* Security: Refactored SQL queries in `class-db.php` to prepare all values and whitelist order columns, protecting against SQL injection.
* Security: Fixed CSV/formula injection — cell values starting with =, +, -, @, tab or carriage return are now prefixed to prevent execution when opened in spreadsheet software.
* Compliance: Unified all class and constant names under a single `Iketch_Entries_Viewer_*` / `IKETCH_ENTRIES_VIEWER_*` prefix (previously mixed with `CF7_*`).

= 2.0.4 =

* Compliance: Renamed the plugin to iKetch Entries Viewer for Contact Form 7.
* Compliance: Renamed the slug, text domain, variables, options and hooks to `iketch-entries-viewer-for-contact-form-7`.
* Compliance: Set minimum PHP version requirement to 7.0.

= 2.0.3 =

* Compliance: Fixed global prefix warning for `$wp_uploads` in `uninstall.php`.
* Feature: Added option to delete plugin data on uninstall.

= 2.0.2 =

* Compliance: Fixed all Plugin Check warnings.
* Compliance: Prefixed variables according to WordPress standards.
* Security: Improved sanitization, unslashing and secure redirects.
* Localization: Updated translator comments.

= 2.0.1 =

* Added built-in Honeypot Spam Protection.
* Added real-time Spam Analytics dashboard.
* Added secure attachment handling.
* Added CSRF protection across all admin actions.
* Improved XSS protection.
* Added WordPress Filesystem API support.
* Added uninstall cleanup.
* Optimized scheduled automatic cleanup.
* Added translations for Arabic, Spanish, French, German and Russian.
* Improved RTL/LTR compatibility.
