*** SkyVerge WooCommerce Plugin Framework Changelog ***

2023.11.16 - version 5.11.12
 * Misc - Update documentation links after changes in Woo.com

2023.11.15 - version 5.11.11
 * Fix - Replace deprecated `wcs_renewal_order_meta` filter usage with `wc_subscriptions_renewal_order_data`
 * Dev - Replace `supports_hpos` with a `supported_features` key in the main plugin file constructor arguments
 * Dev - Introduce a `Blocks_Handler` class which will be expanded in a future release for adding WooCommerce Cart & Checkout Blocks compatibility
 * Misc - Warn merchants when a plugin is not compatible with Cart or Checkout blocks to prompt switching to legacy shortcodes

2023.10.13 - version 5.11.10
 * Tweak - Improve tokenization support for gateways that tokenize payment methods with sale
 * Fix - Update deprecated JS event handlers that would have triggered deprecation notices in console
 * Localization - The Framework has been localized in several languages!

2023.09.28 - version 5.11.9
 * Fix - Prevent prefixed metadata from being included in order item descriptions

2023.08.23 - version 5.11.8
 * Misc - Add `SV_WC_Helper::array_join_natural()` helper method
 * Fix - Pass environment parameter to Google Pay client

2023.07.28 - version 5.11.7
 * Tweak - Enqueue and improve form styles for hosted payment forms

2023.07.19 - version 5.11.6
 * Misc - Add `SV_WC_Order_Compatibility::get_order_post_types()` compatibility method

2023.06.07 - version 5.11.5
 * Fix - Replace deprecated usages of `FILTER_SANITIZE_STRING` with `FILTER_SANITIZE_FULL_SPECIAL_CHARS`
 * Fix - Do not pass `null` to `substr()` to avoid triggering deprecation notices if the payment method's last 4 numbers could not be determined in a direct payment gateway

2023.06.13 - version 5.11.4
 * Fix - Use `set_transaction_id()` while setting the transaction ID in payment gateways instead of setting the order meta data directly

2023.06.01 - version 5.11.4
 * Fix - Ensure that the `_transaction_id` meta is correctly persisted on orders while saving transaction data

2023.05.30 - version 5.11.2
 * Fix - Remove `AllowDynamicProperties` attribute at method level causing a fatal error in PHP 8.2

2023.05.23 - version 5.11.1
 * Tweak - Add WooCommerce Subscriptions compatibility methods for installations using HPOS
 * Fix - Prevents WooCommerce throwing fatal errors when adding a payment method to an order in the frontend
 * Fix - Address a potential return type error in `SV_WC_Order_Compatibility::get_order_screen_id()`

2023.04.20 - version 5.11.0
 * Feature - Add compatibility methods and support for WooCommerce High Performance Order Storage (HPOS)
 * Misc - Require PHP 7.4 or higher
 * Misc - Remove deprecated compatibility methods

2023.03.27 - version 5.10.16
 * Fix - Prevent fatal errors when no card types are selected for a payment gateway

2023.02.06 - version 5.10.15
 * Fix - "My Account" delete payment method compatibility with WC 7.2+

2022.12.06 - version 5.10.14
 * Tweak - Improve the performance of the orders admin screen in some sites by optimizing payment gateways bulk action detection - props @ravinderk
 * Fix - Allow gateway plugins to override card images by defining an override with the same name in the plugin's `assets/images` folder - props @cadic

2022.08.16 - version 5.10.13
 * Fix - Improve Background Job Handler compatibility with newer WooCommerce versions while processing a job queue

2022.01.13 - version 5.10.12
 * Fix - Remove deprecated usages of `is_ajax()` in favor of `wp_doing_ajax()`

2022.01.11 - version 5.10.11
 * Tweak - Remove automatic notices for unsupported WooCommerce versions

2021.09.22 - version 5.10.10
 * Feature - Add `Abstract_Cacheable_API_Base` and `Cacheable_Request_Trait` to support caching API request responses
 * Tweak - Allow classes extending `SV_WC_API_Base` to tweak request and response data when broadcasting a request

