*** Changelog ***

= 6.6.0 - 2022-08-17 =
* Fix - Fix "Pending" text instead of numeric amount on Payment Request button on iOS.

= 6.5.1 - 2022-08-01 =
* Fix - Stripe Link missing styles and logo for email trigger button.
* Fix - Stripe Link fatal error on `get_upe_enabled_payment_method_ids` method.
* Fix - Remove Link beta headers on checkout.

= 6.5.0 - 2022-07-28 =
* Add - Stripe Link: Add beta headers for Stripe server requests
* Add - Stripe Link payment method option in admin
* Add - Stripe Link payment method on checkout form
* Add - Stripe Link payment method on blocks checkout form

= 6.4.3 - 2022-06-30 =
* Fix - Replace unnecessary throws with empty string when keys are invalid.

= 6.4.2 - 2022-06-29 =
* Fix - Fix terminal location creation if site title is missing.
* Fix - Add compatibility with WooCommerce 6.6.

= 6.4.1 - 2022-06-01 =
* Fix - Ensure proper URL formatting.

= 6.4.0 - 2022-05-20 =
* Fix - Changed logic for how 'Enabled/Disabled' statuses are shown for payments and payouts capabilities in settings.
* Tweak - Updated the minimum supported versions of WordPress and WooCommerce.

= 6.3.0 - 2022-03-10 =
* Tweak - Remove html from translatable strings.
* Tweak - Revert the deprecation of the 'wc_stripe_hide_payment_request_on_product_page', 'wc_stripe_show_payment_request_on_checkout', and 'wc_stripe_show_payment_request_on_cart' filters.
* Tweak - Address minor styling issues in settings.

= 6.2.0 - 2022-02-17 =
* Add - Add onboarding payment gateway setup methods.
* Fix - Enable Stripe payment method after connecting account.
* Fix - Missing statement descriptor in account summary API when not set in Stripe.

= 6.1.0 - 2022-01-26 =
* Tweak - Use the newly exposed LoadableMask component provided by WooCommerce Blocks to trigger the loading state for Payment Request Buttons.
* Fix - Response type for account summary API.
* Fix - Invalid response in account summary API when missing account data.
* Add - Live and test mode information in account summary API.
* Add - Add filter call when updating an existent intent (wc_stripe_update_existing_intent_request).
* Add - Add ability to test Stripe account keys' validity.
* Fix - Fixed full bank statement field description.
* Fix - Notification messages are placed on top of the account keys modal.
* Fix - Express checkout with 3DS card on product page when new checkout experience is enabled.
* Fix - Remove duplicate call to `payment_scripts`.
* Fix - Send bank statement descriptors to payment intents.

= 6.0.0 - 2022-01-05 =
* Fix - Fixed capitalization for payment method names: iDEAL, giropay, and Sofort.
* Add - Text to explain how to enable webhooks when manually entering your API keys in the new Stripe settings.
* Tweak - Redirect to the settings tab after an account is connected.
* Tweak - Prompt message when navigating out Stripe settings with unsaved changes
* Tweak - Show toast when payment methods list is updated with new payment methods.
* Fix - JS error on checkout when Boleto method was not active.
* Fix - Fixed bug that show "Use new payment method" on pay order page when there were no saved card was.
* Tweak - Autocomplete for account keys and webhooks fields were disabled.
* Fix - The settings page is not reloaded when the user enters invalid account keys.

= 5.9.0 - 2021-12-09 =
* Add - Add Stripe API to generate connection tokens, manage terminal locations, create customers, get account summary, capture payment.
* Tweak - Remove `_wcstripe_feature_upe` flag and all traces of old settings.
* Fix - Fix error when invalid card is used on Pay Order page.
* Fix - Fix outdated data when using Blocks Checkout.
* Add - List of payment methods that are not included for the merchant.
* Tweak - Update how the new checkout experience is enabled.
* Fix - Error on UPE checkout depending on the account keys set.
* Tweak - Hide separate credit card form setting when UPE is enabled.

= 5.8.1 - 2021-11-23 =
* Fix - Run filters that disable Stripe JS on cart and product pages when PRBs are disabled.

= 5.8.0 - 2021-11-18 =
* Fix - Hong Kong addresses are now mapped more thoroughly to WooCommerce addresses when paying with Apple Pay.
* Fix - Error when changing payment method for a subscription with new checkout experience.
* Fix - Payment Requests are now updated correctly when updating items in the Cart Block.
* Add - Support for WooCommerce Pre-Orders with new checkout experience.
* Fix - Stripe JS is no longer loaded on cart and product pages when PRBs are disabled on those pages.
* Tweak - Update the minimum required PHP version to 7.0 to reflect our L-2 support policy.
* Fix - Add support for MYR (Malaysian ringgit) for Alipay.
* Add - New Settings UI.
* Fix - Hide payment request button when variations of a variable product are out-of-stock.
* Add - Support for Boleto and OXXO payment methods

= 5.7.0 - 2021-10-20 =
* Fix - Enable use of saved payment methods converted to SEPA payments.
* Tweak - "Save payment information" checkbox now has better alignment in store checkout.
* Tweak - Error notices at checkout now have more consistent design.

= 5.6.2 - 2021-10-06 =
* Tweak - Remove animated credit card icons from payment method option on the checkout page.
* Fix - Payments for pre-orders and subscriptions with an empty source token now work as intended.

= 5.6.1 - 2021-10-04 =
* Fix - Naming conflict with other plugins on WC_Stripe_REST_Controller.
* Fix - Fatal error on `WC_REST_Stripe_Settings_Controller` when Elementor and WooFunnels plugins are used.

= 5.6.0 - 2021-09-30 =
* Add - Pre-release preview of new checkout experience using Stripe Universal Payment Element.
* Tweak - Removed "Branded" and "Custom label" options on Payment request buttons to align with design guidelines.
* Tweak - Converted payment request button size value to distinct options to align with design guidelines.
* Tweak - Animate supported credit card icons instead of displaying multiple icons at once.

