=== GravityExport ===
Tags: gravity forms, export
Requires at least: 5.1
Tested up to: 6.9.4
Contributors: The GravityKit Team
License: GPL 2
Requires PHP: 7.4

Export Gravity Forms entries to multiple formats locally or to remote locations.

== Installation ==

1. Upload plugin files to your plugins folder, or install using WordPress's built-in Add New Plugin installer
2. Activate the plugin
3. Follow the instructions

== Changelog ==

= 1.10.1 on April 27, 2026 =

This hotfix restores the controls for adding new conditional logic rules.

#### 🐛 Fixed
* Conditional logic controls missing in the feed settings when no rules had been configured.

= 1.10.0 on April 23, 2026 =

This release enables background exports on sites protected by HTTP Basic Authentication, improves conditional logic, and resolves issues that could cause exports to fail on certain hosting environments.

#### 🚀 Added
* Background exports can now run on sites protected by HTTP Basic Authentication, such as password-protected staging and development environments.

#### ✨ Improved
* Enhanced conditional logic:
  - Empty field values are no longer treated as today's date when using `is on`, `is not on`, `is before`, or `is after` filters;
  - Filters on deleted or missing forms (e.g. when viewing feed settings for a removed form) no longer trigger errors;
  - Admin-only filters (those suffixed `:disabled_admin`) no longer error out when applied to multi-value fields.

#### 🐛 Fixed
* Exports could be incorrectly marked as failed mid-execution on certain hosting environments.

#### 🔧 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.16.0.

= 1.9.0 on April 2, 2026 =

This release adds Box.com as a cloud storage destination for Save feeds, introduces support for Gravity Flow fields in exports, and fixes an issue where background exports were not saving files when no custom storage path was configured.

#### 🚀 Added
* Support for Box.com as a cloud storage destination in Save feeds, enabling exported files to be automatically uploaded to a specified Box folder.
* Gravity Flow field integration for User, Multi User, Assignee Select, Role, Timestamp, and Status fields, with filter hooks to control user display properties, role translation, timestamp formatting, and status labels.

#### 🐛 Fixed
* Background exports not saving the exported file when no custom storage path is configured.

#### 💻 Developer Updates
* Added `gk/gravityexport/field/flow/translate-role` filter to control translation of Gravity Flow Role field values.
* Added `gk/gravityexport/field/flow/user-property` filter to specify which user property is used for Gravity Flow User field values.
* Added `gk/gravityexport/field/flow/status-label` filter to customize labels for Gravity Flow status values.
* Added `gk/gravityexport/field/flow/timestamp-type` filter to control the display of Gravity Flow timestamp values.
* Added `gk/gravityexport/field/flow/timestamp-format` filter to customize formatting for Gravity Flow timestamp values.

#### 🔧 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.14.0.

= 1.8.0 on March 19, 2026 =

This release adds chunked processing for large scheduled exports to prevent timeouts and memory issues, and improves conditional logic with better Multiple Forms compatibility, numeric comparisons, and author search.

**Note: GravityExport now requires PHP 7.4 or newer.**

#### 🚀 Added
* Chunked processing for large scheduled exports (CSV and XLSX) to prevent timeouts and memory issues.
* Pre-flight memory check for scheduled XLSX exports to prevent out-of-memory crashes.

