All Humans Are Welcome Here!

Changelog

2.11.1 – 2019 October 27

  • Fix – saving checkbox values for per-product options when unchecked

2.11 – 2019 October 25

  • Tweak – Amend AJAX font uploader to deal with symbolic fonts and non-unicode fonts best possible, adding filter hooks
  • Tweak – address array_map() second parameter null in tcpdf_fonts.php UTF8StringToArray() when odd characters
  • Tweak – save API license key when clicking Activate/Deactivate in order to prevent user frustration
  • Tweak – allow font sizes down to 1pt in settings (previously 6pt)
  • Feature – allow for altering PDF file permissions array using ‘wwpdf_set_permissions’ filter hook, details about options at https://tcpdf.org/examples/example_016/

2.10 – 2019 October 18

  • Feature: Easy AJAX font uploader (uploads TTF files) for watermarking with custom fonts via TCPDF (in beta). Once uploaded, are available to select amongst core fonts in WaterWoo settings, general and per-product.
  • Update tcpdi_parser.php and TCPDF files, including updates for PHP 7.4
  • Update Deja Vu Sans font included with WaterWoo to version 2.37
  • Fix: ‘woocommerce_product_file_download_path’ is a filter hook, not an action hook in class-wwpdf-file-handler.php
  • Fix: adjust PDF parser to accommodate PDFs with NUL characters in XREF, causing missing pages otherwise
  • Testing with WC 3.7.1

2.9.5 – 2019 October 10

  • Tweak – install new license API manager (Easy Digital Downloads “Sofware License”); your account information is now at web.little-package.com/account instead of web.little-package.com/my-account

2.9.4 – September 3, 2019

  • Update readme.txt and class-wwpdf-settings.php language – no longer waterwoo.me, moved to web.little-package.com
  • Testing with WC 3.7.0