= 5.5.0 - 2021-09-15 =
* Tweak - Moved the `WC_Gateway_Stripe::admin_scripts` method to `WC_Stripe_Settings_Controller::admin_scripts`.
* Fix - Save payment method during 3D Secure flow for Block-based checkout.
* Fix - Show subtotal on Payment Request dialog.
* Add - Settings to control Payment Request Button locations in the Stripe plugin settings. Persists changes made through pre-existing filters, or defaults to the Cart and Product pages if no filters are in use.
* Tweak - Deprecated the 'wc_stripe_hide_payment_request_on_product_page', 'wc_stripe_show_payment_request_on_checkout', and 'wc_stripe_show_payment_request_on_cart' filters in favor of the UI-driven approach in the plugin settings.
* Add - Notice for WP & WC version compatibility check.

= 5.4.1 - 2021-09-01 =
* Fix - Get Subscription CustomerID from Order instead of User.

= 5.4.0 - 2021-08-18 =
* Fix - Do not ask for a Shipping Address if no Shipping Zone is defined.
* Fix - Return HTTP 204 when webhook validation fails so Stripe won't stop sending certain webhook events after too many failed validations.
* Fix - Possible use of an undefined variable `prepared_source`.
* Add - 'wc_stripe_allowed_payment_processing_statuses' filter to customize order statuses that allow payment processing in the context of 3DS payments.

= 5.3.0 - 2021-07-21 =
* Fix - Disable Payment Request Buttons when order has to be split into multiple packages because Payment Requests do not support that use case.
* Tweak - Payment request button should guide users to login when necessary.

= 5.2.3 - 2021-06-11 =
* Fix - Credit card icons and credit card input on custom shortcode checkout pages.

= 5.2.2 - 2021-06-10 =
* Fix - The absence of a cart causing fatal errors when rendering the Cart or Checkout block.

= 5.2.1 - 2021-06-10 =
* Fix - Remove calls to `has_block()` since it breaks compatibility with older versions of WordPress.
* Tweak - Use the same JavaScript configurations for the Block-based and Shortcode-based checkout flows.

= 5.2.0 - 2021-05-19 =
* Fix - Use `get_parent` method to avoid accessing `order` subscription property directly.
* Fix - Orders won't transition to 'Refunded' state if refund can't be created.
* Fix - Normalize United Kingdom and Canada postal codes for Apple Pay.
* Fix - Subscription sign-up fees not included in total for Payment Request Button.
* Fix - Reduce requests sent to server from stripe settings page.
* Fix - Choose the appropriate version of the WooCommerce Admin Notes API based on which API is available.
* Fix - Customer information is now correctly displayed in the Stripe Payments Dashboard when a new customer checks out through the WooCommerce Checkout Block.
* Fix - Pass customer language/locale to Stripe upon creation or modification.
* Fix - Initial price for Variable Products is now correctly shown when a Payment Request is started.
* Add - Support for Credit Card payments (incl. 3DS payments) via WooCommerce Blocks; limited to WooCommerce Core product types.
* Add - Support for payments (incl. 3DS payments) paid via Payment Request Buttons in WooCommerce Blocks; limited to WooCommerce Core product types.
* Add - Support for custom and branded Payment Request Buttons when using the Cart and Checkout blocks.
* Tweak - Should customer opt to save their card, the card is now saved after a payment has been confirmed.

= 5.1.0 - 2021-04-07 =
* Fix - Don't attempt to submit level 3 data for non-US merchants.
* Fix - Hide Payment Request Buttons when guest checkout is disabled.
* Fix - Match Payment Request states with WooCommerce states.

= 5.0.0 - 2021-03-17 =
* Add - Display time of last Stripe webhook in settings.
* Add - wc_stripe_webhook_validate_user_agent filter to customize webhook user-agent validation.
* Fix - Payment Request Buttons for Chinese provinces in Chrome.
* Fix - Enable wc_stripe_send_stripe_receipt filter to send Stripe emails.
* Fix - Check for more errors when attaching sources to customers.

= 4.9.0 - 2021-02-24 =
* Fix    - Add fees as line items sent to Stripe to prevent Level 3 errors.
* Fix    - Adding a SEPA payment method doesn't work.
* Fix    - Apple Pay domain verification with live secret key.
* Fix    - Display the correct accepted card branding depending on store currency and location.
* Fix    - Remove duplicate Apple Pay domain registration Inbox notes.
* Add    - Copy Apple Pay domain registration file and trigger domain registration on domain name change.
* Update - Notes and status when refunding order with charge authorization.

= 4.8.0 - 2021-01-28 =
* Fix   - Filter more disallowed characters from statement descriptors.
* Fix   - Payment request button for Puerto Rico.
* Fix   - Handle error if country is not supported for payment request button.
* Fix   - Trim the refund reason to a max of 500 characters.
* Tweak - Display warning on webhook secret when server time is off from device time.

= 4.7.0 - 2020-12-22 =
* Fix - Updating subscription payment methods from the "My Account" page now adds a note to the subscription.
* Fix - Link is now correctly formatted in readme.txt.
* Fix - Using SCA cards for subscriptions renewal payments now works as intended.
* Fix - Cards added under "My Account -> Payment Methods -> Add Payment Method" will now handle SCA properly.
* Fix - Changing a payment method for a subscription in "My Account -> Subscriptions" will now handle SCA properly.
* Fix - Missing space causing fatal errors for certain WooCommerce Inbox Note features.

= 4.6.0 - 2020-12-15 =
* Tweak - Update packages for Composer 2 compatibility.
* Tweak - Use full jQuery function calls instead of soon-to-be-deprecated shorthands.
* Tweak - Use JSON.parse() instead of jQuery.parseJSON().
* Tweak - Remove holiday messaging from Apple Pay note after Dec 22.
* Fix   - Compatibility with the Stripe for WooCommerce plugin.
* Fix   - Guard against fatal errors caused by WC_Admin_Note.
* Fix   - Display error message when payment made with payment request buttons fails.

= 4.5.5 - 2020-11-17 =
* Fix - Guard against fatal errors that may occur on inbox data store load.

= 4.5.4 - 2020-11-16 =
* Add   - Stripe Connect OAuth.
* Tweak - Add site_url to all transactions, not just recurring ones.
* Add   - Customer's full name is now included in Stripe Customer object if available.
* Add   - Accept payments via AliPay when store currency is set to CNY.
* Tweak - Wording of Apple Pay link.
* Fix   - Serve Apple Pay domain verification file via a rewrite rule.
* Add   - Add Inbox note for Apple Pay domain verification if needed.
* Add   - Apple Pay holiday marketing notice.
* Fix   - Apple Pay: Ensure payer phone is available before attempting to access it.
* Add   - Pass payment method for renewal charges if not a source.
* Fix   - Ensure defaults are used for missing settings.
* Add   - Add shipping address to payment requests.
* Fix   - Fix the Not a valid URL notice.
* Add   - Security.md with security and vulnerability reporting guidelines.

