*** PayTrace Changelog *** 2024.04.04 - version 2.8.5 * Tweak: POST API: Added integrator ID to the requests 2024.02.26 - version 2.8.4 * Fix: Fatal error when error response was sent by the API. Introduced in v2.8.3 2024.02.26 - version 2.8.3 * Tweak: Protect.js: Get a new clientKey on every load * The protect key is valid 20 minutes max * Tweak: Remove reference to wc_get_log_file_path * Updated the Protect.js scripts * Tweak: Load sandbox protect.js script when the plugin is in sandbox mode * Fix: PHP notices when the API response is an empty string 2023.06.30 - version 2.8.2 * Fix: Incorrectly escaped input was causing error with a missing card number 2023.06.29 - version 2.8.1 * Tweak: Harden the plugin data security. 2023.06.28 - version 2.8.0 * New: Sandbox mode for JSON API integration * HPOS compatibility 2022.11.11 - version 2.7.4 * Fix: Delete newly create payment profile only, when payment fails 2022.08.30 - version 2.7.3 * Fix: Correctly detect oAuth2 token generation errors * Tweak: Reset invalid client key, when an error occurs 2022.06.24 - version 2.7.2 * Fix: Add Payment Method was not adding the card for client-side encryption setup 2022.06.08 - version 2.7.1 * Dev: Added API Export transaction methods to allow pulling the transaction details. 2022.05.13 - version 2.7.0 * New: Support for Paytrace Protect.js library. Sensitive data completely handled by Paytrace, lowering the PCI-Compliance requirements for merchants to SAQ-A. * WC 6.5 compatibility checks 2022.04.21 - version 2.6.1 * Fix: A function from WP 5.9 was used in the plugin that threw error for older WP versions. 2022.04.12 - version 2.6.0 * New: Added a setting to configure the public encryption key directly in the plugin settings 2022.03.27 - version 2.5.14 * Fix: Card/Check forms were constantly flashing in cases where "update_checkout" was called on every payment method change. 2022.03.19 - version 2.5.13 * Fix: Change subscription payment method with "all" flag was not properly updating all subscriptions * WC 6.3 compatibility checks 2022.01.28 - version 2.5.12 * Fix: Properly pass data to JS triggerHandler methods * Tweak: Add a JS triggerHandler "paytrace_on_submit_event" 2022.01.04 - version 2.5.11 * Fix: Captured amount was incorrectly logged after processing the transaction * New filter for the payment transaction type "wc_paytrace_transaction_authorization_type". Allows for modification of the transaction type during payment processing * WC 6.0.0 compatibility checks 2021.11.23 - version 2.5.10 * Fix: Properly process capture via the Order Actions * Tweak: Add integration ID to the payment requests * WC 5.9.0 compatibility checks 2021.09.13 - version 2.5.9 * Fix: Card payment form was not showing correctly when the Checkout page was updated("updated_checkout" triggered) * WC 5.6.0 compatibility checks 2021.03.02 - version 2.5.8 * Fix: Validate correctly expiration years entered in 4 number format * Log points for failed transaction and account deletion. * WC 5.0.0 compatibility checks 2020.10.05 - version 2.5.7 * Fix: Complete the order, if the customer placed a free trial subscription * Dev: Added "wc_paytrace_error_payment_may_be_processed_status"(status, order) - to help merchants decide on the failed payment order status * WC 4.5 Compatibility checks and tags 2020.05.13 - version 2.5.6 * Fix: CSC is correctly sent with the requests when only card payments are enabled and CSC is required * WC 4.1 compatibility checks 2020.03.28 - version 2.5.5 * Tweak: Modified the Refund Process Flow to use the payment transaction_id to process the refund. * Tweak: Added "wc_paytrace_refund_with_transaction_id"(true, $order, $amount) filter to allow merchants to switch to refund by "customer_id" if need it 2020.03.20 - version 2.5.4 * Fix: Moved the capture amount field to a different hook to ensure it will always be displayed. * Tweak: Added "wc_payment_section_data_paytrace" filter to allow modification of the data passed per payment option section * Tweak: Added 'wc_gateway_integration_class_paytrace' filter to allow loading different overwritting the integration classes * Tweak: Added 'wc_validate_fields_paytrace' action to fire before payment fields are validated * Updated the Compatibility class * WC 4.0.0 compatibility checks 2020.01.30 - version 2.5.3 * Fix: Autoloader files version update 2020.01.29 - version 2.5.2 * Added actions pre and post plugin loaded * Added integration id prop to the requests * Tweak: Updated autoloader to contain the relative path from the plugin * WC 3.9 checks 2019.12.13 - version 2.5.1 * Fix: Subscriptions method used when WC Subscriptions is not installed 2019.12.11 - version 2.5.0 * New: Added System Status data to help with support details * Refactor: Moved the Admin class to its own Admin namespace. * Refactor: Split the capture processes in the Admin class into their own Capture class * Tweak: Introduce factory for retrieving the gateway object * Tweak: Removed any card or check information logged in the debug logs, even when the information is encrypted * Tweak: When payment options are displayed separately, we are now logging which option was selected last, so if the checkout is updated, we can select that option. * Compatibility with discounts per gateway, where the checkout page is refreshed on every payment option switch. * Allow the merchant to choose to make the cvc an optional field. Indication is done through 'wc_paytrace_is_cvc_required' filter. Returning false from the filter will make the field optional. Optional will mean that the field will still be validated if provided, but can be left empty. * Dropped support for WC 2.6. * WC 3.8 checked 2019.09.13 - version 2.4.7 * Tweak: Added action hooks for response handling by 3rd party developers. * Tweak: When a new card is used and a profile is saved, use the card for the payment instead of charging the profile. * WC 3.7 support checked 2019.06.05 - version 2.4.6 * Tweak: Redirect the customer to the View Subscription page after updating payment method * Fix: When charging orders with a total between 0 and 1 the plugin did not charge them. Now those orders are correctly charged. * Fix: Don't assume that the customer is always saving their payment method 2019.05.29 - version 2.4.5 * Fix: Properly display the errors when the encryption Public Key failed to load * Introduced new get_meta, update_meta and delete_meta method in the compatibility class * Tweak: Removed all WC 2.5 method from the code 2019.05.01 - version 2.4.4 * Fix: The JSON API request formatting was using a string modifier method for values that were not strings, which caused some incosistent responses. 2019.04.30 - version 2.4.3 * Fix: Don't require encryption for Check payments * Tweak: When the admin saves a Paytrace Customer ID to a Subscription, we check to make sure that there is a WC Token for that Customer ID. If there is no corresponding WC Token for the Customer ID, we create one for it. * Tweak: Allow Export Profile request parameters to be filtered 2019.04.24 - version 2.4.2 * Fix: Use the main form element in the payment form Javascript so the script works even if the form is split into separate steps. 2019.04.19 - version 2.4.1 * Fix: Do not display the eCheck icon, if the "Accept eCheck Payments" is not enabled. * Refactor: Moved the order checks for subscriptions and Pre-Orders to the WC_Paytrace_Order class. Deprecated the current ones in the gateway classes * Fix: Do not show the "Capture" buttons on Edit Subscription screen * Fix: On Change Payment Method page the card form was displayed initially even when a saved method is selected * WC 3.6 support checked 2019.03.26 - version 2.4.0 * New: Separated the Card and Check forms on the checkout page. Settings are provided for each type title and description on the checkout page. * Tweak: Use SVG images for cards and check. * Tweak: Restructured the settings into separate sections, so they can be easier to find and understand. * Dev: Separated the settings into a more modular structure for better maintenance. 2019.03.06 - version 2.3.6 * Fix: Check for wc_add_notice when deleting customer token * Fix: Now tokens are correctly deleted when the admin deletes the customer 2019.02.19 - version 2.3.5 * Tweak: Display a notice when the API password contains "~" character. The character breaks API requests, so it is not allowed in the password * Tweak: Make the JSON API Integration the default on all upgrades and new installations * Fix: Prevent possible 777 duplicate transaction error notice. * Fix: Catch and log possible transaction errors caused by remote_post connection. The errors will be logged to debug, order note and the order will be set to failed status * Tweak: Make the JSON API integration default 2018.11.19 - version 2.3.4 * Iterated the plugin files version. * Updated the autoloader to the latest version. 2018.10.18 - version 2.3.3 * Fix: Access token error, since Paytrace changed the token_type capitalization. * Tweak: Added the access token error and description to the payment notification. 2018.07.31 - version 2.3.2 * Tweak: Test mode is not used in JSON API, so we moved the setting to Post API settings to remove confusion. 2018.07.26 - version 2.3.1 * Fix: Remove restricted characters from request props. POST API: "~" and "|" and JSON API: "|". Previous restriction was only for request description. * Fix: Possible PHP warnings of undefined variable. 2018.07.24 - version 2.3.0 * New: Paytrace Transaction Receipt email requests. The request will a transaction receipt email directly from Paytrace to the customer. * Tweak: Made all plugin notices dismissible. * Fix: Properly check that the site SSL encryption. 2018.06.20 - version 2.2.2 * Fix: (JSON API) The Paytrace E2EE script contained jQuery as well and the double load of jQuery did throw conflict errors. Cleaned the Paytrace E2EE script from unnecessary code and we are not loading it locally. 2018.06.16 - version 2.2.1 * Just changelog date update. 2018.04.13 - version 2.2.0 * New: Support for Paytrace Client side encryption library. Direct encryption of the payment details before they are sent to the store server. * New: Privacy policy support with GDRP notification and support for export and erasure. * Fix: Create profile using the user data did not pull from the user meta. * Fix: JSON API: Delete profile used incorrect parameter name * Fix: JSON API: Shipping Address was used in the billing address field * Fix: Don't send address state field, if it is not 2 characters * Fix: JSON API: The customer ID property name was incorrect causing the profiles to not be deleted in the Paytrace system * Tweak: Force delete newly created token when the payment fails. Prevents token build up on multiple failed transactions * Fix: Don't show saved methods, if we are not using the Vault 2018.04.13 - version 2.1.6 * Fix: Send the capture amount with the request if the amount is different than the initially authorized amount. * Tweak: Removed the price html in the Admin Actions dropdown for Capture Payment. Since WC 3.3 the field html is escaped. * Tweak: Pre-fill the order total or amount up to the initially authorized one in the capture amount field. 2018.03.29 - version 2.1.5 * Fix: Respect the enabled/disabled setting and remove the payment form from checkout, when the plugin is disabled. 2018.01.25 - version 2.1.4 * Fix: (POST API) Create profile requests were failing when a zip code in format nnnnn-nnnn was provided. * WC 3.3 compatibility checks. 2017.11.02 - version 2.1.3 * Fix: Autoloader error when cloning a site to different servers. * Tweak: Don't show Capture functionality, if the order is not paid with the plugin. 2017.10.28 - version 2.1.2 * Fix: Return value in write context possible PHP error * Fix: Both Payment forms were shown on update checkout * Fix: "Use new payment method" field was not hidden, when there were no other payment methods 2017.10.20 - version 2.1.1 * Fix: Display correctly the capture row in WC < 2.6 * Fix: Using get_payment_method for WC < 3.0 * Fix: card display name was missing in WC 2.5 * Switched the Mastercard images to use the new logo 2017.10.19 - version 2.1.0 * New: Add new payment method from My Account * Fix: Correctly toggle plugin settings. We were not toggling the correct settings when Checks were enabled and Vault was enabled * Fix: use the correct get_error method for responses * New: Added display name to the WC Paytrace Token * Refactor: Refactored the Payment Forms * - Moved the forms generation to a separate class * - United the Saved Methods templates for check and card into one * - Removed the used card single input template, used when there are not saved payment methods for each payment type. We will just output one method (new) and hide it via JS. * - Unified the term names for "card" and "check" in all html templates. * Dev: New get_field static method to retrieve array or object field * Drop support for WooCommerce 2.4 2017.10.10 - version 2.0.0 * Requires PHP 5.3 and higher * New: Added support for PayTrace JSON API. * New: Automatic capture authorized only transactions through the "Edit Order" screen. Transactions can be captured up to the originally authorized amount. * New: Refactored card/echeck token system to use the WC_Payment_Token. Old tokens are automatically transferred to the new format. * Misc: Tested with WC 3.2. * Misc - Removed support for WooCommerce Subscriptions 1.9 * Misc - Removed support for WooCommerce 2.3 * Added Woo Tags 2017.09.11 - version 1.4.9 * Fix: IE11 threw a js error on checkout (corner case). * Fix: Some hidden input fields were displayed in some themes. 2017.04.26 - version 1.4.8 * Tweak: Removed card type from CC forms. Now we detect the card type and validate it automatically. * Fix: Moved the manage cards to dashboard page, WC 3.0. 2017.04.19 - version 1.4.7 * Tweak: Updated the card fields to display the numbers keyboard for mobile devices * Plugin settings link is now using the correct section. 2017.04.13 - version 1.4.6 * WC 3.0 compatibility checks and amendments 2016.09.27 - version 1.4.5 * Fix: Error in the previous patch checking for a card before we obtain it from the DB. * Tweak: For profile payment type, default to card transaction instead of check transaction. 2016.09.19 - version 1.4.4 * Fix: Issues with charging Subscriptions on a card profile. 2016.07.22 - version 1.4.3 * Fix: Removing any "+" from the payment description. * Fix: PHP strict type notice. 2016.06.13 - version 1.4.2 * Tweak: Use WP native functions to retrieve remote request body. 2015.10.28 - version 1.4.1 * Fix: Removed external classes, used by mistake. * Fix: Wrong link to My Account manage cards/checks. 2015.10.26 - version 1.4 * New: Support fow WC Subscriptions 2.n. 2015.08.05 - version 1.3.5 * WC 2.4 support checked. * Tweak: SSL verify set to true. * Fix: Set CC details only when CC details are submitted. 2015.03.27 - version 1.3.4 * Tweak: Run Hold transaction on Checks, when Transaction type is Authorization. * Fix: Removed a notice when there are no saved cards. 2015.03.10 - version 1.3.3 * Compatibility with Additional Fees 2015.03.01 - version 1.3.2 * Fix: Processing wrong transaction type. * Tweak: All Checkout JS is loaded only from CC form template 2015.02.04 - version 1.3.1 * Tweak: Refund note correctly displays the reason and Transaction ID. 2015.01.24 - version 1.3 * New: Refunds support. * New: Added Billing and Shipping address to all API requests. * New: Checks can now be used to pay for Subscriptions and Pre-Orders. * Tweak: Refactor API class for easier request generation. * Fix: Amended payment process to remove the possibility for the customer to see an error, when in fact he paid for the order. * Ensured WC 2.2 Support. 2014.05.19 - version 1.2.6 * Fix: Remove "|" and "~" characters from request description. 2014.04.24 - version 1.2.5 * New: Add option to choose to send payment description to PayTrace. * Fix: Truncated the payment description to 255 characters. 2014.04.08 - version 1.2.4 * Fix: Mark order as failed everywhere decline or error occurs. * Tweak: Expand request timeout to 30 seconds. 2014.03.25 - version 1.2.3 * Fix: Profile payments send 0 as an amount. IMPORTANT, please update. 2014.03.16 - version 1.2.2 * Fix: Setting fields not showing in WC under v2.1 2014.02.26 - version 1.2.1 * Tweak: Removed the value from the password input field. 2014.01.24 - version 1.2 * Pre-Orders support * WC 2.1 support 2013.11.03 - version 1.1.7 * Fix: Html encoding of the Subscriptions description 2013.07.04 - version 1.1.6 * Fix: CC and ACH payment forms are now alternating correctly on checkout page. 2013.05.29 - version 1.1.5 * Fix: Now the saved cards are updated and deleted as expected. 2013.02.07 - version 1.1.4 * WC 2.0 Support 2013.01.24 - version 1.1.3 * Tweak: Add support for changing a subscription amount 2013.01.11 - version 1.1.2 * Fix: Added a check for Subscriptions on checkout page form. * Tweak: Do not send state field, if it is longer than two characters. 2013.01.02 - version 1.1.1 * Fix: HTML decode the payment description in case there are encoded characters in the product title. * Tweak: Fixed some typos. * Tweak: Moved text domain to the init action. 2012.12.07 - version 1.1 * New: Subscriptions support. - Together with the Subscriptions extension you can accept and manage recurring payments. - Supported Subscriptions features are: payment, cancellation, reactivation, suspension, date_changes. * New: Customer Payment Profiles. - The ability to save the customer payment information on the secure PayTrace server location, where it can be used in future payments. - The customer will be able to use his/her saved profile or enter a new credit card in order to make a payment. - The customer will have the option to choose to save a payment profile created or not, when making a payment. - The customer will be able to fully manage his/her saved profiles straight from the "My Account" page. * New: eCheck/ACH payment support. 2012.12.05 - version 1.0.1 * Updater 2012.09.08 - version 1.0 * Initial Release