#### ✨ Improved
* Enhanced conditional logic:
  - "Created By" filter now supports searching by username, display name, email, or login;
  - Product and pricing field filters now correctly compare numeric values, ignoring currency formatting;
  - Filters for fields on joined forms (via [Multiple Forms](https://www.gravitykit.com/extensions/multiple-forms/)) now correctly resolve field types and merge tags;
  - Fixed "Approval Status" filter option appearing twice in the dropdown;
  - Fixed CSS scoping to prevent style collisions with other GravityKit products.

= 1.7.1 on March 13, 2026 =

This hotfix resolves an issue introduced in the 1.7.0 release.

#### 🐛 Fixed
* Fatal error on the Save feed settings page.

= 1.7.0 on March 12, 2026 =

This update adds scheduled exports with flexible run intervals, reorganizes feed settings into a tabbed interface, and includes several bug fixes.

#### 🚀 Added
* Scheduled exports for Save feeds, with support for hourly, twice daily, daily, weekly, or custom intervals.

#### ✨ Improved
* Feed settings reorganized into a tabbed interface for both Save and Filter add-ons, making configuration easier to navigate.
* "Filter Settings" section renamed to "Conditional Logic" for clarity.

#### 🐛 Fixed
* Date range values not populated in the Filters feed Instant Download tab.

#### 💻 Developer Updates
* Added `gk/gravityexport/save/cron/completed` action, fired when a scheduled export completes successfully.
* Added `gk/gravityexport/save/cron/failed` action, fired when a scheduled export fails.

#### 🔧 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.12.0.

= 1.6.0 on December 4, 2025 =

This release adds major conditional logic improvements—including new comparison operators, merge tag support, and Date field options—and fixes feed-level settings not being applied during exports.

#### ✨ Improved
* Enhanced conditional logic:
  - Added ability to search fields by "does not contain";
  - Added predefined options (e.g., Today, Tomorrow, etc.) for Date fields;
  - Added support for using merge tags in text inputs;
  - Added automatic "Currently Logged-in User" options for Populate Anything fields using WordPress users as a source;
  - Added `is empty` and `is not empty` operators for the Created By field;
  - Fixed conditional logic not working with radio button fields and Survey field Likert scales;
  - Fixed errors when using Consent field sub-inputs in conditional logic;
  - Fixed comparisons failing when choice-based field values contain special characters (e.g., `>`, `<`, `&`, quotes);
  - Filters using `{user:}` and `{created_by:}` merge tags are now treated as no-match when the user is logged out;
  - Other fixes and improvements.

#### 🐛 Fixed
* PDF Settings CSS file is now only loaded on the GravityExport settings page instead of all admin pages.
* The Column Position setting in the Filter Add-On is now honored properly.
* Save feed Conditional Logic now works when manually triggering an export.

#### 💻 Developer Updates
* Added `gk/gravityexport/feature/show-html` filter to override the "Include HTML" export setting. This replaces the incorrect use of `gk/gravityexport/feature/remove-empty-columns` for this purpose.

#### 🔄 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.7.0.

= 1.5.0 on July 10, 2025 =

This release adds a new setting to define a custom slug for download URLs.

#### 🚀 Added
* Setting to configure a custom download slug.

= 1.4.6 on May 8, 2025 =

This update resolves a PHP notice in WordPress 6.8.

#### 🐛 Fixed
* PHP notice in WordPress 6.8 related to early product translation initialization.

#### 🔄 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.25.

= 1.4.5 on February 10, 2025 =

This hotfix resolves an issue affecting conditional logic in feed settings.

#### 🐛 Fixed
* A potential JavaScript conflict that could prevent conditional logic from being configured.

#### 🔧 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.23.

= 1.4.4 on December 12, 2024 =

This hotfix update addresses a fatal error related to duplicating forms with GravityExport feeds.

#### 🐛 Fixed
* Fatal error when duplicating forms configured with GravityExport Filter or Save feeds.

= 1.4.3 on December 9, 2024 =

This release resolves a critical issue affecting the duplication of GravityExport Save feeds and improves conditional logic functionality.

#### ✨ Improved
* Enhanced conditional logic:
  - Added ability to define custom filter values when using the `has ANY of` or `has ALL of` operators;
  - Added support for merge tag processing in filters with multiple values;
  - Fixed an issue where a missing filter value, when combined with the `has ANY of` or `has ALL of` operators, caused the user interface to break.

#### 🐛 Fixed
* Fatal error when duplicating a GravityExport Save feed.

#### 🔄 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.22.

= 1.4.2 on November 21, 2024 =

This release improves conditional logic and addresses a non-critical PHP notice in WordPress 6.7 and newer.

#### 🐛 Fixed
* PHP notice in WordPress 6.7 caused by initializing product translations too early.

#### ✨ Improved
* Enhanced conditional logic:
  - Added support for `is empty` and `is not empty` operators for fields with predefined choices;
  - Introduced a new option to specify a custom value for the `contains` operator when fields have predefined choices;
  - General bug fixes.

#### 🔄 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.21.

= 1.4.1 on October 14, 2024 =

This release fixes issues with Instant Download and PDF export formatting, and updates internal components.

#### 🐛 Fixed
* Instant Download not respecting date ranges if the Filters feed has conditional logic enabled.
* PDF export formatting issues when using GravityExport Lite 2.3.1.

#### 🔄 Updated
* [Foundation](https://www.gravitykit.com/foundation/) and [TrustedLogin](https://www.trustedlogin.com/) to versions 1.2.19 and 1.9.0, respectively.

= 1.4.0 on April 25, 2024 =

This release adds additional PDF export customization options, allows basic HTML in cells, improves conditional logic functionality, fixes an issue with GravityEdit, and updates internal components for better performance and compatibility.

#### 🚀 Added
* Global PDF customization options:
  - You can select various new san-serif and serif fonts.
  - Page number alignment can be set to left, center or right.
  - Add a header image (e.g., a company logo) to every page.
  - Embed uploaded images directly in the PDF rather than linking to them.
* Global setting to remove empty columns from CSV, XLSX, and PDF exports.
* Global setting to allow basic HTML in cells.
* Form-specific PDF settings:
  - Full control over the format of the page numbering.
  - Set row and text colors for headers and even/odd rows.
* Ability to nest conditional logic filters and to filter entries based on the current user's role(s).

#### 🐛 Fixed
* GravityExport Save feed interfering with GravityEdit.

#### 🔄 Updated
* [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.12:
  - Fixed a bug that hid third-party plugin updates on the Plugins and Updates pages.
  - Resolved a dependency management issue that incorrectly prompted for a Gravity Forms update before activating, installing, or updating GravityKit products.
  - Transients are now set and retrieved correctly when using object cache plugins.
  - Fixed a JavaScript warning that occurred when deactivating license keys and when viewing products without the necessary permissions.
  - Resolved PHP warning messages on the Plugins page.
  - Transients are no longer autoloaded and work correctly with object cache plugins.
  - GravityKit products that are already installed can now be activated without a valid license.
  - Fixed PHP warning messages that appeared when deactivating the last active product with Foundation installed.
  - Fixed a JavaScript warning that occurred when deactivating license keys.

#### 💻 Developer Updates
* Added `gk/gravityexport/save/action/save-feed` action to manually trigger a feed save.

= 1.3.3 on January 11, 2024 =

This release addresses user interface issues related to field settings and conditional logic.

#### 🐛 Fixed
* PHP warning messages that interfered with sorting and including or excluding form fields from the export file.
* The "Form field ID #X is no longer available" error encountered when adding conditional logic, even though the field existed.

= 1.3.2 on December 19, 2023 =

* Fixed: Issue causing unexpected changes in export folder permissions.
* Fixed: Conditional logic in GravityExport feeds causes a fatal error if GravityView is not installed.

= 1.3.1 on December 12, 2023 =

* Fixed: GravityExport feeds now correctly handle relative dates (e.g., "today", "yesterday") in conditional logic configured for date fields.
* Fixed: Issue with GravityExport Save feeds ignoring conditional logic filters.

= 1.3.0 on December 7, 2023 =

* Added: New option that allows uploading all files associated with the exported entry.
* Enhanced: Ability to use merge tags in the upload destination folder name (e.g., `/your/path/{form_id}/`).
* Fixed: Issue where FTP failed to automatically create the missing destination folder during file copying.
* Fixed: Date picker not working in Conditional Logic.
* Fixed: Page numbers and headers not being set on the PDF.
* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.6.

= 1.2.0 on September 25, 2023 =

* Added: Setting to trigger Save feeds when an entry is updated.
* Fixed: Issue that could cause connection problems when trying to access Dropbox.
* Fixed: Save feed not properly reading GravityExport Lite feed settings.
* Updated: Compatibility with GravityExport Lite 2.1.0 or newer.
* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.4.

= 1.1.7 on September 7, 2023 =

* Improved: Support for RTL languages
* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.2.2.

= 1.1.6 on July 12, 2023 =

* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.1.1.

__Developer Updates:__

* Added: `gk/gravityexport/save/exported/entry` and `gk/gravityexport/save/exported/manual` actions fired when an export is triggered either manually or by a new entry.

= 1.1.5 on June 21, 2023 =

* Fixed: Fatal error when exporting entries to PDF.

= 1.1.4 on June 19, 2023 =

* Fixed: Fatal error when accessing feed settings.
* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.1.

= 1.1.3 on June 13, 2023 =

* Fixed: Incompatibility with some plugins/themes that use Laravel components.
* Enhanced: Added default setting for splitting multiple rows under GravityKit > Settings > GravityExport.
* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.0.12.

= 1.1.2 on February 20, 2023 =

* Fixed: "Greater than" and "less than" comparison not working with the "Total" field in the Filters and Save feeds' conditional logic.
* Enhanced: Shows warning when trying to connect to Dropbox without an SSL connection.
* Updated: [Foundation](https://www.gravitykit.com/foundation/) to version 1.0.9.

= 1.1.1 on January 31, 2023 =

* Fixed: Fatal error when creating a new Filter feed or accessing a download link in GravityExport Lite.

= 1.1 on January 30, 2023 =

* Added: It is now possible to [trigger Save feeds on a schedule](https://docs.gravitykit.com/article/907-trigger-manual-export) using automated "cron jobs".
* ⚠️ Modified: **There is a new way to connect to Dropbox**!
    * Dropbox no longer grants long-life access tokens; this fixes issues where access tokens stopped working.
    * To reconnect to Dropbox, go to the GravityKit menu, click on Settings, click on the GravityExport tab, then click on the "Connect to Dropbox" button.
* Improved: You can now [re-run "Save" feeds directly from the feed list](https://docs.gravitykit.com/article/908-reprocess-gravityexport-feed).
* Improved: Generated files will be removed from the server after they have been uploaded to FTP or Dropbox.
* Fixed: Date and time in filenames will now be set based on the WordPress timezone setting, instead of UTC (Coordinated Universal Time).

= 1.0.9 on January 9, 2023 =

* Fixed: URL filters were not being applied to "Quick Save" exports inside the Filters add-on.

= 1.0.8 on February 23, 2022 =

* Fixed: Conditional logic for Save feed would only work in WP admin panel.

__Developer Updates:__

* Added: `gk/gravityexport/save/settings/ftp` filter to modify FTP connection options.

= 1.0.7 on January 28, 2022 =

* Tested with WordPress 5.9.
* Fixed: SFTP connection test would not work without a private key.

= 1.0.6 on December 29, 2021 =

* Fixed: Connection test could fail on Windows FTP servers even if everything was working fine.
* Fixed: Using Save feeds would result in a fatal error if the PHP's Fileinfo extension was not installed.
* Added: Download permissions for Filters feeds.
* Added: Option to duplicate Filters feeds.
* Improved: It is now possible to filter only those entries that have been updated since creation.

= 1.0.5 on October 25, 2021 =

* Fixed: GravityExport would not initialize if it happened to load before GravityExport Lite.
* Fixed: PDF files could not be fully styled.
* Fixed: Conditional logic options not showing if the form has a multi-input field (e.g., Address).

= 1.0.4 on September 30, 2021 =

* Fixed: Fatal error when other plugins are using the same libraries (e.g., [Guzzle](https://docs.guzzlephp.org/en/stable/)).

= 1.0.3 on September 21, 2021 =

* Fixed: Fatal error when using Gravity Forms ≤2.4.23.
	- We highly recommend upgrading to Gravity Forms >2.5.

= 1.0.2 on September 16, 2021 =

* Fixed: Test Connection button not working.

= 1.0.1 on September 10, 2021 =

* Fixed: Conditional logic options not showing in Filters and Save feeds

= 1.0 on September 9, 2021 =

* Launch!
* Italian translation by Far P. Thank you!