= 4.5.3 - 2020-10-06 =
* Fix   - Apple Pay now requires a buyer's phone number only if it's required in Appearance > Customize > WooCommerce > Checkout.
* Add   - Allow toggling secrets temporarily to visible in settings.
* Fix   - Properly display field required error when SEPA method is used.
* Tweak - Update payment request button description to include link to Stripe dashboard Apple Pay settings.
* Add   - Add off session payment intent filter, props rfair404.
* Tweak - Update contributors list.

= 4.5.2 - 2020-08-19 =
* Fix - Allow extension to attempt to run in all countries, not just officially supported ones

= 4.5.1 - 2020-08-12 =
* Add - Support for Bulgaria, Czech Republic, Greece, Cyprus, Malta, Slovenia
* Add - Additional metadata for order status change events when tracking is permitted

= 4.5.0 2020-06-24 =
* Tweak - Improve branded Google Pay button user agent detection.
* Add   - New filter to manage the display of payment request buttons in cart.
* Fix   - Display Apple Pay button with text if branded type is text and logo.
* Fix   - Prevent branded payment request button duplication when checkout is re-calculated.
* Fix   - Payment request buttons on a single product page now correctly show the product name instead of a subtotal.
* Fix   - Quotes in variadic product attributes no longer cause payment request buttons to show only the cheapest variation.

= 4.4.0 2020-05-21 =
* Tweak - Remove support for WooCommerce versions lower than 3.0.
* Tweak - Update plugin assets.
* Tweak - Improve performance on order pay screen.
* Tweak - Compress payment methods SVGs.
* Add   - Support for custom payment request button.
* Fix   - Prevent users from entering secret key in the public key field and stop it from showing if they did.
* Fix   - Revert caching layer removal to speed up My Account subscriptions tab.
* Fix   - Bug where source ID was not set resulting in an uncaught exception.
* Fix   - Collecting level 3 data triggers a warning.
* Fix   - Custom button class typo.
* Fix   - Payment Request incorrect shipping option passed.
* Fix   - Payment Requests, like Apple Pay, not initially showing correct quantity if used on Product Page.
* Fix   - State abbreviation breaks Payment Request button.
* Fix   - Stripe Payment Request button using incorrect Google Pay brand asset by adding a special branded button.
* Fix   - Move docs and support links in the plugins list page.

= 4.3.3 2020-04-08 =
* Fix - Fix Payment Request issue when product attribute has quotes
* Fix - Fix "no such customer" error on checkout after the keys have been changed
* Add - Add alert for end of support WC < 3.0 in future releases
* Fix - Fix crash when used with WooCommerce Subscriptions <2.6
* Fix - Add missing customer ID to subscriptions before processing payment
* Fix - Fix transactions failing with trailing slash

= 4.3.2 2020-02-17 =
* Fix - Add compatibility to payment request buttons with some of the WooCommerce Product Add-ons on the product page
* Fix - Improved compatibility for free orders with other extensions
* Add - Support for multisite when sites use different Stripe accounts
* Fix - Display a localized error message when a customer tries to save a card during checkout, but there's an error
* Add - Send level 3 credit card data for purchases when possible

= 4.3.1 2019-11-12 =
* Fix - Overwrite the previous Apple Pay verification file if it has changed.
* Fix - Avoid re-mounting card elements if they are already mounted in the DOM.
* Fix - Compatibility with WooCommerce Deposits by retrieving order statuses in a different way.
* Fix - Duplicate payment notifications for subscriptions.
* Fix - Use the same customer after a new credit card has been entered.
* Fix - Google Pay buttons on subscriptions.
* Add - A filter, which allows all subscriptions' payment methods to be overwritten when adding a new payment method.

= 4.3.0 2019-10-17 =
* Add - For WooCommerce Subscriptions optimize the payment flow for subsequent subscription payments when authentication may be required by using the  `setup_future_usage` parameter for the first subscription payment
* Add - Allow customer to authenticate payment even if they are not charged right away for WooCommerce Subscriptions and Pre-Orders, for example for a WooCommerce Subscription that has a free trial
* Add - When an off-session payment requires authentication, create a link for customers to come back to the store to authenticate the payment
* Add - Send an email to WooCommerce Subscription and Pre-Orders customers who need to authenticate a payment that was automatically tried on their behalf
* Add - When an off-session payment requires authentication, send an email to the admin
* Add - Admin notice about SCA-readiness
* Fix - Avoid idempotency key errors for Pre-Orders
* Fix - Use unique anchor for link about checkout styling changes

= 4.2.5 - 2019-10-02 =
* Fix - WooCommerce Subscriptions that use only the Stripe customer ID can again be renewed

= 4.2.4 - 2019-09-18 =
* Fix - Unclear error message when email address not completely filled in.
* Fix - Add payment request button compatibility with variable subscriptions
* Tweak - Do not show payment request button for shippable trial subscription products
* Fix - Do not copy the payment intent id when creating a subscription renewal
* Fix - Return early from check intent status if no order - props strayobject
* Fix - Extend webhook time window from 1 to 5 minutes to match Stripe client
* Update - WooCommerce 3.7 compatibility
* Update - Apple Pay Domain association file
* Update - Grandfather pre-SCA subscription renewals for SCA

= 4.2.3 - 2019-07-18 =
* Fix - Ignore "payment failed" webhooks if they come after another payment has already succeeded for that order.
* Fix - Correctly transition an order to "On Hold" if the payment was put under review by Stripe Radar, and back to "Processing" when the review is approved.
* Tweak - Make the publishable key fields be plain text instead of "password".
* Fix - Fix successful retries of 3ds failing.

= 4.2.2 - 2019-06-26 =
* Fix - Changing an order status to "Cancelled" or "Refunded" will no longer refund the payment, will only void the payment if it was just authorized.

= 4.2.1 - 2019-06-17 =
* Update - Add UGX (Ugandan Shilling) to zero decimal currency list.
* Fix - CSRF verification error upon creating account on checkout.
* Fix - Duplicate emails and order notes after successful transactions.