2021.08.27 - version 5.10.9
 * Feature - Add helper methods to convert arrays to comma separated lists for database IN clauses use
 * Feature - Add helper method to format a percentage

2021.06.17 - version 5.10.8
 * Fix - Address an issue at checkout with payment form JS never loaded when a $0 order has a total updated later

2021.04.15 - version 5.10.7
 * Fix - Prevent fatal errors by loading External_Checkout extensions in the wp_loaded action rather than on init

2021.03.12 - version 5.10.6
 * Feature - Add a helper method to determine whether the new WC navigation feature is enabled

2021.03.04 - version 5.10.5
 * Tweak - Add a class representation for Braintree PayPal tokens

2021.03.01 - version 5.10.4
 * Fix - Prevent a Fatal error while editing the Checkout page using Elementor

2020.12.08 - version 5.10.3
 * Fix - Fix enqueuing token editor JS

2020.12.03 - version 5.10.2
 * Misc - Update deprecated jQuery usages

2020.11.24 - version 5.10.1
 * Fix - Prevent a deprecated notice for SV_WC_Payment_Gateway_Hosted::do_invalid_transaction_response() in PHP 8
 * Fix - Prevent PHP Notices and fatal errors on wizard steps

2020.11.06 - version 5.10.0
 * Feature - Add Google Pay support
 * Tweak - Improve multiple gateway settings inheritance to allow for more than two gateways
 * Tweak - Add admin notices for tax configurations that are incompatible with Apple Pay
 * Fix - Ensure blank settings inputs aren't added when a base abstract gateway defines shared settings that a child gateway doesn't support

2020.10.09 - version 5.9.0
 * Feature - Add helper method to detect whether the current request is a REST API request
 * Fix - Fix a Capture Charge button issue when adding items to an order
 * Fix - Harden code to avoid a potential PHP warning at checkout if no card logos are configured for a gateway
 * Fix - Update Pre-Orders and Subscriptions integrations to use 2 digits expiration years

2020.07.31 - version 5.8.1
 * Fix - Ensure that some payment gateway scripts used for handling tokens reference the current version of the Framework

2020.07.29 - version 5.8.0
 * Tweak - Migrate payment tokens to be compatible with WooCommerce core payment tokens
 * Fix - Unblock the UI when removing a token from the admin token editor that was just added but not saved yet
 * Dev - Deprecate some filter hooks in the payment methods table

2020.05.15 - version 5.7.1
 * Fix - Prevent JavaScript error triggered when different versions of the framework are used at the same time
 * Fix - Fix URL for the Configure link in the admin notes shown for payment gateways that are not configured

2020.05.07 - version 5.7.0
 * Feature - Add a Settings API for easily registering plugin settings for display and REST API handling
 * Feature - Introduce a base script handler for enqueueing and loading JavaScript objects
 * Tweak - Ensure payment gateway scripts can be used when certain script optimization plugins are delaying load
 * Tweak - Improve the payment form display on mobile devices
 * Tweak - Update Apple Pay to allow all currencies by default

2020.03.09 - version 5.6.1
 * Fix - Delete enhanced admin notes on plugin deactivation
 * Fix - Prevent uncaught errors when creating notes when WC Admin is disabled

2020.03.04 - version 5.6.0
 * Feature - Add support for WooCommerce Admin enhanced notes
 * Tweak - Refactor Apple Pay handler classes for greater flexibility
 * Fix - Remove gateway payment field validation on initial page load

2020.01.20 - version 5.5.4
 * Tweak - Add a link to the site's terms and conditions page below Apple Pay buttons when available
 * Tweak - Adjust the place order button label for redirect/hosted gateways
 * Fix - Fix a JavaScript error triggered trying read the 'length' property of an undefined value in format_credit_card_inputs()

2020.01.13 - version 5.5.3
 * Fix - Fix a JavaScript error when instantiating a class that hasn't been loaded