2.9.3 – July 26, 2019

  • Update API server – no longer waterwoo.me
  • 2.9.2 – July 14 2019

    • Fix – remove PHP 5.2 bug fix that breaks PHP 7.3.4+ functioning in inc/tcpdf/include/tcpdf_fonts.php.
    • Tweak – /inc/tcpdi/tcpdi_parser.php property getXrefData() – runs 4-5x faster

    2.9.1 – June 17 2019

    • Fix – a PHP warning where empty parameter is string instead of integer because empty quotes in inc/tcpdf/tcpdf.php line 1971

    2.9 – June 4 2019

    • Feature – upgrade license API system to address broken/deprecated WooCommerce API Manager implementation
    • Fix – break instead of continue in line 1514 of WWPDF_TCPDF_Child class
    • Fix – check is_array before treating possible string as array in line 650 of WWPDF_Logging class

    2019.3.27 – 2.8

    • Feature – action hooks in class-wwpdf-file-handler.php to allow custom error handling
    • Fix – external links issue – not working with some PDFs

    2019.2.24 – 2.7

    *MASSIVE IMPROVEMENTS*

    • Feature – compatibility with Free Downloads WooCommerce (note: don’t use shortcodes if you don’t have matching incoming customer data)
    • Feature – upgrade to TCPDF version 6.2.26
    • Feature – several new filters, including ‘wwpdf_temp_dir’ and ‘wwpdf_timeout_extend’ in class-wwpdf-file-handler.php
    • Feature – PHP exceptions now caught and displayed to help with debugging
    • Feature – Settings option to serve file anyway – or die with error – when watermarking fails
    • Feature – logging for download, error, and license API events to help with troubleshooting and record-keeping
    • Feature – move license API settings to WooCommerce WaterWoo settings panel (keep it together!)
    • Feature – preserve original PDF metadata (title, author, creationdate, keywords, subject, and optionally producer [with boolean ‘wwpdf_overwrite_producer] hook)
    • Tweak – admin product meta box save process streamlined – sanitizing moved to admin end from watermarking end
    • Tweak – stop using BleedBox – unpredictable watermark placement.
    • Tweak – catch for if user chooses to watermark individual product but doesn’t actually set a watermark (blank overlay & footer)
    • Tweak – streamlining of wwpdf-file-handler methods wwpdf_file_download_path() and get_watermark_data()
    • Tweak – adjust HTTP timeout handling, new filter ‘wwpdf_timeout_extend’ available to keep WaterWoo timeout adjustments separate
    • Fix – hidden form fields prohibiting save in product meta box, JS fix: // https://stackoverflow.com/a/42304672/2112274
    • Fix – don’t use dependency injection in class-wwpdf-license-api.php register_activation_hook() (variables then not available… yet)
    • Fix – references to TCPDF sub-class corrected in inc/tcpdi/fdpf_tpl.php
    • Fix – settings labeling in product option page for form accessibility

    2018.11.4 – 2.6.2

    • Bug fix in TCPDF

    2018.11.1 – 2.6.1

    • Testing for compatibility with WooCommerce 3.5.1
    • Testing to Wordpress 5.0-beta2-43852
    • Fix – WaterWoo requires Woo version 3.0+

    2018.7.6 – 2.6

    • Feature/Fix – allow for X-Accel-Redirect/X-Sendfile downloads without using Force downloads as automatic fallback for WaterWoo
    • Fix – force unique names when files remain on server with original file name
    • Fix – count() PHP 7.2 compatible in tcpdi.php & tcpdi_parser.php
    • Fix – shortcodes in test feature
    • Tweak – remove legacy version updater (for versions pre-1.4) – obsolete

    2018.6.17 – 2.5

    • Fix – remove deprecated each() in TCPDF and TCPDI to comply with PHP 7.2
    • Tweak – remove SQL calls from class-wwpdf-file-handler.php
    • Tweak – remove unused arguments from wwpdf_setup_watermark()
    • Tweak – remove conditional support for WooCommerce version < 2.7/3.0 (this shouldn’t be a breaking change)
    • Tweak – get_watermark_data() no longer a static file in class-wwpdf-watermark.php
    • Feature – ‘wwpdf_set_password’ filter hook to create alternative passwords (other than customer’s email) in LIVE watermarking
    • Feature – ‘wwpdf_filter_overlay’ and ‘wwpdf_filter_footer’ filter hooks added in wwpdf_setup_watermark() for LIVE watermarking

    2018.6.4 – 2.4

    • Tweak/feature – increase the timeout limit for wp_remote_get() in class-wwpdf-file-handler.php – helps with slow HTTP requests, can be over-ridden
    • Tweak/feature – simplify text encoding, remove use of iconv(). This allows more characters to watermark.
    • Fix – text encoding for test feature overlay watermark

    2018.5.30 – 2.3.6

    • Fix – not watermarking due to missing HTTP vars when used with Woo 3.4+

    2018.4.28 – 2.3.5

    • Fix – rename TCPDI class in /classes/class-wwpdf-watermark-test.php

    2018.4.24 – 2.3.4

    • Fix – rename classes uniquely to avoid conflicts and WaterWoo using other versions TCPDI/TCPDF
    • Tweak – provide link to WaterWoo license settings in API warning windows

    2018.3.15 – 2.3.2

    • Fix – Plugin update API not saving Product ID to DB

    2018.2.27 – 2.3.1

    • Fix – simple product watermarking override not quite right

    2018.2.27 – 2.3.0

      • Fix – add {OPAC} shortcode to footer watermark since that uses HTML
      • Fix – simple product watermarking override
      • Fix – allow comments in PDF trailer before startxref

    (https://github.com/pauln/tcpdi_parser/commit/55d75792c77eb80f17a98d7846d2fa74a497d64f)

    • Tweak – change default font to DejaVu

    2018.1.29 – 2.2.2

    • Fix – bug where some dictionary values would cause the offset to exceed data length

    2018.02.02 – 2.2.1

    • Fix – Advance [DATE-] shortcode wouldn’t work in footer
    • Fix – 2.2 not saving watermarking preferences as set in $_POST
    • Feature – Woocommerce version check support

    2017.12.28 – 2.2.0

    • Fix – remove api key/email reassignment in manage_legacy_settings() to avoid plugin conflicts
    • Fix – WooCommerce API Manager updated – hopefully fixes some folks’ troubles activating license keys
    • Fix – ‘wwpdf_font_decode’ filter incorrectly coded
    • Feature – option to exclude individual products or product variations from global watermarking, better handling of individual product watermarking to override global
    • Feature – ‘waterwoo_settings_array’ filter in class-wwpdf-settings.php
    • Feature – ‘waterwoo_overlay_filter’ and ‘waterwoo_footer_filter’ filters added in class-wwpdf-watermark.php
    • Feature – ‘wwpdf_do_cleanup’ filter added in class-wwpdf-file-handler.php
    • Feature – ‘wwpdf_out_charset’ filter added in class-wwpdf-file-handler.php to manage iconv() parameters
    • Feature – Improved uninstaller. Option to delete all WaterWoo data on plugin delete in Settings -> WaterWoo License -> Deactivate
    • Tweak – more carefully specify PDF asset upload file path for testing feature on Settings page
    • Tweak – change post status to include draft & future in variation global override settings
    • Tweak – move instance of WC_Order outside foreach loop in class-wwpdf-file-handler.php
    • Tweak – don’t need preg_match_all, use preg_match for PRODUCT-### shortcode in class-wwpdf-file-handler.php
    • Tweak – text-domain as plain string, not variable in class-wwpdf-license-api.php
    • Known issue – TCPDI does not preserve all internal links, nor does it preserve PDF forms

    2017.8.14 – 2.1.3

    • Fix – stripslashes of overlay/footer content for testing feature

    2017.7.15 – 2.1.2

    • Fix – [PRODUCT-###] shortcode for product variation purchased quantity
    • Tweak – minor CSS/layout in product variation settings

    2017.4.3 – 2.1.1

    • Tweak – allowance for capitalized PDF file extension in file handler class
    • Tweak – make license pop-up dismissible and less urgent
    • Tweak – don’t bother to transform the page if not rotating watermark
    • Tweak – vertical tab \x0b added to whitespace chars in tcpdi_parser.php
    • Fix – only set file protections/passwords if required (for speed and to ensure unwanted encryption isn’t added when not desired)
    • Fix – test feature output file path trailing slashed for Windows servers
    • Fix – issues with update API 3rd party integration – automatic updates operational again with 2.1.1
    • Fix – empty default hex color input value on single product watermarking settings page
    • Fix – address memory timeout caused by certain PDFs’ offset error (PScript5.dll related?)

    2017.3.22 – 2.1

    • Fix – force default “force” download method if watermarking enabled on X-Accel-Redirect/X-Sendfile downloads – WooCommerce uses caching on this method as default.
    • Fix – test feature footer cell width calculation to fill window.
    • Tweak – cell width fixes for 90º and 270º rotated watermarks – for right and left margin watermarking.

    2017.3.15 – 2.0.9

    • Fix – prevent caching of SQL queries with SQL_NO_CACHE. Watermark queries should not be cached.

    2017.2.27 – 2.0.8

    • Tweak – remove query from file path while checking for PDF extension – false negative with S3
    • Tweak – keep .pdf extension when creating temporary remote file name
    • Tweak – remove query from file path when renaming redirect downloads

    2017.2.16 – 2.0.7

    • Fix – _e() incorrectly typed e_()

    2017.2.9 – 2.0.6

    • Fix – Several missing shortcodes in footer watermark

    2017.2.8 – 2.0.5

    • Tweak – product ID given explicitly to API manager to avoid “The Product ID was empty” errors
    • Tweak – better handling of import of old API key pairs from WaterWoo <= 1.8.2
    • Tweak – only make DB calls and regex if necessary for shortcodes in WWPDF_File_Handler
    • Fix – duplicate DB cleanup on uninstall for API entries
    • Fix – negative value in footer Y should adjust from bottom of page (broken since 2.0)

    2017.1.8 – 2.0.4

    • Fix – provisions for download if file in order isn’t PDF and isn’t watermarked

    2017.1.5 – 2.0.3

    • Fix – Dynamic [PRODUCT-123] shortcode was no longer outputting; readied for Woo 2.7
    • Feature – Wildcard [PRODUCT-###] short tag prepared for Woo 2.7 – beta

    2017.1.4 – 2.0.2

    • Fix – cleanup_file() in class-wwpdf-file-handler.php should not have been static method
    • Fix – ‘wwpdf_font_decode’ filter added in case html_entity_decode() needs be done on overlay/footer input when adding custom font face

    2017.1.2 – 2.0.1

    • Fix – remove header and footer line

    2017.1.1 – 2.0.0

    • FPDF/FPDI replaced with TCPDF/TCPDI for PDF handling
    • Fix – watermarking hooked into ‘woocommerce_product_file_download_path’ rather than hijacking WC_Download_Handler
    • Fix – Second parameter added for parse_str() on AJAX call
    • Fix – Drop support for versions of WooCommerce older than 2.4 (for your security)
    • Feature – WooCommerce 2.7 ready
    • Feature – watermark externally-hosted files (Amazon S3, etc)
    • Feature – RTL (right-to-left) watermarking
    • Feature – Fonts for Chinese and Arabic support added
    • Feature – hook added (‘wwpdf_add_custom_font’) – in development
    • Feature – delete all customer-generated files from WaterWoo settings page
    • Feature – delete customer-generated files via ‘wwpdf_file_cleanup’ action – in development
    • Feature – files automatically cleaned up if using WooCommerce’s “Force” download method.
    • Known issue – TCPDI does not preserve all internal links
    • Known issue – TCPDF does not allow extract though set to allow in encryption

    2016.8.2 – 1.8.4

    • Fix – License API upgrade
    • Fix – Removed some unnecessary options being saved in the database
    • Fix – Hide filepath when pdf-parser.php throws “file not found” exception
    • Feature – added ability to remove WaterWoo options from the Wordpress database when deactivating plugin
    • Checks for WP version 4.6

    2016.6.17 – 1.8.3

    • Fix – fix test print/copy/modify/annotate settings for test watermark feature
    • Fix – Remove unnecessary options from wp_options table
    • Fix – Unpredictable watermarking when watermark starts on page other than first page

    2016.2.18 – 1.8.2

    • Feature – watermark on only the first page or last page
    • Feature – allow negative integer input for footer Y fine tuner, so that footer Y can be measured from *bottom* of page instead of the top if desired.
    • Fix – WaterWoo settings improved to work with WC 2.4+ AJAX variable product save functions.

    2016.2.1 – 1.8.1

    • Fix – internal linking tweak
    • Fix – typo suggesting default margin is 10cm. It’s 10 millimeters.
    • Feature – watermark every page, odd pages, or even pages.

    2016.1.25 – 1.8

    • Fix – Correct footer size for Watermark testing feature
    • Fix – Correct footer X finetune
    • Fix – Variable product font dropdown select and textareas UX
    • Fix – Change unclear wording of Global Watermarking checkbox – to be clear, this overrides individual product settings.
    • Feature – add option to create top/bottom, left/right margins for watermarks
    • Feature – delete PDFs made using the Test Run feature from the Settings page
    • Woo-FPDF streamlined for faster watermarking
    • Minor CSS styling/UX improvements

    2016.1.19 – 1.7.3

    • Fix – Improvements to individual product and product variation settings page. Textareas added for watermark inputs and accessibility improvements.
    • Fix – Bottom margin of imported PDFs set to 0mm for watermarking
    • Fix – Remove empty strings for i18n
    • Fixes to Watermark tester – use actual date and email if none provided

    2016.1.15 – 1.7.2

    • Feature – Add new shortcode for transparency. Open: {OPAC-.5} and close: {/OPAC} In this example the words “and close:” would be at 50% opacity.
    • Fix – Remove unmatched shortcodes so shortcode doesn’t show in watermark if unmatched

    2016.01.11 – 1.7.1

    • Correction of URLs for Support/FAQ links on Plugins page
    • Dropping support for WooCommerce < 2.0
    • Fix – Footer font sizing issue where set font size not recognized, esp in test mode
    • Fix – Undefined offset PHP notice in woo-fpdf.php

    2015.12.08 – 1.7

    • Simple support for preserving internal and external PDF links
    • FPDI update 1.6

    2015.11.03 – 1.6

    • Alignable watermark using inline CSS – center, right (left is default)
    • HTML input now allowed in footer watermark
    • API updates repaired – get plugin update notices in Wordpress dashboard
    • FPDF update 1.5.4
    • FPDI PDF-Parser update 1.1.2

    2015.11.02 – 1.5.4

    • Watermarking over image and vector PDF embeds
    • Additional page sizes added

    2015.08.25 – 1.5.3

    • Fixes for WC 2.4 and WP 4.3
    • Fix – WooCommerce Download Handler class now avoids extract() to keep original $file_path intact
    • Fix –
      andtags now add appropriate amount of line height in HTML output, no need to double up
    • Tweak – remove FPDF and TFPDF and implement unique WooFPDF class
    • Notice – if using “Redirect” method, files must be uploaded through WP Media, and will end up in wp-content/uploads/woocommerce_uploads/../../..

    2015.07.14 – 1.5.2

    • Fix – Internalization for [DATE] shortcode.

    2015.07.11 – 1.5.1

    • Feature – [DATE] shortcode now shows date format shown in Wordpress General Options.

    2015.06.07 – 1.5.0

    • Feature – shortcode for number of specific product in cart [PRODUCT-123] (123 being the product ID)
    • Feature – shortcode for number of days, weeks, months, or years from purchase date [DATE-2YRS] (two years from purchase d* ate)
    • Fix – translation file fix (still needs translations)

    2015.03.03 – 1.4.4

    • Fix – remove field sanitizing to allow HTML input for overlay and footer

    2015.02.26 – 1.4.3

    • Fixed extra spaces after ‘overlay_finetune_Y’ in classes/class_wwpdf_download_handler.php and classes/class_wwpdf_downloadhandler.php

    2015.02.24 – 1.4.2

    • Fixes for WC_Dependencies class

    2015.02.24 – 1.4

    • Finished licensing and automatic plugin updates
    • Added individual product and product variation watermarking

    2015.02.17 – 1.3.2

    • Updates for WC 2.3.4
    • New order number shortcode [ORDERNUMBER]

    2015.01.26 – 1.3.1

    • Licensing and automatic plugin updates now available

    2015.01.22 – 1.3

    • WooCommerce 2.3 ready

    2015.01.13 – 1.2

    • Added [BUSINESSNAME] and [DATE] shortcodes
    • Option to force error (or not) if customer doesn’t enter* basic order fields

    2015.01.10 – 1.1

    • Fixes to passwording and access controls
    • Addition of DejaVu font for more international language characters

    2015.01.03 – 1.0.5

    • Clean up code in waterwoo-pdf.php class_wwpdf_system_check.php and class_wwpdf_download_product.php
    • UTF font encoding and better language support
    • Support for redirect downloads (as long as file is in wp-content folder)
    • Better watermark centering on page

    2014.12.27 – 1.0.4

    • Support for odd-sized PDFs

    2014.11.30 – 1.0.3

    • Fixed 4 PHP warnings

    2014.11.12 – 1.0.2

    • Support for landscape orientation

    2014.11.06 – 1.0

    • Initial release

    WaterWoo uses semantic versioning.