= 4.2.0 - 2019-05-29 =
* Update - Enable Payment Request buttons for Puerto Rico based stores.
* Update - Add support for Strong Customer Authentication (SCA) for user-initiated payments.
* Remove - Stripe Modal Checkout.
* Remove - 3D Secure settings are no longer available in the gateway settings. Use Stripe Radar instead.
* Fix - Display error messages only next to the chosen saved card.

= 4.1.16 - 2019-04-18 =
* Deprecate - Warn about the future removal of the Modal Checkout option.
* Tweak - WC 3.6 compatibility.

= 4.1.15 - 2019-03-12 =
* Fix - Prevent canceled webhook from processing non Stripe payments.
* Fix - "Retain Stripe Data" setting placement on WooCommerce settings page.
* Tweak - Stripe API version updated to support 2019-02-19.

= 4.1.14 - 2019-01-10 =
* Remove - Stripe specific styling to allow themes to style accordingly.
* Tweak  - Handle error if product is not found in payment request.

= 4.1.13 - 2018-11-20 =
* Update - WP 5.0 compatibility.

= 4.1.12 - 2018-10-19 =
* Fix - Typo on notice banner.
* Fix - On auth/capture scenario, error can occur when completing the order in backend.

= 4.1.11 - 2018-10-17 =
* Fix - Explicitly set 3DS source id to prevent 3DS source not charging when not required.
* Fix - Prevent Stripe JS failed live/test check from throwing JS error.
* Fix - Find order by source ID if charge ID is not found when cancelled webhook is triggered.
* Fix - Partial refund on Stripe captured charge erroneously refunding total amount.
* Fix - Capture charge on previously authorized charge, not showing Stripe fees.
* Fix - Check if payment icons are set before trying to use them.
* Fix - Can't use method in write context errors.
* Deprecate - Soft deprecated function is_pre_30 with is_wc_lt function.
* Add - Ability to update all active subscription's payment method when adding a payment.
* Add - Hook to show update all active subscription's payment method checkbox `wc_stripe_display_update_subs_payment_method_card_checkbox`.
* Add - CSS minification.
* Update - WC 3.5 compatibility.
* Update - Stripe API version to 2018-09-24.

= 4.1.10 - 2018-09-17 =
* Fix - When 3DS card redirect status is "not_required", charge the 3DS source.
* Fix - Payment Request not validating quantity before payment sheet shows.
* Fix - Test mode info not showing when description field is left blank.
* Add - Filter for Payment Request localized parameters `wc_stripe_payment_request_params`.
* Update - Stripe API version to 2018-09-06.

= 4.1.9 - 2018-08-27 =
* Fix - Don't display admin notices to user that cannot manage woocommerce.
* Fix - Fatal error when clicking on order link that doesn't exist.
* Fix - When capturing a charge from authorize, Stripe fees not displaying.
* Fix - Undefined property error on card type in rare cases.
* Tweak - Update SEPA IBAN to use new elements implementation.
* Add - Filter for Payment Request Button locale `wc_stripe_payment_request_button_locale`.

= 4.1.8 - 2018-07-19 =
* Fix - 3DS payment sometimes will create additional transaction in Stripe.
* Fix - WC 2.6 with SEPA saved payment causing error on checkout.
* Update - EPS logo.

= 4.1.7 - 2018-06-06 =
* Fix - Asynchronous payment methods such as SEPA, did not show order Stripe fees/net after payment succeed.
* Fix - Missing semicolon on a CSS style value which causes display issues in some browsers.

= 4.1.6 - 2018-05-31 =
* Fix - Radio buttons on checkout on some themes are not aligned properly.
* Fix - False negative on SSL warning notice in admin.

= 4.1.5 - 2018-05-28 =
* Tweak - Refactor initialization of plugin.
* Tweak - Webhook failed handler now handles all payment methods.
* Tweak - Make sure 3DS object is in pending status before redirecting.
* Tweak - CSS styling.
* Add - Username to the description field of the Stripe customer when created.
* Add - GDPR retention setting and logic.
* Fix - Payment request payments were redirected to Pay Order when it should be Order Received.
* Update - Stripe API version to 2018-05-21.

= 4.1.4 - 2018-05-22 =
* Tweak - Improve performance when getting source id and charge id from database.
* Add - GDPR privacy support.
* Update - WC 3.4 compatibility.

= 4.1.3 - 2018-05-07 =
* Add - Hook to manipulate payment request shipping posted values `wc_stripe_payment_request_shipping_posted_values`.
* Add - Accessibility attribute for credit card label.
* Add - Hook to change Stripe supported countries `wc_stripe_supported_countries`.
* Fix - WC 2.6 compatibility issue during a refund.
* Fix - Payment Request JS error when default country setting is not supported.
* Fix - Failed payments were sending two failed emails to admin instead of one.
* Tweak - Remove payment methods links from WC Payment Settings page for WC 3.4+.

= 4.1.2 - 2018-04-23 =
* Fix - When payment method is invalid while trying to force save card, unexpected error can occur.
* Fix - Pass name attribute when adding payment method from my account to allow Radar to work properly.
* Tweak - Icon CSS styling to work for more different theme setups.
* Remove - Bitcoin method as it is hard deprecated by Stripe as of April 23, 2018.

= 4.1.1 - 2018-04-17 =
* Tweak - Use payment_complete method when charge is succeeded or captured so other WC related tasks gets triggered.
* Tweak - Styling for the credit card logos.
* Add - Subscription change payment method support for SEPA.
* Add - Credit card branding detection on credit card field.
* Fix - When checkout form fields fails second time, page refreshes instead of using AJAX.
* Fix - Potential issue when WC is not activated.