2020.01.09 - version 5.5.2
 * Fix - `SV_WC_Payment_Gateway_Apple_Pay::process_payment()` now throws an exception if the result returned by the processing gateway doesn't indicate whether the transaction was successful or not
 * Fix - Update `SV_WC_Payment_Gateway_Direct::process_payment()` to cover for and edge case in which `SV_WC_Payment_Gateway_Direct::do_transaction()` fails without throwing an exception
 * Fix - On WooCommerce 3.9: prevent empty credit card fields from being marked as invalid before the user has entered any data
 * Dev - TLS 1.2 helper methods moved from `SV_WC_API_Base` to `SV_WC_Plugin`
 * Dev - Deprecated `SV_WC_API_Base::require_tls_1_2()`

2019.11.14 - version 5.5.1
 * Tweak - Refactor Apple Pay order creation to support the same filters and actions that are fired during regular checkout
 * Tweak - Allow multiple old hooks to be mapped to a single new one via the hook deprecator
 * Fix - Harden integration with WooCommerce Pre-Orders to avoid a PHP error in some circumstances
 * Fix - Fix double product stock reduction when an order is held and payment is not completed

2019.10.15 - version 5.5.0
 * Feature - Add a plugin helper method to retrieve a template part while consistently passing the default template path to `wc_get_template()`
 * Misc - Deprecate backwards compatibility methods for unsupported WooCommerce and PHP versions
 * Misc - Replace `SV_WC_Helper::get_post()` and `SV_WC_Helper::get_request()` with `SV_WC_Helper::get_posted_value()` and `SV_WC_Helper::get_requested_value()`

2019.09.05 - version 5.4.3
 * Fix - Do not show the checkbox to save the payment method on the checkout page if not logged in and registration during checkout is disabled
 * Misc - Add a Country_Helper class to assist converting country codes to and from various formats

2019.08.27 - version 5.4.2
 * Tweak - Add a standard set of subscription details to orders payment data set by a gateway
 * Tweak - Add replacement helper methods to get the current screen in WordPress and check the screen ID
 * Misc - Change SV_WC_Payment_Gateway::is_configured() from protected to public
 * Misc - Add admin notice when a gateway is enabled but is not configured and is unable to take payments

2019.08.06 - version 5.4.1
 * Misc - Add a configurable admin notice for plugins running deprecated WooCommerce versions

2019.03.13 - version 5.4.0
 * Feature - Add abstract handlers for hosted payment processing
 * Feature - Revamp the Lifecycle handler for easier upgrade routines and add event logging for important lifecycle events
 * Tweak - Adjust the no-HTTPS notice to point to where the merchant can fix the problem
 * Fix - Prevent the Capture button from showing on failed orders or orders without an original transaction ID
 * Fix - Use the current order total when determining whether a captured order should change status

2019.01.09 - version 5.3.1
 * Fix - Fix a JavaScript error in the welcome wizard for missing parameters
 * Fix - Correctly handle memory_limit shorthand from php.ini
 * Misc - Adjust the Accepted Card Logos setting description to further clarify its purpose

2018.09.25 - version 5.3.0
 * Feature - Add support for updating payment methods via API on payment
 * Tweak - Refactor capture handling and add a dedicated handling class
 * Tweak - Add an admin notice for gateways when debug logging is enabled in production mode
 * Fix - Ensure orders are automatically captured when the status is changes via the REST API if enabled
 * Fix - Ensure the gateway capture UI is only displayed for regular orders
 * Fix - Prevent capture JS errors when multiple gateways running the same framework version are activated
 * Fix - Strip price HTML from the admin capture alert
 * Dev - Add the wc_{gateway_id}_held_order_status filter

2018.09.04 - version 5.2.2
 * Tweak - Provide an abstract Setup Wizard for plugins to implement for easier onboarding

2018.08.21 - version 5.2.1
 * Fix - Prevent errors when triggering payment gateway payment and refund milestones
 * Fix - Add escaping to some admin notice messages

2018.07.24 - version 5.2.0
 * Fix - Use the order currency for the gateway capture message currency symbol
 * Dev - Introduce dedicated plugin methods for loading after init
 * Dev - Move plugin lifecycle methods to the Lifecycle handler
 * Dev - Introduce a dependency handler for PHP compatibility notices
 * Dev - Introduce a REST API handler base
 * Misc - Add default plugin and gateway data to the WooCommerce REST API System Status response

