=== Gravity PDF === Contributors: blue-liquid-designs Plugin URI: https://gravitypdf.com/ Donate link: https://gravitypdf.com/donate-to-plugin/ Tags: gravity forms, form, contact form, pdf, email Requires at least: 5.3 Tested up to: 6.6 Stable tag: 6.11.3 Requires PHP: 7.3 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl.txt Automatically generate, email and download PDF documents with Gravity Forms and Gravity PDF. == Description == **Gravity PDF is the ultimate self-hosted solution for dynamically creating PDF documents using Gravity Forms and WordPress.** = Highly Customizable PDFs = Out of the box you get four highly-customizable PDF designs. Within minutes, you can personalize the look and feel by adding your company logo, header, footer, paper size / orientation, font, color and size. If the free designs don't suit, select from our range of templates in the [Template Shop](https://gravitypdf.com/store/#templates), [go bespoke and have a template build by our team](https://gravitypdf.com/bespoke/), or [build your own using HTML/CSS/PHP](https://docs.gravitypdf.com/v6/developers/start-customising). = Send as Email Attachment = Gravity PDF can automatically email the PDF to both the admin and the user as soon as the form is completed. You can combine this feature with a Gravity Forms payment add-on [to sell personalized reports, gift certificates, or generate PDF invoices](https://gravitypdf.com/news/sell-personalized-pdf-documents-using-gravity-forms/). = Privacy, Security, and GDPR = Gravity PDF generates PDFs on your web server, and no third-party service receives your sensitive Gravity Forms entry data. [Robust security protects your documents](https://docs.gravitypdf.com/v6/users/pdf-security), and [the plugin is GDPR-compliant](https://docs.gravitypdf.com/v6/users/gdpr-and-gravity-pdf) for our European friends. > Digital document management with WordPress and Gravity Forms just became simple with Gravity PDF! = Free Feature = * **Unlimited Use, No Restrictions** – There are zero hard limits to the number of PDFs you can configure across all your forms or generate on your entries. Gravity PDF does **NOT** stamp documents with our logo, limit the number of PDFs you can create per month, or purposefully restrict essential functionality to force you to upgrade to a paid plan. * **Privacy and Security** - your form data is never sent to a third party to generate the PDFs and the documents are generated directly on your web server. [Strong access control policies are put in place](https://docs.gravitypdf.com/v6/users/pdf-security#default-security) to prevent unauthenticated access to your PDFs. * **Multilingual** – a multitude of languages from across the globe can be displayed in PDFs, include complex scripts like Hebrew, Arabic, Thai, Japanese, Chinese, and Korean. * **Additional Fonts** – match your branding and enhance the overall look and feel of PDFs by install your own fonts. * **Columns** – use [Drag and Drop columns](https://docs.gravityforms.com/working-with-columns/) in Gravity Forms and [PDFs will automatically mimic that layout](https://docs.gravitypdf.com/v6/users/columns). * **Shortcode and Merge Tags** – You can generate a link or URL to PDFs [using both shortcodes and merge tags](https://docs.gravitypdf.com/v6/users/shortcodes-and-mergetags) so your users can download the PDF right after form submission. * **Export Entries** – include the direct link to any PDF(s) when [exporting your form entries](https://docs.gravitypdf.com/v6/users/include-pdfs-in-entry-export) * **Webhooks Add-on** – [send the direct PDF link with Webhook requests](https://docs.gravitypdf.com/v6/users/webhooks-support) when using Gravity Forms Webhooks add-on. * **Gravity Flow** – create complex workflows [using Gravity Flow](https://gravityflow.io) and automatically email Gravity PDF-generated documents at any step in the workflow. * **GravityView** – add links to PDFs when building a members area [using GravityView](https://gravityview.co) + [Advanced Filtering add-on](https://gravityview.co/extensions/advanced-filter/). * **Background Processing** – generating PDFs on form submission can be time consuming. [Offload it to a background process](https://docs.gravitypdf.com/v6/users/background-processing) will ensure form submissions are processed faster. * **Design PDFs** – developers can build their own PDF templates using HTML, CSS, and PHP [with the help of our developer documentation](https://docs.gravitypdf.com/v6/developers/start-customising). * **Documentation and Support** – there is [extensive documentation](https://docs.gravitypdf.com/v6/users/five-minute-install) covering every feature of Gravity PDF that you can comb through, plus we provide [free general support to all users](https://gravitypdf.com/support/). = Unlock More Functionality = Pay for additional PDF designs and functionality [from our online store](https://gravitypdf.com/store/). * **New Designs** – get access to 9 additional universal designs, 6 certificates, 6 invoices, and 3 letter styles * **Additional customizations** – watermark PDFs with your own logo or text, control fields that should be displayed per PDF, add field descriptions, display all checkbox or radio field options, add notes, show field values instead of labels, and hide the product table * **On-screen Preview** – allow users to preview the PDF before form submission (and optionally payment) so they can see what the end result will be. This is a great feature for capturing e-signatures, selling PDF reports / certificates / gift cards, or providing an on-screen proof before the PDF is sent to the printers (perfect for business cards). * **Bulk Download** - search, filter, and select entries and then zip up all your PDFs and download all together in a convenient zip file * **Smart Loading Indicator** - improve the UX for your users when generating complex PDFs that take time to create. * **GravityView** - turn [GravityView](https://www.gravitykit.com/products/gravityview/) into a drag-and-drop PDF builder for your Single Entry View Layouts. * **GFChart** - create PDF reports that display pie, bar, or column charts with aggregate Gravity Forms data [using GFChart](https://gfchart.com). * **30-Day Refund Guarantee** – Purchase with confidence knowing when you buy a product from our store that you can get a refund within 30 days, for any reason. = Hire the Experts = Need a tailor-made solution for Gravity PDF that solves complex business problems? Our team of experienced developers have helped thousands of businesses like yours to accomplish these goals. We can even fill existing PDFs like government forms, without sending your sensitive entry data to a third-party server! [Find out more](https://gravitypdf.com/bespoke/). = Documentation & Support = [We have extensive documentation on using Gravity PDF](https://docs.gravitypdf.com/v6/users/five-minute-install/), and our friendly support team provides [FREE basic support via GravityPDF.com](https://gravitypdf.com/support/#contact-support) (we do respond [to questions in forums](https://wordpress.org/support/plugin/gravity-forms-pdf-extended/), but give priority to our support portal). = Contribute = All development for Gravity PDF [is handled via GitHub](https://github.com/GravityPDF/gravity-pdf/). Opening new issues or submitting a pull request is welcome. Keep up to date with Gravity PDF by [subscribing to the newsletter](https://gravitypdf.com/signup/), [following us on Twitter/X](https://twitter.com/gravitypdf), [subscribing to our YouTube channel](https://www.youtube.com/gravitypdf), and [liking us on Facebook](https://www.facebook.com/gravitypdf). If you enjoy using the software [we'd love it if you could give us a review!](https://wordpress.org/support/view/plugin-reviews/gravity-forms-pdf-extended) == Installation == Gravity PDF can be run on most modern shared web hosting without any issues. It requires **PHP 7.3+** and at least 128MB of WP Memory. You'll also need to be running WordPress 5.3+ and have [Gravity Forms 2.5+](https://rocketgenius.pxf.io/c/1211356/445235/7938) (affiliate link). [You'll find detailed installation instructions at docs.gravitypdf.com](https://docs.gravitypdf.com/v6/users/five-minute-install). **Disclaimers** * When you activate Gravity PDF on your website and Gravity Forms isn't installed a notice will be displayed in the admin area that includes an affiliate link to the Gravity Forms website. * After activating the plugin you will be prompted to [run the Core Font Installation tool](https://docs.gravitypdf.com/v6/users/core-pdf-fonts) so Gravity PDF can function correctly. This tool will download the fonts [from a public _GitHub_ repository (maintained by Gravity PDF)](https://github.com/gravityPDF/mpdf-core-fonts). For further information about _GitHub_ you can refer to their [Terms of Service](https://docs.github.com/en/site-policy/github-terms/github-terms-of-service) and/or [Privacy Statement](https://docs.github.com/en/site-policy/privacy-policies/github-privacy-statement#the-short-version). * [A Help page is provided in the plugin's settings](https://docs.gravitypdf.com/v6/users/global-settings#help-tab) with an instant search feature [of the Gravity PDF documentation](https://docs.gravitypdf.com/v6/users/five-minute-install/), and the search is powered by _Algolia_. For further information about _Algolia_ you can refer to their [Terms of Service](https://www.algolia.com/policies/terms/) and/or [Privacy Statement](https://www.algolia.com/policies/privacy/). == Screenshots == 1. Select various PDF templates (designs), attach to Notification emails, give a unique filename using merge tags, and apply conditional logic to the PDF 2. Control the paper size, orientation, font, size, and color, and whether to layout the document in RTL mode 3. Each template (design) has unique settings that allow you to change the appearance. Common settings include: Header, Footer, Background Color and Image, display HTML Fields, the Form Title, and enable Conditional Logic for the fields. 4. Password protect PDFs, format the PDF for long-term archiving (PDF/A-1b) or printing (PDFX-1a), and adjust the access control policies. 5. Zadani is a minimalist business-style PDF design that will generate a well-spaced document great for printing. 6. Rubix uses stylish containers to create an aesthetically pleasing PDF design. 7. Focus Gravity providing a classic layout which epitomises Gravity Forms Print Preview. It’s the familiar layout you’ve come to love in PDF format. 8. Blank Slate provides a print-friendly PDF design focused solely on the user-submitted data. 9. View individual PDFs on Gravity Forms Entry List page. 10. A flyout menu is shown when multiple PDFs are configured on a form when viewing on the Entry List page. 11. View or Download PDFs on the Gravity Forms Entry Details page from the _PDFs_ metabox. 12. The Font Manager allows you to add, update, search, select, and delete custom fonts for use with Gravity PDF. 13. Design your own PDF templates and install via the PDF Template Manager. Or purchase a design from our online store. 14. Get detailed info about the state of Gravity PDF on your site from Gravity Forms System Status page 15. Easily uninstall and delete all Gravity PDF data from your website 16. A bunch of paid PDF designs are available, as well as additional functionality. == Changelog == = 6.11.3 = * Bug: Fix truncated merge tags in HTML attribute when included in PDF setting Rich Text fields = 6.11.2 = * Bug: Resolve race condition by skipping PDF cleanup at the end of form submission process if PDF Background Processing is enabled * Bug: Fix issue where some Notifications with PDFs attached were not being handled in a background task when PDF Background Processing is enabled = 6.11.1 = * Bug: Only process enabled notifications during form submission when using PDF Background Processing. Notifications are enabled if they are active and have conditional logic that passes. = 6.11.0 = * Housekeeping: Limit pages admin notices are displayed on to reduce notice fatigue * Housekeeping: Add specific check for the PHP extension `Ctype` when the plugin loads * Housekeeping: Tweak admin notice text to make error messages more clear * Housekeeping: Remove downgrade notice to unsupported Gravity PDF v5.0 if minimum system requirements are not met for v6.0 * Housekeeping: Improve log messages when creating and validating a Signed PDF URL * Housekeeping: Improve input sanitation for textarea, number, and custom paper size fields when saving the PDF Form Settings * Housekeeping: Improve PDF Background Processing so its compatible with Gravity Forms native async notification feature * Housekeeping: Correctly cleanup PDFs after a PDF Background Processing queue runs * Bug: Enforce a 1pt minimum value for the Default Font Size and Font Size settings * Bug: Self-heal the PDF signing secret key if it becomes invalid * Bug: Self-heal the Global PDF Settings if it becomes invalid * Bug: Prevent the page reloading when selecting a tooltip on PDF settings pages * Bug: Register language files early so startup errors can be translated = 6.10.2 = * Bug: Hydrate Nested Forms with Gravity Wiz Populate Anything data = 6.10.1 = * Bug: Resolve PHP error when processing shortcode with invalid entry object * Bug: Adhere to conditional logic and exclude CSS class for Page Break fields * Bug: In more situations the Gravity PDF settings will be refreshed before the form meta is saved to the database * Housekeeping: Run temporary directory cleanup routine twice daily and delete files older than 12 hours * Housekeeping: Add gfpdf_system_status_report_items filter for Gravity PDF System Status report details * Housekeeping: Update mPDF to latest version * Housekeeping: Allow supported HTML in field labels when displayed in PDF = 6.10.0 = * Feature: Add native support for the Legal Signature and Legal Consent form fields added by the Legal Signing for Gravity Forms plugin = 6.9.1 = * Security: Disable the Signed URL feature in the [gravitypdf] shortcode when a URL parameter provides the entry ID (e.g. Page Confirmations) * Bug: Gracefully handle invalid conditional logic rules when adding date entry meta support * Bug: Display field for entry metadata PDF conditional rule when there are no form fields compatible with conditional logic * Bug: Ensure the template cache is correctly cleared when PDF Debug Mode is enabled * Bug: Flush the template cache after installing new templates via the PDF Template Manager * Bug: Clear template cache when plugin deactivated * Housekeeping: Small improvement to performance when reading template and font files from disk = 6.9.0 = * Feature: Add new conditional logic options to PDFs eg. Payment Status, Date Created, Starred (props: Gravity Wiz) * Feature: Add support for Show HTML Fields, Show Empty Fields, Show Section Break Description, and Enable Conditional Logic PDF settings when displaying Gravity Wiz Nested Forms field * Bug: Fix Form Editor saving problem for Gravity Forms v2.6.* * Bug: Fix Drag and Drop Column layout issue when the GF Styles Pro plugin is enabled * Bug: Fix issue sending PDF URLs with Gravity Wiz Google Sheets * Bug: Improve display of Rich Text Textarea fields by removing top margin on individual paragraphs * Bug: Resolve compatibility issue that corrupted PDFs when using Weglot * Housekeeping: Exclude popular WordPress staging environments from site count when activating Gravity PDF licenses * Housekeeping: Improve Gravity PDF license activation success and error messages * Security: Improve security of network requests to Gravity PDF licensing server * Developer: Add `set_pdf_config( $config )` and `get_pdf_config()` methods to PDF Field classes * Developer: In the PDF field blacklist, check using the original type and not with `$field->get_input_type()` = 6.8.0 = * Feature: Add PDF Download metabox to Gravity Flow Inbox for logged-in users with appropriate capability * Feature: Add AI-generated translations for French, Spanish, Italian, German, Dutch, Russian, and Chinese * Security: Only show PDF view/download links on entry list and details page if logged-in user has appropriate capability * Housekeeping: Improve performance on admin pages by caching the list of available templates * Housekeeping: When permalinks are enabled, generate the PDF URL with/without a trailing slash * Bug: Remove whitespace from textarea fields in the PDF settings = 6.7.4 = * Bug: Resolve PHP error for specific GravityView / GravityChart combo * Bug: Render supported HTML in labels/choices for the PDF Pricing table * Bug: Fix PHP error while viewing a PDF when running an older version of WordPress (< 5.9) and PHP (< 8.0) = 6.7.3 = * Bug: Fix 3rd party conflict when different version of PSR-7 library is loaded = 6.7.2 = * Bug: Resolve fatal error when using Gravity Forms Google Analytics Pagination feature with the PDF URL included in the parameters. * Housekeeping: Update PDF library to latest version * Housekeeping: Update help search API details = 6.7.1 = * Bug: Improve dependency conflicts with third party plugins who bundle PSR Log v2 or v3 * Housekeeping: Use 4xx HTTP Status Codes for non-server related errors when generating PDFs = 6.7.0 = * Feature: Add support for multiple PDFs with the same Filename on a single form * Feature: Use secure links for File Upload and Post Image fields in Core and Universal PDFs * Dev Feature: Include secure links in $form_data array for File Upload and Post Image fields * Bug: Fix backwards compatibility error when running a version of Gravity Forms less that 2.6 * Bug: Allow sanitized HTML in the labels of Radio and Checkbox admin settings * Bug: Remain editing current PDF if a hard refresh occurs after adding a new PDF to the form = 6.6.1 = * Bug: Prevent PDF settings being override if multiple browser windows are open, and both are updating different settings of the same form concurrently * Bug: Gracefully handle license key deactivation if an error occurs * Housekeeping: Bump WordPress Tested Up To v6.3 = 6.6.0 = * Feature: Improve display of ungrouped product fields in Core and Universal templates * Dev Feature: Add `gfpdf_hide_consent_field_if_empty` filter, to remove the Consent field from Core and Universal templates if a user hasn't consented. * Bug: Remove Section Break description container is there is not a description included * Bug: Fix potential PHP error when using GravityView and PDF for GravityView * Housekeeping: Update PHP and JS dependencies = 6.5.5 = * Bug: Ensure PDF conditional logic is run through the correct sanitization function upon save * Bug: Ensure Gravity Wiz Populate Anything live merge tags are correctly processed in the $form_data array * Bug: Fix Monolog error when running PHP8.1 = 6.5.4 = * Bug: Fix duplicate notifications when using PDF Background Processing while looping over GFAPI::submit_form() = 6.5.3 = * Bug: Fix HTTP(S) image/stylesheet loading problem in PDFs for SiteGround customers = 6.5.2 = * Bug: Fix PHP error when a non-string is passed to the Kses sanitizing class * Bug: Resolve memory problem generating Core PDFs if an HTML element contains more than 10+ classes (field CSS Classes are now truncated to 8 user-defined classes) * Bug: Fix Slim Image Cropper display problems in Core PDFs * Housekeeping: Update mPDF to the latest version * Housekeeping: Update QueryPath to the latest version = 6.5.1 = * Housekeeping: Update mPDF to the latest version * Bug: Resolve custom font installation issue for some .ttf files = 6.5.0 = * Housekeeping: Update Global Extension Settings UI to be Gravity Forms 2.5 compatible * Housekeeping: Adjust how admin Notices are handled on Gravity PDF pages * Housekeeping: Update JavaScript package bundle * Dev: Validate template filename when uploading via the PDF Template Manager (A-Za-z0-9_-) * Dev: Add filterable CSS class names to the PDF links in the admin area * Dev: Pass context to the `gfpdf_core_template` hook * Dev: Add `gfpdf_core_template_{form_id}` hook to target specific forms * Bug: Fix undefined `rtl` notice in Core PDF templates * Bug: Fix PHP8.1 notice when saving PDF settings = 6.4.7 = * Bug: Resolve blank PDF problem when a large HTML block is processed by mPDF * Bug: Resolve QueryPath deprecation notice about passing null to trim() * Housekeeping: Update mPDF and URL Signer library to latest version = 6.4.6 = * Bug: Adjust Nested Forms and Repeater field PDF markup to ensure a unique ID attribute for any HTML tags * Bug: Prevent duplicate grid css classes being added to Nested Forms HTML tags * Bug: Process merge tags in Background Image PDF setting before late escaping in the PDF HTML markup * Housekeeping: Remove initialized message from Gravity PDF logs = 6.4.5 = * Bug: Fix image display problem if filename had a space in it * Bug: Fix Background Image display problem on Windows OS * Developer: Added HTML field content to Repeater Field $form_data array = 6.4.4 = * Bug: Resolve HTML encoding issue in PDF when displaying Coupon field in Gravity Wiz eCommerce Perk's Product Table * Bug: Remove coupon line item in PDF when Gravity Wiz eCommerce Perk's Product Table in use * Bug: Resolve duplicate product table displayed in a legacy v3 template * Bug: Resolve PHP notice when displaying product table in legacy v3 template * Bug: Resolve PHP notice when displaying Section Break field in legacy v3 template = 6.4.3 = * Bug: Open PDF "view" link in a new browser tab on Entry List page * Bug: Only hide Select field in Core/Universal templates if the saved value is an empty string, not a falsey value * Bug: Prevent PHP notice when displaying Repeater field in PDFs with a Number sub-field * Bug: Prevent HTML attribute content from having their entities decoded if they were previously encoded * Bug: Fix Core/Universal template image display issues on servers running Windows = 6.4.2 = * Bug: Allow `data` protocol so Base 64-encoded images can be correctly displayed in Core/Universal templates * Bug: Fix Core Font Installer problem when running older versions of WordPress (5.3 to 5.8) * Bug: Fix fatal return type mismatch error if `safe_style_css` filter has been implemented incorrectly = 6.4.1 = * Bug: Fix PDF display issues with the Survey, Poll, Post Category, and Post Custom Fields = 6.4.0 = * Security (Hardening): Move from early escaping to late escaping variables on output * Security (Hardening): Add additional validation checks to the Core Font installer * Security (Hardening): Escape text returned from WordPress l10n functions * Security (Hardening): Escape any and all strings from the Gravity Forms form object, in any context (including PDFs) * Security (Hardening): Move to earlier sanitizing of user input * Security (Hardening): Custom PDF template filenames are now limited to the following characters: `A-Za-z0-9_-` * Security (Hardening): The `?html=1` and `?data=1` developer helper parameters now only work in non-production environments (`WP_ENVIRONMENT_TYPE !== 'production'`), or when Gravity PDF Debug Mode is explicitly enabled * Security (Hardening): Prevent directory traversal when loading the various Gravity PDF UI components * Security (Hardening): Change PDF Form Settings capability check from `gravityforms_edit_settings` to `gravityforms_edit_forms` * Security (Hardening): Change Font Manager CRUD capability check from `gravityforms_view_entries` to `gravityforms_edit_forms` * Security (Hardening): Switch to `sodium_crypto_secretbox_keygen()` function with modified fallback to `wp_generate_password()` when generating new PDF URL signing secret key * Security (Hardening): Switch from a Text to Password field for the Gravity PDF License Keys * Security (Hardening): Update PHP and JavaScript dependencies * Developer: Added `\GFPDF\Statics\Kses::output($html)` and `\GFPDF\Statics\Kses::parse($html)` methods for use with escaping/sanitizing HTML in PDFs (as an alternative to wp_kses_post()). * Performance: Register JavaScript in the footer on Gravity PDF admin pages * Privacy: Added "Get more info" link in the Core Font Installer instructions, and disclaimer to plugin's README.txt installation section * Bug: Fix issue passing PDF URL to Gravity Forms Mailchimp add-on * Bug: Allow hyphen in custom font key when updating or deleting to remain backwards compatible * Bug: Fix PHP8.1 type conversion warning in the template cache when transient's are flushed * Bug: Remove empty repeater sections from Core PDFs when not filled in by the user = 6.3.1 = * Security: Prevent potential XSS attack by escaping URL returned from add_query_args() on the PDF List or PDF Form Settings pages * Developer: Apply `gfpdf_current_form_object` filter added in 6.3.0 to the form object in Helper_Abstract_Fields.php using the $type `helper_abstract_fields`. * Bug: Correctly display the file path in the logs when cleaning up PDFs from disk or flushing the mPDF cache * Performance: reduce I/O operations when flushing the mPDF cache by excluding the top-level directory = 6.3.0 = * Feature: Support for mapping PDF URLs to your favorite services using Gravity Forms feeds. This includes (but is not limited to): PayPal, MailChimp, HubSpot, Stripe, Square, ActiveCampaign, Agile CRM, Capsule, CleverReach, Constant Contact, EmailOctopus, Zoho CRM * Feature: Support for the Zapier add-on: PDF URLs can now be passed to your zaps * Feature: Add [gravitypdf] shortcode rendering support to Gravity Wiz's Entry Block perk * Housekeeping: Change "document" icon used for settings menus to the "Gravity PDF" icon * Housekeeping: duplicating PDFs on a form will now have the correct alternating background color in the table * Housekeeping: Process the [gravitypdf] shortcode when merge tags get processed so that it can be used where ever merge tags are supported * Developer: Add new `gfpdf_current_form_object` filter to manipulate the $form array when processing PDFs * Bug: Fix a race condition when using Background Processing that could see the PDF deleted before being attached to notifications * Bug: Do not strip the backslash character when used in PDF settings = 6.2.1 = * Bug: Always generate a new PDF when using the GPDFAPI::create_pdf() method * Bug: Fix fatal error during PDF generation when using the `gform_address_display_format` filter = 6.2.0 = * Feature: Add support for Gravity Forms 2.6 (see Housekeeping below) * Housekeeping: Add alternate background color on PDF List page * Housekeeping: Add styles/support for new merge tag selector * Housekeeping: Add styles for Copy to Clipboard shortcode button on PDF List page * Housekeeping: Update help search API to query v6 documentation * Bug: Fix error message display issue on Form PDF add/edit page * Bug: Fix missing styles on multi-PDF view/download menu on Entry List page = 6.1.1 = * Bug: Allow number field to show a thousand separator by using the 'gform_include_thousands_sep_pre_format_number' filter. * Bug: Fix PHP Notice when displaying Repeater field caused by processing field's not present in `$form_data['field']` array key * Housekeeping: Add logging to file/directory cleanup method * Housekeeping: Add additional checks and logging when processing background tasks = 6.1.0 = * Feature: Add Copy to Clipboard feature for PDF Shortcode on the PDF List page * Bug: Fix empty check on the Radio field so a zero (0) value is not considered empty = 6.0.3 = * Bug: Reduce the Focus Gravity template column widths by a fraction to prevent edge-case display issues (props Hiwire Creative) * Bug: Fix Help page results text encoding problems * Bug: Prevent multiple font files being uploaded to a single dropzone * Bug: When checking if a Radio/Select field is empty in the PDF context, only look at the value property. = 6.0.2 = * Bug: Fix up 404 link for Outdated Templates in System Status * Bug: Revert vendor aliasing for mPDF and querypath (back to the original namespace) as it caused more problems than is solved. Developers: see https://docs.gravitypdf.com/v6/users/v5-to-v6-migration#changed-namespace-for-composer-packages = 6.0.1 = * Bug: When displaying the minimum Gravity Forms version not met error, remove `beta-1` as the minimum to prevent confusion. = 6.0.0 = This major release is designed specifically for Gravity Forms 2.5+ and includes breaking pages that may affect you. You are strongly encouraged to [review the upgrade guide before attempting to update to v6](https://docs.gravitypdf.com/v6/users/v5-to-v6-migration). = BREAKING CHANGES = * New minimum requirements PHP7.3+, WordPress 5.3+, Gravity Forms 2.5+ * Removed Gravity PDF v3 template stylesheet (swap legacy PDF template to Focus Gravity template) * Removed Gravity PDF v3 to v4 migration code (upgrade to v4/v5 before attempting v6 upgrade) * (Dev) Moved all vendor (Packagist) packages to new `GFPDF_Vendor/` namespace (BC aliasing for common classes included). Prevents all vendor conflicts with other plugins. * (Dev) Removed "Setup Custom Templates" tool (manually copy over template files to PDF Working Directory) * (Dev) Removed `shortname` property from `custom_fonts` global PDF options, and removed the requirement for the `font_name` to be unique (use `id` instead of `shortname`). * (Dev) Changed the first parameter $font_name in `GPDFAPI::delete_pdf_font()` to $font_id instead. You can no longer delete the font by its name, as it is no longer a unique identifier. * (Dev) Majority of admin user interface markup (UI) changed to suit new GF2.5 UI () * (Dev) Renamed `\GFPDF\Helper\Fields\Field_CreditCard` class to `Field_Creditcard` * (Dev) Change `\GFPDF\Model\Model_Install` __construct signature by removing `Helper_Abstract_Forms` dependancy from the start and adding `Model_Uninstall` at the end * (Dev) Change `\GFPDF\Model\Model_System_Report` __construct signature by adding new `Helper_Templates` dependancy at the end * (Dev) Removed `\GFPDF\View\View_Settings::system_status` method. Replaced by `Controller_|Model_|View_System_Report` classes for direct integration with Gravity Forms System Status page * (Dev) Removed undocumented `gfpdf_entry_detail_pre_container_markup` and `gfpdf_entry_detail_post_container_markup` actions * (Dev) Adjusted ID from `#tab_pdf` to `#tab_PDF` for container on Global PDF settings page. This ensures both the Global and Form PDF settings use a consistent ID. * (Dev) Change `\GFPDF\Model\Model_Install` __construct signature by removing `Helper_Abstract_Forms` dependancy from the start and adding `Model_Uninstall` at the end * (Dev) Change `\GFPDF\Model\Model_System_Report` __construct signature by adding new `Helper_Templates` dependancy at the end * (Dev) Removed `\GFPDF\View\View_Settings::system_status` method. Replaced by `Controller_|Model_|View_System_Report` classes for direct integration with Gravity Forms System Status page * (Dev) Removed undocumented `gfpdf_entry_detail_pre_container_markup` and `gfpdf_entry_detail_post_container_markup` actions * (Dev) Adjusted ID from `#tab_pdf` to `#tab_PDF` for container on Global PDF settings page. This ensures both the Global and Form PDF settings use a consistent ID. * (Dev) Deprecate Helper_Abstract_Options::get_font_short_name(). No direct replacement as the font 'shortname' has been phased out (using unique ID now). * (Dev) Updated field description markup to use DIVs instead of SPANs. Matches Gravity Forms RC1 * (Dev) Deprecate these methods from `\GFPDF\Model\Model_Install`: `uninstall_plugin`, `remove_plugin_options`, `remove_plugin_form_settings`, `remove_folder_structure`, `deactivate_plugin`. All moved to `Model_Uninstall`. = NEW FEATURES = * Brand new admin user interface (UI) to seamlessly match the Gravity Forms (GF) 2.5 UI. * Added support for new GF columns feature in Core PDFs * Add PDF column support for Gravity Perks Nested Forms * Added RTL support for new GF columns feature in Core PDFs * Refreshed Font Manager with better validation, error handling, and automatic support for fonts that include Open Type Layout features. * Added new PDF metabox on Entry Details page. Includes a better user experience for forms with a lot of PDFs configured. * Added new merge tag modifiers :download, :print, :signed, :signed:expiry to enhance existing PDF mergetag (modifiers can all be used in conjunction) * Add PDF URL to Webhook add-on "All Fields" request body * Add ability to include PDF URLs in Entry exports * Add Gravity PDF info to Gravity Forms System Status page * Show plugin downgrade prompt when minimum WordPress, Gravity Forms, or PHP requirements aren't met so users can easily roll back to the latest supported v5.x version. * Add support for WordPress' native Background Updates * Add accessibility improvements for keyboard users and screen readers on all Gravity PDF UIs * Display warning on System Status page when Core template overrides are out of date * Include Add/Update PDF button below each section on PDF creation page to make it easy to save * Improve RTL support on admin pages = UX IMPROVEMENTS = * Remove the Always Save PDF setting from the UI. * Switch all Radio PDF settings to new Toggle setting * Switch all Multiselect PDF settings to Checkbox field (better accessibility) * Rename PDF setting "Name" to "Label" * Replace asterisk `*` to text `(required)` to signify required fields (better accessibility) * Rename PDF setting "Orientation" to "Paper Orientation" * Refine PDF settings descriptions. * Removed Welcome Page * Move Paper Size global settings below the Template / Font settings * Removed rich Select functionality (using Chosen) in UI for greater accessibility * Remove WP Dialog prompts in UI for greater accessibility * Move Gravity PDF uninstaller from Tools tab to Gravity Forms Uninstall settings page = BUG FIXES = * Ignore `content-type` header API response when running the Core Font installer * Make all `GFPDFAPI` API class error responses translatable * Fix PHP8 notice * Prevent background queue from continuing if retry limit reached on unrecoverable task (like generating the PDF) * Adjust custom paper size sanitize logic to fix PHP error * Check for invalid relative date when using Signed PDF URLs and fallback to default timeout * Fix border display issue in Core Product table * Show error message in Template Manager when maximum file size limit is reached = DEVELOPER IMPROVEMENTS = * Rewritten all CSS in SASS * Add `GPDFAPI::get_entry_pdfs( $entry_id )` method to API. Acts like `GPDFAPI::get_form_pdfs( $form_id )` but filters out any PDFs that don't pass conditional logic checks for the current entry. * Added `Helper_Abstract_Config_Settings` class which template config files can extend to automatically have the current PDF settings injected into the class. * Adjusted some logged items to use less severe alerts (when template config file doesn't exist, and when native PDF support for a field doesn't exist) * Upgrade vendor packages to latest versions * Remove all backbone.js and underscore.js Font Manager code from Gravity PDF admin pages * Remove gulp as dependency (build is done using only webpack now) * Add better error log messages for PDF Merge tag processing * Pass additional information to the `gfpdf_field_container_class` filter See [CHANGELOG.txt](https://github.com/GravityPDF/gravity-pdf/blob/master/CHANGELOG.txt) for version 5/4/3 changelog history. == Upgrade Notice == = 6.0.2 = WARNING: Breaking changes! New minimum versions: PHP7.3+, WordPress 5.3+, Gravity Forms 2.5+. = 6.0.1 = WARNING: Breaking changes! New minimum versions: PHP7.3+, WordPress 5.3+, Gravity Forms 2.5+. = 6.0.0 = WARNING: Breaking changes! New minimum versions: PHP7.3+, WordPress 5.3+, Gravity Forms 2.5+. = 5.0.0 = WARNING: Breaking changes! New minimum versions: PHP5.6+, WordPress 4.8+, Gravity Forms 2.3.1+. = 4.2.0 = WARNING: The minimum WordPress version supported is now 4.4. = 4.0.4 = This patch fixes a PDF security by-passing issue. If you use the PDF Security settings update immediately. = 4.0.3 = The core PDF templates have been updated to version 1.1. If you've previously run the Custom Template Setup make sure you run it again to take advantage of the changes. = 4.0 = **WARNING**: This major release is not 100% backwards compatibile with v3. Review our upgrade guide AND do a full backup before proceeding with the update (https://goo.gl/htd6CK).