= 4.1.0 - 2018-04-11 =
* Tweak - Create user session only on product detail page.
* Tweak - Payment Request session handling to bail if session already exists.
* Tweak - 3DS recommended is now required and 3DS optional is now not required.
* Tweak - Admin notices for currency check are now all dismissible.
* Tweak - Added all color payment logos in svg.
* Tweak - Update Stripe Fee and Stripe Net meta names.
* Tweak - Stripe Checkout Popup Modal will validate checkout before proceeding to payment step.
* Tweak - Verbiage for saving payment information to account.
* Fix - When SEPA was used in subscription payment, it does not show SEPA in payment method table.
* Fix - Refund via Stripe dashboard not reflecting amount in order notes.
* Fix - Potential idempotency issues with subs recurring payment processing.
* Add - Multibanco payment method.
* Add - EPS payment method.
* Add - Notice for customer to change saved cards when billing address has been updated.
* Add - Stripe fee and net payout to order line item total section.
* Add - Hook to separately control Stripe Checkout Modal's allow remember me option. `wc_stripe_allow_remember_me` (bool).
* Add - Hook to filter 3DS requirements `wc_stripe_require_3ds`.
* Add - Hook to verify zipcode in Stripe Checkout Modal. `wc_stripe_checkout_verify_zip`. Only works when require address is true.
* Add - Hook to require shipping address on Stripe Checkout Modal. `wc_stripe_checkout_require_shipping_address` (bool).
* Add - Hook to hide Stripe net payout on order line item `wc_stripe_hide_display_order_payout` (bool).
* Add - Hook to hide Stripe fee on order line item `wc_stripe_hide_display_order_fee` (bool).
* Add - Hook to filter out logging messages `wc_stripe_logging` (bool).
* Add - Hook to add content to the Stripe Checkout Receipt Page `wc_stripe_checkout_receipt_page_before_form`.
* Add - Hook to add content to the Stripe Checkout Receipt Page `wc_stripe_checkout_receipt_page_after_form`.
* Add - Hook to add content to the Stripe Checkout Receipt Page `wc_stripe_checkout_receipt_page_before_form_submit`.
* Add - Hook to add content to the Stripe Checkout Receipt Page `wc_stripe_checkout_receipt_page_after_form_submit`.
* Add - Hook to add handling to the Stripe Checkout return handler `wc_stripe_checkout_return_handler`.
* Add - Hook to change save to account checkbox text `wc_stripe_save_to_account_text`.
* Add - Compatibility with Payment Request/Apple Pay and different coupon types such as gift/store credit by Smart Coupons (requires WC 3.2+).
* Add - Compatibility with Payment Request/Apple Pay and Subscription product in cart page.
* Add - Compatibility with Payment Request/Apple Pay and Bookings product in cart page.
* Add - Compatibility with Payment Request/Apple Pay and Composite products in cart page.
* Add - Compatibility with Payment Request/Apple Pay and Product Bundles in cart page.
* Add - Compatibility with Payment Request/Apple Pay and Account Funds in cart page.
* Add - Compatibility with Payment Request/Apple Pay and Mix and Match products in cart page.
* Add - Compatibility with Payment Request/Apple Pay and Product Addons in cart page.
* Add - $post object on hook `wc_stripe_hide_payment_request_on_product_page`.
* Update - Stripe API version to 2018-02-28.
* Remove - Hard deprecated Stripe JS v2 credit card form process.

= 4.0.7 - 2018-02-23 =
* Fix - Potential conflict issue when adding payment method from another payment gateway.
* Fix - Issue when using saved card before sources were introduced.
* Add - Description field/setting for Stripe Checkout Modal/popup.

= 4.0.6 - 2018-02-20 =
* Fix - A WC 2.6 backwards compat issue with function from WC 3.0.
* Fix - Subs renewal sometimes failed due to parameters being different.
* Fix - Stripe accepts only NO for Norwegian language on Stripe Checkout.
* Fix - Refund fees may not accurately reflect net fees. Props @rvola.
* Fix - Undefined SERVERNAME property in some cases.
* Fix - Potential issue when a charge parameter changes due to initial failed request causing retries to fail.
* Fix - When 3DS is not required, failed payments was not change order status to failed.
* Fix - Potential duplicate order processes on WC side when webhook and redirect has a race condition.
* Remove - Checkout validation and let WC handle it.
* Update - Stripe API version to 2018-02-06.
* Add - Webhooks for review open/closed for Radar.
* Add - Hook `wc_stripe_refund_request` for refund request arguments.
* Add - Hook `wc_stripe_validate_modal_checkout` to enable 3rd party checkout validation.
* Add - Hook `wc_stripe_validate_modal_checkout_action`.

= 4.0.5 - 2018-02-02 =
* Fix - Illegal offset error on settings when non is defined or saved.
* Fix - Wrong ID used for dispute webhook handler.
* Fix - A WC 2.6 backwards compat issue while trying to get order id in subscriptions.
* Fix - Processing SEPA can't find email when not logged in.
* Add - Allow restricted secret keys to be used.
* Add - Statement Descriptor to SEPA Direct Debit.
* Add - Idempotency failure retry with easing to prevent multirequest issue.
* Add - POT file.
* Tweak - Make billing name optional on pay for order page.

= 4.0.4 - 2018-01-30 =
* Add - SEPA mandate notification email.
* Add - Preferred language to SOFORT and Bancontact so it can be localized.
* Add - Hook to change SEPA mandate notification to none "wc_stripe_sepa_mandate_notification".
* Add - Hook to change data for product when using Payment Request Button "wc_stripe_payment_request_product_data".
* Add - Hook to change the behavior of allowing subscriptions to charge a customer's default source "'wc_stripe_use_default_customer_source'".
* Add - Hook to source object "wc_stripe_sofort_source", "wc_stripe_p24_source", "wc_stripe_ideal_source", "wc_stripe_giropay_source", "wc_stripe_bancontact_source", "wc_stripe_alipay_source", "wc_stripe_3ds_source".
* Add - Hook to change payment request button total label "wc_stripe_payment_request_total_label".
* Add - Hook to change locale of Stripe Checkout "wc_stripe_checkout_locale".
* Add - Hook to change elements options "wc_stripe_elements_options".
* Fix - When checkout form produces an error on mobile, sometimes the blocking mask is not release blocking new input.
* Fix - On older subscription payments, the ending card number is not shown on the subscriptions table in my account.
* Fix - Filter to show payment request button on checkout page not working.
* Fix - WC session handling compatibility with WC 3.3.
* Fix - BW compatibility with WC 2.6.x on add_order_meta to prevent errors.
* Fix - Possible fix for duplicate charges due to webhook and redirect handler firing at the same time by adding delay to the webhook process.
* Tweak - In a subscription billing, Stripe source ID is no longer a required field.
* Tweak - On a subscription order renewal-- if source is empty, will now try to charge the default source.
* Notice - Bitcoin has been soft deprecated and Stripe will no longer support it on April 23, 2018. Please plan accordingly.
* Remove - Stripe Checkout Locale setting in favor of using store set locale.
* Update - Stripe API version to 2018-01-23.