2018.06.25 - version 5.1.5
 * Fix - Ensure exceptions are caught for Subscriptions "change payment" and Pre-Orders tokenization failures

2018.05.22 - version 5.1.4
 * Tweak - Add a gateway privacy handler to export or remove order payment data and payment tokens on request
 * Tweak - Add a warning for WooCommerce 2.6 installs that 3.0 will soon be required
 * Misc - Add support for WooCommerce 3.4

2018.04.17 - version 5.1.3
 * Tweak - Add a method for gateways to call during failing captures

2018.04.02 - version 5.1.2
 * Fix - Prevent warnings in PHP 7.2 when building the gateway settings
 * Fix - Fix namespaces in the Apple Pay framework

2018.03.27 - version 5.1.1
 * Tweak - Disable the Add Payment Method button when editing a method
 * Fix - Ensure customers can't delete subscription payment methods from gateways that use integer token IDs
 * Fix - Always pass user email to gateways when adding a payment method

2018.02.27 - version 5.1.0
 * Feature - Add payment method editing support
 * Feature - Allow users to set nicknames for their payment methods
 * Feature - Add support for auto-capturing orders when changed to a paid status
 * Feature - Add a Milestones API for plugins to trigger milestone messages and prompt users for feedback after key plugin events
 * Tweak - Improve the My Account Payment Methods table on desktop and mobile
 * Tweak - Let gateway handle their own API errors when deleting payment methods
 * Tweak - Improve the admin token editor with better error handling and improved display
 * Tweak - Let plugins define a "reviews" URL to be displayed with the plugin action links
 * Tweak - Adjust the gateway "Accepted Cards" setting wording to clarify that it doesn't affect payment processor card support
 * Tweak - Support warning and info message types in the Admin Message Handler
 * Fix - Prevent duplicate admin notices when running alongside legacy framework versions

2018.01.17 - version 5.0.1
 * Misc - Remove support for WooCommerce 2.5
 * Misc - Require WordPress 4.4 or higher

2018.01.11 - version 5.0.0
 * Feature - Partial capture - add a UI for multiple partial captures in supported gateways
 * Feature - Add CSC setting to enable or disable the field for tokenized methods
 * Tweak - Improve the My Payment Methods table styling on mobile
 * Dev - Add versioned namespaces
 * Dev - Add a sample plugin loader class
 * Dev - Add action hooks for My Payment Method actions
 * Misc - Drop WooCommerce 2.5 support
 * Misc - Drop Subscriptions 1.x support

2017.12.11 - version 4.8.3
 * Fix - Ensure failed order token meta is only copied to the parent subscription when a successful payment has occurred
 * Fix - Don't reset the checkout password field if it's already visible

2017.12.01 - version 4.8.2
 * Fix - Fix a possible race condition when performing background processing health checks
 * Fix - Account for possible false negatives when testing loopback connections in certain environments

2017.11.27 - version 4.8.1
 * Fix - Fix Apple Pay compatibility with WooCommerce 3.2+

2017.10.31 - version 4.8.0
 * Feature - Add a framework for batch job handling for when background processing is unavailable
 * Feature - Debug tool for testing the site's environment for loopback connection support

2017.10.05 - version 4.7.3
 * Tweak - Add new methods for checking for specific WooCommerce versions
 * Tweak - Adjust the PHP version notice to check for 5.6 by May 2018 and adjust the messaging when that date has passed
 * Fix - Conflict with WooCommerce filtering of nonce checks for background jobs

2017.09.12 - version 4.7.2
 * Fix - Ensure failed Pre-Orders can be paid with a new method by bypassing the failed order's stored token
 * Fix - Use the parameters passed to SV_WP_Admin_Message_Handler::show_messages()

2017.08.14 - version 4.7.1
 * Tweak - Refine the TLS 1.2 notice wording and appearance

2017.07.25 - version 4.7.0
 * Feature - Introduce the Apple Pay framework for developers

2017.07.11 - version 4.6.6
 * Fix - Ensure backwards compatibility with gateways that don't extend the SV_WC_API_Base class for their API

