{"id":297111,"date":"2026-04-13T11:45:01","date_gmt":"2026-04-13T11:45:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/gf-external-entry-export\/"},"modified":"2026-04-13T11:44:30","modified_gmt":"2026-04-13T11:44:30","slug":"izzygld-entry-export-for-gravity-forms","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/izzygld-entry-export-for-gravity-forms\/","author":15471416,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Izzygld Entry Export for Gravity Forms","header_author":"izzygld","header_description":"Generate secure, expiring download links for Gravity Forms entries - no WordPress admin access required for external users.","assets_banners_color":"","last_updated":"2026-04-13 11:44:30","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/github.com\/izzygld","header_plugin_uri":"https:\/\/github.com\/izzygld\/izzygld-entry-export-for-gravity-forms","header_author_uri":"https:\/\/github.com\/izzygld","rating":0,"author_block_rating":0,"active_installs":0,"downloads":81,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.2":{"tag":"1.0.2","author":"izzygld","date":"2026-04-13 11:44:30"}},"upgrade_notice":{"1.0.1":"<p>Security improvement for rate limiting. Recommended update for all users.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Generate Export Link interface showing form selection and options","2":"Admin settings page with global configuration options","3":"Active links management table with revoke option","4":"Per-form settings to enable export and select fields"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[567,1859,1920,1655,44220],"plugin_category":[59],"plugin_contributors":[260094],"plugin_business_model":[],"class_list":["post-297111","plugin","type-plugin","status-publish","hentry","plugin_tags-csv","plugin_tags-export","plugin_tags-external","plugin_tags-gravity-forms","plugin_tags-secure-download","plugin_category-utilities-and-tools","plugin_contributors-izzygld","plugin_committers-izzygld"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/izzygld-entry-export-for-gravity-forms.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Izzygld Entry Export for Gravity Forms<\/strong> enables WordPress administrators to share Gravity Forms entry data securely with external partners, vendors, or clients \u2014 without giving them WordPress login credentials.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Secure Token-Based Links<\/strong> - Generate cryptographically signed URLs using HMAC-SHA256<\/li>\n<li><strong>Time-Limited Access<\/strong> - Set expiration from 1 hour to 30 days (or never)<\/li>\n<li><strong>Field Selection<\/strong> - Choose exactly which form fields to include in exports<\/li>\n<li><strong>Download Limits<\/strong> - Restrict how many times a link can be used<\/li>\n<li><strong>IP Allowlisting<\/strong> - Optionally restrict downloads to specific IP addresses<\/li>\n<li><strong>Access Logging<\/strong> - Track every download with timestamp and IP<\/li>\n<li><strong>One-Click Revocation<\/strong> - Instantly disable any active link<\/li>\n<li><strong>Date Range Filtering<\/strong> - Export entries within specific date ranges<\/li>\n<li><strong>Optional Authentication<\/strong> - Add username\/password protection to links<\/li>\n<\/ul>\n\n<h4>Use Cases<\/h4>\n\n<ul>\n<li>Share form submissions with vendors without WordPress access<\/li>\n<li>Provide clients with self-service data downloads<\/li>\n<li>Automate data sharing with external systems<\/li>\n<li>Create time-limited reports for stakeholders<\/li>\n<\/ul>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>WordPress 5.8 or higher<\/li>\n<li>PHP 7.4 or higher<\/li>\n<li>Gravity Forms 2.5 or higher (required)<\/li>\n<\/ul>\n\n<h4>Privacy &amp; Security<\/h4>\n\n<p>This plugin:\n* Does NOT send any data to external servers\n* Does NOT include tracking or analytics\n* Stores all data in your WordPress database\n* Uses industry-standard HMAC-SHA256 for token signing\n* Implements rate limiting to prevent brute-force attacks<\/p>\n\n<h3>Developer Documentation<\/h3>\n\n<h4>Hooks &amp; Filters<\/h4>\n\n<p><strong>Modify search criteria:<\/strong>\n    add_filter( 'izzygld_eee_search_criteria', function( $criteria, $filters ) {\n        return $criteria;\n    }, 10, 2 );<\/p>\n\n<p><strong>Modify field map:<\/strong>\n    add_filter( 'izzygld_eee_field_map', function( $field_map, $form, $fields ) {\n        return $field_map;\n    }, 10, 3 );<\/p>\n\n<p><strong>Transform field values:<\/strong>\n    add_filter( 'izzygld_eee_field_value', function( $value, $entry, $field, $form ) {\n        return $value;\n    }, 10, 4 );<\/p>\n\n<p><strong>Modify final CSV:<\/strong>\n    add_filter( 'izzygld_eee_csv_content', function( $csv, $entries, $form ) {\n        return $csv;\n    }, 10, 3 );<\/p>\n\n<h4>REST API Endpoints<\/h4>\n\n<ul>\n<li><code>GET \/izzygld-eee\/v1\/export<\/code> - Public download endpoint (token auth)<\/li>\n<li><code>GET \/izzygld-eee\/v1\/preview<\/code> - Entry count preview (admin auth)<\/li>\n<li><code>GET \/izzygld-eee\/v1\/form-fields\/{id}<\/code> - Get form fields (admin auth)<\/li>\n<li><code>GET \/izzygld-eee\/v1\/links<\/code> - List active links (admin auth)<\/li>\n<\/ul>\n\n<h4>Generate Link Programmatically<\/h4>\n\n<pre><code>$addon = izzygld_entry_export();\n$result = $addon-&gt;token_handler-&gt;generate_token([\n    'form_id'     =&gt; 1,\n    'fields'      =&gt; ['field_1', 'field_2'],\n    'description' =&gt; 'Export for Vendor ABC',\n    'filters'     =&gt; [\n        'start_date' =&gt; '2024-01-01',\n        'end_date'   =&gt; '2024-12-31',\n        'status'     =&gt; 'active',\n    ],\n], 24); \/\/ Hours until expiration\n<\/code><\/pre>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>izzygld-entry-export-for-gravity-forms<\/code> folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Ensure Gravity Forms is installed and activated<\/li>\n<li>Navigate to Forms \u2192 Settings \u2192 External Export to configure global settings<\/li>\n<\/ol>\n\n<h4>Quick Start<\/h4>\n\n<ol>\n<li>Go to Forms \u2192 [Your Form] \u2192 Settings \u2192 External Export<\/li>\n<li>Enable \"Allow generating external export links\"<\/li>\n<li>Select which fields can be exported<\/li>\n<li>Save settings<\/li>\n<li>Go to Forms \u2192 External Export Links<\/li>\n<li>Select your form and fields, set expiration<\/li>\n<li>Click \"Generate Export Link\"<\/li>\n<li>Share the URL with your external partner<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20require%20gravity%20forms%3F\"><h3>Does this plugin require Gravity Forms?<\/h3><\/dt>\n<dd><p>Yes, Gravity Forms 2.5 or higher is required. The plugin will show an error and deactivate itself if Gravity Forms is not active.<\/p><\/dd>\n<dt id=\"is%20this%20secure%3F\"><h3>Is this secure?<\/h3><\/dt>\n<dd><p>Yes. Links use HMAC-SHA256 cryptographic signing. External users cannot guess valid URLs, access other forms, or modify any data. Rate limiting prevents brute-force attacks.<\/p><\/dd>\n<dt id=\"can%20i%20revoke%20a%20link%20after%20sharing%20it%3F\"><h3>Can I revoke a link after sharing it?<\/h3><\/dt>\n<dd><p>Yes. Go to Forms \u2192 External Export Links, find the link, and click \"Revoke\". It stops working immediately.<\/p><\/dd>\n<dt id=\"what%20format%20is%20the%20export%3F\"><h3>What format is the export?<\/h3><\/dt>\n<dd><p>CSV (Comma-Separated Values), compatible with Excel, Google Sheets, Numbers, and other spreadsheet applications.<\/p><\/dd>\n<dt id=\"can%20external%20users%20edit%20the%20data%3F\"><h3>Can external users edit the data?<\/h3><\/dt>\n<dd><p>No. The download links are read-only. External users can only download the CSV file.<\/p><\/dd>\n<dt id=\"how%20do%20i%20track%20downloads%3F\"><h3>How do I track downloads?<\/h3><\/dt>\n<dd><p>Enable \"Access Logging\" in the global settings. Every download is logged with timestamp and IP address. View logs in Forms \u2192 External Export Links.<\/p><\/dd>\n<dt id=\"can%20i%20limit%20who%20downloads%3F\"><h3>Can I limit who downloads?<\/h3><\/dt>\n<dd><p>Yes. Use the \"IP Allowlist\" setting to restrict downloads to specific IP addresses. You can also add username\/password protection to links.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20a%20link%20expires%3F\"><h3>What happens when a link expires?<\/h3><\/dt>\n<dd><p>The external user sees an error message. Generate a new link if continued access is needed.<\/p><\/dd>\n<dt id=\"can%20i%20filter%20which%20entries%20are%20exported%3F\"><h3>Can I filter which entries are exported?<\/h3><\/dt>\n<dd><p>Yes. You can filter by date range (start\/end date) and entry status (active, spam, trash).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Security: Fixed rate limiting to properly sanitize REMOTE_ADDR server variable<\/li>\n<li>Improved: Added PHPCS inline comments for legitimate prepared SQL queries<\/li>\n<li>Added: Admin notice and auto-deactivation when Gravity Forms is not active<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Core token generation and validation with HMAC-SHA256<\/li>\n<li>CSV export with field selection<\/li>\n<li>Admin UI for link management<\/li>\n<li>REST API endpoints<\/li>\n<li>Access logging<\/li>\n<li>IP allowlist support<\/li>\n<li>Download limits and expiration<\/li>\n<li>Link revocation<\/li>\n<\/ul>","raw_excerpt":"Generate secure, time-limited download links for Gravity Forms entries \u2014 allow external users to download CSV exports without WordPress admin access.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/297111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=297111"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/izzygld"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=297111"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=297111"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=297111"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=297111"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=297111"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=297111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}