= 4.0.3 - 2018-01-18 =
* Fix - Pass Stripe source as id instead of object as some sites may conflict with objects being passed.
* Fix - For Payment Request Button, if test keys are not filled, it can cause live mode not to function.

= 4.0.2 - 2018-01-17 =
* Add - 3DS support on Stripe Checkout ( Modal Popup ).
* Add - Filter to enable Payment Request Button on Checkout 'wc_stripe_show_payment_request_on_checkout'.
* Add - Filter to remove all fields from checkout validation. 'wc_stripe_validate_checkout_all_fields'.
* Add - Filter to remove required fields from checkout validation. 'wc_stripe_validate_checkout_required_fields'.
* Add - Custom error exceptions class.
* Add - Credit card field names for clarity.
* Fix - Possible conflicts with payment request totals when subscriptions is active.
* Fix - Undefined notice on save card via subscriptions if card is deleted.
* Fix - Error translation issue when 3DS is required.
* Fix - Possible 404 if getting customer source if no id was found.
* Fix - Add payment method was still available when save cards setting is disabled.
* Fix - In certain cases when webhook is used, refunds can show as doubled when it is not.
* Fix - Stripe checkout with bitcoin returns error on processing.
* Tweak - Remove Sofort country selection in favor of using the billing country.
* Tweak - Add payment page CSS styling.
* Tweak - Error log to show full response object.

= 4.0.2 - 2018-01-17 =
* Add - 3DS support on Stripe Checkout ( Modal Popup ).
* Add - Filter to enable Payment Request Button on Checkout 'wc_stripe_show_payment_request_on_checkout'.
* Add - Filter to remove all fields from checkout validation. 'wc_stripe_validate_checkout_all_fields'.
* Add - Filter to remove required fields from checkout validation. 'wc_stripe_validate_checkout_required_fields'.
* Add - Custom error exceptions class.
* Add - Credit card field names for clarity.
* Fix - Possible conflicts with payment request totals when subscriptions is active.
* Fix - Undefined notice on save card via subscriptions if card is deleted.
* Fix - Error translation issue when 3DS is required.
* Fix - Possible 404 if getting customer source if no id was found.
* Fix - Add payment method was still available when save cards setting is disabled.
* Fix - In certain cases when webhook is used, refunds can show as doubled when it is not.
* Fix - Stripe checkout with bitcoin returns error on processing.
* Tweak - Remove Sofort country selection in favor of using the billing country.
* Tweak - Add payment page CSS styling.
* Tweak - Error log to show full response object.

= 4.0.1 - 2018-01-11 =
* Fix - Add payment method conflict with terms and agreement page.
* Fix - Checkout validation checkout field names/labels were not translated.
* Fix - Card error translations.
* Add - Deprecated Apple Pay Class to prevent errors.

= 4.0.0 - 2018-01-08 =
* Add - Stripe Elements Credit Card form for PCI compliance.
* Add - Stripe Sources.
* Add - SEPA Direct Debit.
* Add - Bancontact.
* Add - Giropay.
* Add - Sofort.
* Add - iDeal.
* Add - Bitcoin.
* Add - P24.
* Add - Alipay.

= 3.2.3 - 2017-08-23 =
* Fix - Apple Pay action hook with wrong parameter causing errors.

= 3.2.2 - 2017-07-10 =
* Fix - Apple Pay button displaying in non Safari browser.
* Fix - Apple Pay with coupon not applying to total.

= 3.2.1 - 2017-06-25 =
* Fix - Discounts were not applying to total with Apple Pay.

= 3.2.0 - 2017-06-17 =
* Fix - Authorized first orders were not able to be refund.
* Fix - Payment Request not honoring different shipping address in certain cases.
* Fix - In certain Chrome versions, states are not abbreviated causing shipping validation issues with Payment Request API.
* Add - Support for Dynamic Pricing.

= 3.1.9 - 2017-05-25 =
* Fix - Handle a subscription renewal failed payment order correctly to prevent orders going into onhold status.
* Fix - Auto accept terms for Payment Request API to prevent blocker for the checkout.
* Fix - Add payment method via Stripe checkout button showed pricing.
* Fix - When Stripe customer id is no longer linked to Stripe account, customer not found can happen.
* Fix - On Subscription failed payment, new payment info not updating causing failed payments for recurring charges.
* Add - Action hook to manipulate process response from API "wc_gateway_stripe_process_response".
* Add - Apple Pay compatibility with WooCommerce Sequential Numbers Pro.

= 3.1.8 - 2017-05-08 =
* Fix - Legacy < WC 3.0 stripe checkout file reference link name causing file not found.

= 3.1.7 - 2017-04-19 =
* Fix - Additional WC 3.0 compatibility with subscriptions addons.
* Fix - Retry failed subscription payments with customer ID.
* Add - Site URL to metadata when charging subscription orders for reference.

= 3.1.6 - 2017-04-04 =
* Fix - TypeError issues on single product page when using Apple Pay on Desktop.
* Fix - In certain case, Apple Pay on single product page does not show shipping info.
* Fix - Use store's base location to show/hide accepted credit cards instead of currency.
* Fix - Unsupported product type when a variable product is added with Apple Pay.

= 3.1.5 - 2017-03-30 =
* Add - Check for WP error object in domain verification.

= 3.1.4 - 2017-03-30 =
* Tweak - If Apple Pay is not enabled, prevent Apple Pay Init.
* Fix - Update for WooCommerce 3.0 compatibility.
* Fix - Apple Pay on product detail page causes qty issue when using normal add to cart.
* Fix - A partial workaround for UK/CA postal codes issue for shipping methods that support partial postal code estimates.
* Fix - Stripe checkout did not validate properly formatted email address.
* Fix - Error messages were not able to translate when validating checkout form.
* Fix - Prevent payment gateway title logic ( Apple Pay ) from hijacking other payment methods.
* Remove - Stripe Checkout allow remember me setting as it is redundant to saved card setting.

= 3.1.3 - 2017-03-17 =
* Fix - When using Stripe Checkout, add payment method was disabled.
* Fix - Possible non object type when using preview pages.

= 3.1.2 - 2017-03-16 =
* Fix - Add payment method on My Account page error.