2017.06.26 - version 4.6.5
 * Misc. - Make a TLS 1.2 admin notice available for gateways that require it
 * Misc. - Ensure WooCommerce 3.1 compatibility

2017.05.20 - version 4.6.4
 * Fix - Add dedicated subscriptions Change Payment handling to avoid subscription manipulation
 * Fix - Ensure old payment methods can be removed after changing subscription payment to a new method

2017.05.09 - version 4.6.3
 * Tweak - Add optional notice for plugins that want to require PHP 5.3+ in the future
 * Tweak - Improved background process handling for certain server & cache configurations

2017.05.01 - version 4.6.2
 * Fix - Ensure authorized, but not yet captured, transactions are marked "on hold" for off-site gateways

2017.04.17 - version 4.6.1
 * Tweak - Load admin translations based on the user's configured language in WordPress 4.7+
 * Tweak - Added the SV_WC_Order_Compatibility::has_shipping_address() method
 * Fix - Prevent some deprecated notices when processing subscriptions in WooCommerce 3.0+

2017.03.27 - version 4.6.0
 * Tweak - Add Payment Gateway debug mode to the System Status report
 * Tweak - Plugin "Docs" links now open in a new tab
 * Misc - Add helper method to get normalized WooCommerce screen IDs
 * Misc - Added support for WooCommerce 3.0

2017.01.06 - version 4.5.2
 * Fix - Include Curaçao when converting country codes

2016.11.18 - version 4.5.1
 * Fix - Prevent a potential fatal error for plugins not using the latest JSON/XML request classes

2016.11.07 - version 4.5.0
 * Feature - Mobile-friendly credit card fields using the `tel` input
 * Feature - Add setting to enable capture for virtual-only orders
 * Feature - Define minimum php.ini requirements an display a notice when they are not met
 * Feature - Allow deprecated hooks to be mapped to their replacements
 * Tweak - Move capture handling to the base gateway class to make it available to hosted gateways
 * Tweak - Add a "card not accepted" icon when a card number format is not accepted or recognized
 * Tweak - Add full MasterCard BIN Series 2 support & update the card logo
 * Tweak - Improve consistency of card type IDs and abbreviations
 * Tweak - Refactor gateway settings inheritance
 * Fix - Fix failed renewal payment data not updating for auth-only renewals
 * Fix - The `load_translation()` method is no longer required for base plugins
 * Fix - Prevent notices when running alongside bbPress or BuddyPress

2016.09.14 - version 4.4.3
 * Fix - Fix an error when processing guest pre-order payments

2016.08.02 - version 4.4.2
 * Tweak - Refactor background job data structure and processing

2016.07.18 - version 4.4.1
 * Misc - Add compatibility for WordPress 4.6

2016.06.01 - version 4.4.0
 * Feature - Allow bundled framework and plugin translations to be easily overridden
 * Tweak - Allow plugins extending SV_WC_API_Base to declare TLS v1.2 as a requirement for requests
 * Misc - Added support for WooCommerce 2.6
 * Misc - Removed support for WooCommerce 2.3

2016.04.18 - version 4.3.0
 * Feature - Revamped admin payment token editor
 * Feature - Prevent deleting subscription payment methods
 * Feature - Add payment gateway environment information to the WooCommerce system status report
 * Tweak - Support WordPress core dismissible notices
 * Tweak - Misc Payment Gateway framework improvements
 * Fix - Properly validate CSC if present for tokenized payment methods
 * Fix - Fix double confirm messages when deleting a payment method in certain cases

2016.02.08 - version 4.2.2
 * Fix - Fix handling guest pre-orders

2016.01.20 - version 4.2.1
 * Fix - Fix `implode()` warnings in `SV_WC_Helper::get_order_line_items()`

2016.01.13 - version 4.2.0
 * Feature - Greatly improved compatibility with multi-language/translation plugins
 * Misc - Switched to using a separate text domain for the framework strings - 'woocommerce-plugin-framework'
 * Misc - Added support for WooCommerce 2.5
 * Misc - Removed support for WooCommerce 2.2

2015.11.05 - version 4.1.2
 * Tweak - Misc Payment Gateway framework improvements

