- Fix for if no files inside ZIP are PDFs
- Feature - Apply exclusion settings to all files in product settings, not just ZIP files
- Fix - is_a() use in line 616 classes/woostamper-pdf-file-handler.php
- Tweak - improved parsing of nuanced per-product stamping settings
- Fix - undefined property in 3rd party EDD Sl library
- Better error handling/reporting for if ionCube issues/missing .icl file, missing Seta library files
- Re-include missing classes/artifact-text-stamp.php file
- Testing with WC 9.2 and PHP 8.3
- Update links that were web.little-package.com to www.little-package.com
- Fix issue where per-product stamping on/off settings not being saved correctly in some cases
- Feature - peruse ZIP packages for PDFs requiring stamping
- Feature - compatibility with Woo Bulk Downloads
- Feature - per-product file exclusions (for when a product has more than one PDF, and one/some need not be stamped)
- Tweak - un-inline JS in WooCommerce product and product variation settings
- Tweak - show response.responseText in AJAX status window during PDF stamp testing (for failures, e.g. when plugin not setup properly )
- Update EDD SL to version 1.9.3
- Tweak Use WooStamper_PDF_Stamp class for both AJAX testing and front end marking for better consistency
- Tweak - do not sanitize PDF passwords on per-product settings
- Tweak - provide feedback in logs for users without a correct OpenSSL + PHP version setup
- Tweak - provide more setup feedback on the settings page
- Check that opacity (per-product) setting is numeric before using as possible replacement for global setting or default 1
- Fix discrepancy between testing and frontend watermarking opacity setting handling
- Check for if start/end pages are integers before comparing in classes/woostamper-pdf-stamp.php line 131
- Fix - Return only 'odd' or 'even' to SetaPDF Stamper, not a range(), in case user sets non-existent page for stamping
- Tweak - Delete option marking successful file setup and deactivate license key on plugin deactivation, regardless of LNT
- Tweak - don't delete plugin files (in wp-content/uploads/ directory) on plugin delete unless LNT is turned on
- Fix - move file pruner function outside woostamper-pdf-pruner.php class
- Feature - Add more file pruning schedules, other than just 'weekly' (e.g. daily, twicedaily, etc)
- Feature - 'woostamper_before_callback' and 'woostamper_callback' action hooks added for SetaPDF customizations
- Tweak - Better accommodate servers which cannot access wp_upload_dir()
- Tweak - Remove check for PDF syntax during remote file get, as a check for user whose PDFs are getting caught there
- Tweak - Simplify how required files are included and make compatibility check results visible as admin notices
- Tweak - Create a trait shared between woostamper-pdf-stamp.php and woostamper-pdf-test-stamp.php
- Tweak - Minor code refactoring
- Fix - logging (re-implement on 'plugins_loaded' hook)
- Rate limit call to API license/plugin update server, and make them more likely to happen appropriately
- Add auto updates setting so users can opt-in to auto updates (if CRON is on, which it is by default)
- Testing with WC 7.8
- Tweak - More checks for errors during (AJAX) test stamping and live stamping - mostly checking for SetaPDF-Stamper installation
- Tweak - Declare WooCommerce HPOS compatibility
- Fix - Can't access value of exception $e when no exception thrown line 60 classes/woostamper-pdf-test.php
- Fix - Settings inheritance (product variation -> product -> global) in classes/woostamper-pdf-file-handler.php
- Tweak - Change Test/Delete "buttons" on settings page to actual buttons with nonce sent in data attribute
- In case test.pdf is not in wp-content/uploads/woostamper directory on test request, attempt to restore it there
- Use an Artifact Text Stamp child class to lend accessibility to stamped PDF documents
- Don't set SetaPDF $page variable before running $callback, to avoid wrong page size on first pass
- Enqueue admin scripts, which are now unminified to make debugging easier
- Allow for *per-pdf-product* manipulation of security handler to unencrypt *encrypted* PDFs before stamping if owner password provided
- No longer try to store temporary PDFs using get_temp_dir() - use WP uploads directory always for more reliability
- Repair WooStamper logging settings page delete function
- More careful type casting of settings values for PHP 8+ (int cannot be multiplied by string)
- Testing with WP 6.1 and WC 7.1
- Testing with WP 6 and WC 6.6
- Feature - use callback in SetaPDF Stamper addStamp for watermarking on pages of varying size
- Feature - 'woostamper_filter_shortcodes' filter hook added for adjusting shortcode output
- Initial testing with PHP 8
- Fix - SOMDN Free Downloads integration broken on get_temporary_file_folder call
- Testing with WC 5.7
- Fix - wrong method called upon clicking "delete all customer-generated PDFs"
- Fix - _woostamper_encryption $_POST value not saved in per-product settings
- Fix - use isset() not empty() in case of 0 values when saving settings
- Fix - variables for font size and pdf permissions wrong in woostamper-pdf-stamp.php after previous edits
- Fix - clean up bitwise calculation of file permissions in woostamper-pdf-stamp.php
- Tweak - update to current usage of "woocommerce-data-tip" in per-product WooStamper settings
- Tweak - add 'woostamper_setapdf_stamper_stamp_text' filter (handy for marking stamp as Artifact Stamp, for example)
- Testing with WC 5.1
- Delete only PDFs when deleting accrued test watermarked files
- Logging global $woostamper_logs not defined if logging not on
- Fix - use isset() instead of empty() to check for password in per-product settings, to avoid passwording when not desired
- Tweak - move woostamper_filter_font filter hook inside font name switch
- Fix - don't throw E_WARNING on include_once of SetaPDF library files; also, try looking for SetaPDF_Stamper class first in classes/woostamper-pdf-compatibility.php
- Feature - always retain original file name through watermarking process and delivery
- Feature - recycling to re-serve watermarked files if they already exist on server, saving CPU
- Feature - cron to delete saved files after 1 week (filterable duration for now)
- Feature - more granular control of file protections with owner passwording and choice of encryption type (128 bit to allow higher file protections).
- Feature - settings page UX designed to indicate passwording/protections require encryption, and which protections are offered with different encryption levels.
- Feature - beta version checks (opt in at Settings -> WooStamper license)
- Fix - variation global settings unobscured
- Do away with "_e.pdf" file ending when file is encrypted. Should be delivered with title as expected by admin
- $pages_to_stamp not valid range when end page = "last", create separate method to determine which pages to stamp
- separate method to determine file permissions
- update stamp position settings names and set defaults
- "Unlock with User Password" only works with 128-bit encryption
- Update last modified date to reflect correct UTC offset
- Setting name consistency, unused names removed
- Initial release