= 3.1.1 - 2017-03-16 =
* Fix - Apple Pay error notice log link is incorrect.
* Fix - Apple Pay domain verification paths check.

= 3.1.0 - 2017-03-15 =
* New - Apple Pay Support.
* New - Add Google Payment Request API.
* New - Minimum PHP 5.6.

= 3.0.7 - 2017-01-12 =
* New - Option to allow/disallow remember me on Stripe checkout modal.
* Fix - Paying for order incorrectly uses cart amount.
* Fix - Using WC function before checking exists causes fatal error.

= 3.0.6 - 2016-11-09 =
* Fix - When adding declined cards, fatal error is thrown.
* Fix - After a failed/declined process, valid cards are not accepted.
* Fix - When paying via pay order page/link, billing info is not sent.
* Fix - Account for all types of errors for proper localization.
* Fix - Correctly reference Stripe fees/net based on Stripe account locale.
* Fix - Bitcoin image not showing.
* New - Introduce "wc_gateway_stripe_process_payment_error" action hook.
* New - Introduce "wc_gateway_stripe_process_payment" action hook.

= 3.0.5 - 2016-11-03 =
* Fix - Previous upload of files didn't take. Retry.

= 3.0.4 - 2016-09-28 =
* Fix - Missing min files.

= 3.0.3 - 2016-09-27 =
* Fix - Remove bitcoin icon when not using Stripe Checkout mode as it is not supported.
* Fix - Failed payment order was not sending email to admin.
* Fix - Saved card option was not being honored.
* New - Filter for WC_Payment_Gateway_CC::wc_stripe_generate_payment_request return value.
* New - Filter to disallow prepaid cards. "wc_stripe_allow_prepaid_card".
* New - Filter to require billing address on Stripe Modal Checkout. "wc_stripe_checkout_require_billing_address".
* New - Localized Stripe error messages.

= 3.0.2 - 2016-06-14 =
* Fix - Set empty array as default value for first argument in WC_Stripe_Customer::create_customer
* Tweak - Update default title to make it consistent with existing titles

= 3.0.1 - 2016-06-08 =
* Backwards compatibility update to prevent error finding WC_Payment_Token_CC.
* Added inline validation of keys.

= 3.0.0 - 2016-06-07 =
* First public WordPress.org release.
* Refactor for WC 2.6 and above. Legacy support for 2.5.
* Improved saved card handling using tokenization API in WooCommerce.

= 2.6.12 - 2016-04-13 =
* Fix - When saved cards option is enabled with no cards on file, CC field was hidden.

= 2.6.11 - 2016-04-11 =
* Add - Option to set a default card in manage card section and detect previous card paid by subscription.
* Fix - Admin notice link when key is not added and when addons are present.

= 2.6.10 - 2016-03-16 =
* Tweak - Add logging mechanism. New 'Logging' option is added in Stripe gateway setting to enable logging.
* Fix - Allow language files to be located outside of plugin directory

= 2.6.9 - 2016-02-29 =
* Tweak - Allow mechanism to override Stripe JS error handler. See https://gist.github.com/gedex/240492f479c7443e4780
  for an example to override error handler with simple alert.

= 2.6.8 - 2016-02-11 =
* Tweak - Include card brand in saved cards radio label class
* Tweak - Add action when deleting card
* Tweak - Add actions for add_card and add_customer
* Tweak - Add support for automatic localisation in Stripe Checkout modal
* Fix - Check for Stripe error code emptiness before returning the WP_Error

= 2.6.7 - 2015-12-17 =
* Fix is_available SSL check to also work properly on hosts that always serve HTTPS

= 2.6.6 - 2015-12-03 =
* Fix a JavaScript bug introduced in 2.6.4 that caused checkout with a saved card to fail

= 2.6.5 - 2015-12-02 =
* Do not require a card id when updating a subscription payment method

= 2.6.4 - 2015-11-20 =
* Fix a JavaScript bug that caused the Stripe Checkout popup to be blocked on Chrome for iOS

= 2.6.3 - 2015-11-12 =
* Add metadata to subscription payments in stripe dashboard to indicate whether it is the initial or a recurring payment

= 2.6.2 - 2015-11-06 =
* Fix bug that would cause multiple subscriptions to not be supported under certain circumstances

= 2.6.1 - 2015-09-15 =
* Unset source if not set during pre-order release payments.
* Store customer ID if not logged in for pre-order payments.

= 2.6.0 - 2015-09-02 =
* Subscriptions 2.0 support.

= 2.5.4 - 2015-08-11 =
* Tweak - Terms and conditions error styling when required
* Tweak - Account password error styling when required

= 2.5.3 - 201-.7-28 =
* Added - Filter to prevent Stripe from sending its own receipts "wc_stripe_send_stripe_receipt"

= 2.5.2 - 2015-07-19 =
* Fix - Removed deprecated add_error function
* Tweak - Improve error message when Stripe checkout function is used

= 2.5.1 - 2015-07-01 =
* Fix - Only send receipt_email when set.

= 2.5.0 - 2015-05-11 =
* Update to API version 2015-04-07
* Feature - Support authorize on subscriptions first payment.
* Tweak - Option labels.
* Tweak - Safe remote GET.
* Tweak - SSLVerify true.
* Tweak - Update card icons.
* Tweak - Pass receipt email.

= 2.4.3 - 2015-05-11 =
* Fix - fixed validation issue when account creation is not checked
* Update - Stripe checkout JS API v2

= 2.4.2 - 2015-03-23 =
* Fix - Create account password field was not being validated

= 2.4.1 - 2015-03-20 =
* Fix - Undefined JS error due to deprecated ajax_loader_url
* Fix - When using Stripe checkout JS, some form required fields were not validating

= 2.4.0 - 2015-02-20 =
* Added support for bitcoin currency

= 2.3.0 - 2015-01-31 =
* Added 'wc_stripe_description' filter to allow filtering of payment description.
* Added order_review handling for stripe checkout.
* Mark order as failed is Stripe API call fails
* Allow valid HTML in Stripe Description
* Fix settings link
* use get_order_currency() when generating payment args, rather than always using store currency.
* Fix fees where not logged correctly when using authorized first capture later
* Retry payment if customer_id is invalid.

= 2.2.8 - 2014-11-21 =
* Save card/customer id for regular orders.

= 2.2.7 - 2014-11-20 =
* Fixed all instances where order IDs were used instead of user IDs.
* Update orignal order card/customer ids for renewals.
* Add reasons to refunds.

