### Fixed
- v1.7.5 migration did not complete when a database prefix other than `wp_` was used.
- Form Tags: incorrect links to filter by tags were generated right after saving tags.
### Added
- Form Tags: add tags to forms with an ability to filter by them; bulk add/edit/delete tags for multiple forms.
- Payment details stored in entries are now searchable.
- Display the status of the Lite Connect setting and the date-time when it was enabled (Tools > System Info).
- New `{unique_value}` smart tag.
### Changed
- The sodium library is now included in WordPress core, so we removed it from the plugin.
- Action Scheduler library was updated to 3.4.2 to fix deprecation notices with PHP 8.1.
- The jquery.validate library updated to 1.19.4.
- Conditional logic can now be applied to custom fields.
- Do not allow not completed Challenge to appear in the regular Form Builder.
### Fixed
- For some fields, their default values were not always previewed in the Form Builder.
- Regularly clean up additional information we store for each task we run within the plugin.
- No fatal error anymore in Allow/Deny email lists with very long or international emails.
- Correctly handle additional CSS classes for each WPForms block on the same page (Block Editor).
- Properly process survey field values when they were updated to become empty.
- Modals order was incorrect when the Lite Connect feature was enabled or disabled on mobile.
- Notification for the last step of the WPForms Challenge was not displayed on the Posts Page with the Gutenberg plugin.
- Some Form Templates could be empty upon fresh installation.
- Several minor issues in the Challenge flow are now fixed.
- Total value for items with a cost lower than 1 dollar was calculated incorrectly.
- Color Palette was not shown in the Form Builder for duplicated fields.
- Do not register Gutenberg block styles on the front end when no form is present on a page.
- Access Controls: Entries list showed all forms with the 'View Others Forms' capability.
- Form Builder exited automatically when a user with allowed permissions created a form.
- Limit the number of attempts to get the site key in Lite Connect.
- Multiple Items (Radio) choice showed "Empty" on a single entry page if a selected choice value is undefined/empty.
- Search results didn't show old abandoned and partial entries after the latest addon update.
- Entries Search on the Entries Table page was not fully cleared when a user cleared the search.
- Several issues were fixed with the ability to move certain fields (Page Break and Entry Preview).
- Elementor popup was not processing conditional logic on the initial load.
- Added focus state indication for admin tabs.
- Duplicated column name appeared in the columns configs on the Entries Table page when a user tried to change settings.
- Edit Entry: the Date field with a custom format was shown improperly.
- GDPR sub-settings remained enabled if GDPR is disabled and sub-setting was left enabled.
- Duplicate/Trash form actions did not work after sorting forms by Name, Author, or Created Date.
- Improved styling of the warning/loading message for the Modern File Upload field.
- Notices appeared in the debug.log when the user created a Custom Template and used it in the Form Builder.
- Entries Overview: search attributes were removed when searching for an empty HTML tag.
- Empty license was shown improperly in some cases inside the Site Health.
- Fatal error on PHP 8 after a PayPal payment.
- hCaptcha pointer had a weird thick dark border since WordPress 6.0.
- Check GDPR settings before trying to use a cookie.
### Changed
- DOMPurify library updated to 2.3.8.
### Fixed
- LiteConnect auth key request didn't work with plain permalinks and with subdirectory install.
- Do not display the import entries notice if the license key is not valid.
- Improved Form Locations compatibility with the Full Site Editor template parts.
### Added
- Form Locations! On the Forms Overview page easily check all places where each form is currently embedded.
- Back up form submissions into the cloud and restore them to your database as Entries after upgrading to a paid plan.
- New `{entry_details_url}` smart tag.
### Changed
- Improved text wrapping of field labels and descriptions.
- Each smart tag inserted by a user in the Form Builder will now be placed as the last one in relevant inputs.
- Show error message during Entry Export if some error occurs.
- Admin dashboard widget can now change the color scheme and graph style.
- The input field in the Form Embed wizard popup in the Form Builder is now focused by default.
- Updated DOMPurify lib to 2.3.6.
### Fixed
- Adding Entry Preview field after visiting the Revisions panel.
- Search result was not reset when the user clicked "x" sign in the search field on the Addons page.
- Strength validation was failing when the Password field was empty and not required.
- Entry Preview field didn't show fields with an input value of `0`.
- Some fields' `0` value was shown as empty on Edit Entry and Print pages.
- Form's Entries page unread/read and starred/unstarred notices were behaving incorrectly.
- Entry values weren't exported (.xlsx) if form fields had the same label.
- Entry export didn't work for non-admins with 'View Entries' access.
- Error occurred when the user clicked on the Export Entries download link.
- Configurations on the Payments tab in the Form Builder were not previewed when a user was previewing form revisions.
- Dynamic choices were not prefilling values for the Multiple Choice field on the Edit Entry page.
- Plugin data should not be deleted when Lite was deleted, and Pro is still active.
- The form could be saved while still adding a field, but it should not.
- Improved compatibility with Elementor popups.
- Cleaned up deprecation notice for `_register_controls()` with recent Elementor versions.
### Fixed
- Compatibility with current versions of the User Journey and Form Locker addons.
### Fixed
- Compatibility with PHP 8.0 and PHP 8.1.
- Compatibility with WordPress 5.9, including its new Full Site Editing feature.
- Broken cache directory path if `WP_CONTENT_DIR` is set in the `wp-config.php` without trailing slash.
- PHP Notice when using the `wpforms_log()` function in certain conditions.
- Type mismatch brakes a list of scheduled actions in Action Scheduler if typed arguments are passed.
## Fixed
- Uploads via Modern File Upload field fail if `ext-fileinfo` PHP extension is disabled.
- File Upload field not storing the upload with Conditional Logic configured in certain ways.
- Edge case when form tokens (anti-spam protection) failed verification at certain time of a new day.