2015.09.09 - version 4.1.1
 * Fix - For Subscriptions 1.5, don't mark the original order as failed when a renewal payment fails

2015.08.27 - version 4.1.0
 * Feature - WooCommerce Subscriptions 2.0 Support
 * Tweak - Add specific width/height styling for payment method icons
 * Fix - Fix assert() warnings with certain gateway configurations on the My Account page

2015.07.29 - version 4.0.1
 * Fix - Fix typo in payment gateway frontend javascript
 * Tweak - Add inline style for payment gateway icons

2015.07.27 - version 4.0.0
 * Feature - Standardized payment gateway form
 * Feature - Add new payment method feature
 * Feature - Standardized & unified My Payment Methods table
 * Feature - New payment method icons in SVG format
 * Tweak - Adds is_woocommerce_active() method to bootstrap class, to support non-WooThemes listed frameworked plugins
 * Tweak - Payment gateway token support now allows for merging local data with remote data, and caching results in a transient
 * Tweak - The order status for voided orders is now "cancelled" rather than "refunded"
 * Tweak - Improved support for REST API development
 * Tweak - Framework bootstrap now gives the option to easily deactivate backwards incompatible plugins, rather than only an instruction to update older plugins
 * Tweak - Framework bootstrap option to declare minimum required WordPress version
 * Misc - WooCommerce 2.4 compatibility

2015.03.17 - version 3.1.2
 * Fix - JS variable `wc_select_params` undefined in WC 2.3.6+

2015.03.10 - version 3.1.1
 * Tweak - Add `get_cancel_order_url_raw()` compatibility method

2015.02.09 - version 3.1.0
 * Feature - Refund/Void support for the payment gateway framework, huzzah!
 * Misc - WooCommerce 2.3 compatibility

2014.12.11 - version 3.0.4
 * Fix - Bug when removing a tokenized credit card from the My Account page
 * Tweak - Accept a notice-class parameter when rendering admin notice to avoid always using the "error" notice

2014.11.20 - version 3.0.3
 * Fix - Payment gateway framework now catches all SV_WC_Plugin_Exception exceptions. Fixes uncaught SV_WC_API_Exception error.

2014.10.19 - version 3.0.2
 * Fix - Add commonly used notice functions to avoid errors when renewing subscriptions

2014.10.15 - version 3.0.1
 * Tweak - Method visibility changed from private to protected to allow adjustment via sub-classes
 * Fix - Fix "Wrong parameters for Exception" fatal error

2014.09.07 - version 3.0.0
 * Feature - Edit tokens from Admin Order Edit screen
 * Tweak - Improved dismissible admin notices
 * Misc - WooCommerce 2.2 compatibility
 * Misc - Backwards incompatible

2014.08.26 - version 2.2.0
 * Feature - Added API base class and automatic request logging
 * Feature - Introduced Helper class
 * Feature - Optional detailed customer decline messages on checkout
 * Tweak - Introduced named exceptions
 * Tweak - Updates to support Chase Paymentech certification mode
 * Tweak - Updates to the Hosted Gateway class for improved handling of redirect-back gateways
 * Tweak - My Payment Methods template now uses Dashicons instead of images
 * Tweak - Plugin active method now checks filename only
 * Fix - Fixed product page URLs

2014.05.26 - version 2.1.0
 * Feature - Implemented hosted payment gateway framework
 * Feature - Capture charge bulk order action for payment gateways
 * Tweak - Authorized charges are no longer automatically capture when changing order status from on-hold to processing/completed
 * Feature - Added function dependency checks

2014.03.05 - version 2.0.3
 * Fix - Fixed WC 2.1 compatibility for payment gateway charge captures

2014.02.03 - version 2.0.2
 * Fix - Improved WC 2.1 compatibility method to return the order id on the checkout pay page

2014.01.29 - version 2.0.1
 * Tweak - Additional WC 2.1 compatibility helpers

2014.01.20 - version 2.0.0
 * Feature - Generalized Plugin Framework
 * Feature - Support for "tokenize with sale" gateways
 * Tweak - Improved handling for credit card capture request

2013.11.11 - version 1.0.0
 * First Release