= 2.2.6 - 2014-11-18 =
* Stripe card ID should be taken from the order, not the user.
* Fix order_meta_query.

= 2.2.5 - 2014-11-06 =
* Round totals to 2 decimals so when we multiply by 100 we're sure we've got an integer.

= 2.2.4 - 2014-10-01 =
* Fix card display for subscriptions.

= 2.2.3 - 2014-10-01 =
* Fixed textdomain name

= 2.2.2 - 2014-09-23 =
* Set API version to 2014-09-08.
* Fixed card display (type->brand).

= 2.2.1 - 2014-09-15 =
* Fix strict standards warning.

= 2.2.0 - 2014-09-01 =
* Replaced woocommerce_get_template (deprecated) with wc_get_template.
* Tweak refund support.
* Support for pre-orders.
* Fixed typo.

= 2.1.0 - 2014-08-06 =
* Associate stripe customers with wp users.
* Refactored saved card code.
* Use Stripe API to get and delete saved cards.
* Updated subscriptions integration for saved cards.
* WC 2.2 - Store transaction ID.
* WC 2.2 - Refund support.

= 2.0.4 - 2014-07-31 =
* Tweaked the stripe checkout submission method.

= 2.0.3 - 2014-07-25 =
* wc_stripe_manage_saved_cards_url filter.
* Zero decimal currency handling.
* Only open stripe model when required fields are completed.

= 2.0.2 - 2014-06-06 =
* Fix use of saved cards on subscriptions.

= 2.0.1 - 2014-05-29 =
* Fix ajax loading gif.
* Fix notices.
* Fix stray comma in stripe.js.
* Prompt user to accept terms before showing stripe checkout modal.

= 2.0.0 - 2014-05-21 =
* Added the WC credit_card_form - this extension now requires WC 2.1+
* Option to disable saved cards
* Refactored code base
* Fix jquery notices
* Fix settings page links
* woocommerce_stripe_request_body filter
* Store fees for subscriptions

= 1.8.6 - 2014-05-20 =
* correct SSl message
* decode get_bloginfo( 'name' ) for plain text display

= 1.8.5 - 2014-05-10 =
* Updated textdomains
* date_i18n
* Improve stripe checkout flow - pop up on the checkout button click

= 1.8.4 - 2014-04-01 =
* Fix updating credit card used for future subscription payments when paying for a failed subscription renewal order with a new credit card.

= 1.8.3 - 2014-02-13 =
* Fix fatal error for subscription payments of deleted products.

= 1.8.2 - 2014-02-06 =
* Fix notice on card delete

= 1.8.1 - 2014-01-28 =
* set default for $checked

= 1.8.0 - 2014-01-08 =
* Checked compatibility with 2013-12-03 API
* 2.1 compatibility
* Pre-filled email address when using stripe checkout

= 1.7.6 - 2013-12-02 =
* Fix card display

= 1.7.5 - 2013-11-27 =
* Show payment method for subscriptions on account page

= 1.7.4 - 2013-11-20 =
* Expand/close when using saved cards.
* Use balance_transaction to get and store fees

= 1.7.3 - 2013-11-01 =
* Default to saved card

= 1.7.2 - 2013-11-01 =
* Added missing global in update_failing_payment_method

= 1.7.1 - 2013-09-28 =
* Remove non-existant (yet) function

= 1.7.0 - 2013-09-25 =
* Different credit card image for US than for other countries + a filter.
* Support for upcoming version of subscriptions.
* Add new woocommerce_stripe_month_display filter

= 1.6.0 - 2013-09-02 =
* Option to define a Stripe Checkout Image
* Removed currency check due to beta rollout

= 1.5.14 - 2013-08-12 =
* New cards format for subscriptions class.

= 1.5.13 - 2013-07-24 =
* Updated customer response object handler to work with new cards format.
* Fixed delete card button

= 1.5.12 - 2013-07-24 =
* EUR support for Stripe Beta

= 1.5.11 - 2013-07-17 =
* Workaround for stripe error messages.

= 1.5.10 - 2013-06-28 =
* Store charge ID, fee in meta

= 1.5.9 - 2013-06-28 =
* Capture true default

= 1.5.8 - 2013-06-18 =
* Add currency to stripe checkout js
* Authorize-only mode. Captures payment when order is made processing.

= 1.5.7 - 2013-06-15 =
* Added 'capture' option should you wish to authorize only. Authorized orders are on-hold. Processed orders capture the charge automatically.

= 1.5.6 - 2013-06-03 =
* added data-currency to stripe-checkout

= 1.5.5 - 2013-04-26 =
* Allow card re-entry in stripe checkout after errors.

= 1.5.4 - 2013-04-19 =
* GBP fix

= 1.5.3 - 2013-04-15 =
* Support GBP currency code (For UK Beta)

= 1.5.2 - 2013-04-09 =
* Send billing city to stripe

= 1.5.1 - 2013-01-24 =
* Add support for changing a subscription's recurring amount

= 1.5.0 - 2013-01-18 =
* Supports Stripe Checkout https://stripe.com/docs/checkout

= 1.4.0 - 2013-01-18 =
* WC 2.0 Compat

= 1.3.5 - 2012-12-05 =
* Pass address fields to stripe.js on pay page.

= 1.3.4 - 2012-12-05 =
* Updater

= 1.3.3 - 2012-10-22 =
* Fix CAD check

= 1.3.2 - 2012-10-15 =
* Fixed bug causing settings to not show when using CAD

= 1.3.1 - 2012-10-11 =
* Add support for changing subscription next payment date
* Remove order meta from subscription renewal orders

= 1.3 - 2012-09-20 =
* Allowed canadian dollars - Stripe is beta testing support for Canada

= 1.2.1 - 2012-09-11 =
* Fix text mode SSL logic

= 1.2 - 2012-09-01 =
* SSL not required in TEST MODE
* Saved cards - store customer tokens and let users pay again using the same card
* Subscriptions use a single customer, rather than per-order
* Only load JS on checkout

= 1.1 - 2012-06-19 =
* Update woo updater
* Class name update
* Stripe JS for added security - you will need to re-enter keys and ensure you are using WooCommerce 1.5.8
* Subscriptions support (requires WC Subscriptions addon)

= 1.0 - 2011-12-08 =
* First Release
