*** Changelog ***

= 2.1.0 - 2020-10-06 =
* New - Add support for PayPal Credit messaging. PR#810
* Fix - Hide the "Pay Later" funding method when "PayPal Credit" is disabled. PR#811
* Fix - Display correct image size in the PayPal Checkout window. PR#779

= 2.0.3 - 2020-07-01 =
* Fix - Records the proper refunded_amount to _woo_pp_txnData in the database PR#764
* Fix - Redirect customers back to the original page they left on after closing PayPal modal PR#765
* Fix - Preserve horizontal layout style setting when using standalone buttons PR#774
* Fix - Smart payment buttons compatibility with older browsers PR#778
* Tweak - Update the Require Phone Number field description PR#772
* Dev - Make the SDK script args filterable PR#763

= 2.0.2 - 2020-05-28 =
* Fix - Javascript errors during checkout when the Payment Action is set to Authorize. PR#754
* Fix - Style the Smart Payment Buttons according to the chosen button size setting. PR#753
* Tweak - Change the "or" separator used on the cart page to be consistent with other payment gateways (uppercase and 100% opacity). PR#755

= 2.0.1 - 2020-05-26 =
* Fix - PayPal buttons not loading on the page, accompanied with the javascript/console error: "paypal.getFundingSources (or paypal.Buttons) is not a function". PR#740

= 2.0.0 - 2020-05-25 =
* New - Upgrade to the latest PayPal Checkout Javascript SDK. PR#668
* Add - New setting found under Button Styles for choosing a Smart Payment Button label. PR#666
* Add - Support for more locales. PR#658
* Fix - Display Smart Payment Buttons on Product pages built from a shortcode. PR#665
* Fix - Send the product SKU to PayPal so it's displayed in the order/transaction details and reports on PayPal. PR#664
* Fix - Show an error when saving incomplete/missing API credentials. PR#712
* Fix - Remove PHP warnings in later versions of PHP when a PayPal Session doesn't exist. PR#727
* Fix - Error when processing refunds (Already Refunded. No Amount to Refund). PR#710
* Fix - Required state field errors on the "Confirm your PayPal Order" page when returning from PayPal. PR#725
* Fix - Display WC Add To Cart validation errors on the product page when clicking the PayPal Smart Payment Buttons. PR#707
* Update - Smart Payment Buttons are enabled by default and settings to toggle these on/off have been removed and replaced with a filter. PR#660
* Update - Deprecate unused/incomplete function `WC_Gateway_PPEC_Client::update_billing_agreement()`. PR#602
* Update - Move inline javascript found in `settings-ppec.php` to `ppec-settings.js`. PR#676
* Update - Move Support and Documentation links from the plugin actions to plugin meta section on the Plugin activation/deactivation page. PR#735
* Update - WooCommerce 4.1 and WordPress 5.4 compatibility. PR#732

= 1.6.21 - 2020-04-14 =
* Fix - Ensure Puerto Rico and supported Locales are eligible for PayPal Credit. PR#693
* Fix - Support purchasing subscriptions with $0 initial payment - free trials, synced etc. PR#698
* Fix - Only make the billing fields optional during an active PayPal Checkout session. PR#697
* Fix - Uncaught JS errors on product page when viewing and out-of-stock product. PR#704
* Fix - Loading API certificates and improves managing certificate settings. PR#696
* Fix - Displaying PayPal Smart Payment buttons on pages with single product shortcode. PR#665
* Fix - Do not add discounts to total item amount and cause line item amount offset. PR#677
* Fix - Redirect to Confirm your PayPal Order page for subscriptions initial purchases using PayPal Smart Buttons. PR#702
* Fix - Display missing checkout notice when email format is incorrect. PR#708
* Add - Filter product form validity via a new `wc_ppec_validate_product_form` event. PR#695
* Add - Translation tables for states of more countries. PR#659
* Update - WooCommerce 4.0 compatibility

= 1.6.20 - 2020-02-18 =
* Fix - Upgrade the plugin on plugins loaded rather than on plugin init. PR#682

= 1.6.19 - 2020-02-06 =
* Fix - Check if order exists before adding order actions. PR #653
* Fix - Global attributes stripped before sent to PayPal if unicode characters. PR#470
* Fix - Handle subscription payment change. PR#640
* Fix - Fixes error "Trying to get property of non-object" found during onboarding wizard. PR#654
* Fix - Hide smart payment buttons on mini cart when cart is empty. PR#450
* Fix - Only display smart buttons on product page if product is in stock. PR#662
* Fix - Do not display smart buttons for external products and grouped products. PR#663
* Update - Display a WooCommerce pre 3.0 admin notice warning. In an upcoming release PayPal Checkout will drop support for WC 2.6 and below. PR#671

= 1.6.18 - 2019-12-05 =
* Fix - Send fees to PayPal as line items
* Fix - Fix error 10426 when coupons are used
* Fix - Call to a member function has_session() on null
* Add - Notice about legacy payment buttons deprecation
* Fix - Use order currency when renewing subscription instead of store currency
* Update - WooCommerce 3.8 compatibility
* Update - WordPress 5.3 compatibility

= 1.6.17 - 2019-08-08 =
* Update - WooCommerce 3.7 compatibility
* Add - Filter to require display of billing agreement during checkout
* Add - Add CURRENCYCODE to capture_payment
* Add - Add filter for buttons on products
* Fix - Skip wasteful render on initial Checkout page load
* Fix - Appearance tweaks on Checkout screen

= 1.6.16 - 2019-07-18 =
* Fix - Don't require address for renewal of virtual subscriptions
* Fix - Avoid broken confirmation screen edge case after 10486 redirect

= 1.6.15 - 2019-06-19 =
* Fix - Prevent PHP errors when no billing details are present in PP response
* Fix - Require billing address for virtual products when enabled
* Add - Hook when a payment error occurs

= 1.6.14 - 2019-05-08 =
* Fix - Failing checkout when no addons are used

= 1.6.12 - 2019-05-08 =
* Fix - Better handling of virtual subscriptions when billing address is not required
* Fix - Prevent errors showing when purchasing a virtual product with WP_DEBUG enabled

= 1.6.11 - 2019-04-17 =
* Fix/Performance - Prevent db option updates during bootstrap on each page load
* Tweak = WC 3.6 compatibiliy.

= 1.6.10 - 2019-03-05 =
* Fix - Use only product attributes when adding to cart

= 1.6.9 - 2019-02-03 =
* Fix - Avoid SPB render error by tweaking 'allowed' funding methods' empty value

= 1.6.8 - 2019-01-25 =
* Fix - Guard against themes applying filter with too few params

= 1.6.7 - 2019-01-25 =
* Fix - Error 10413 when using coupons
* Fix: All variation details when using buttons on product pages are kept
* Fix: Always render the PayPal buttons in the mini cart

= 1.6.6 - 2019-01-09 =
* Fix - Discount items were not being included
* Add - Filter for order details to accept decimal quantities of products
* Fix - Unable to buy variation from product page
* Fix - Can use PayPal from product page without inputting required fields
* Add - Display PayPal fees under the totals on the order admin page
* Add - Prefill name, phone, and email info in PayPal Guest Checkout from checkout screen

= 1.6.5 - 2018-10-31 =
* Fix - Truncate the line item descriptions to avoid exceeding PayPal character limits.
* Update - WC 3.5 compatibility.
* Fix - checkout.js script loading when not needed.
* Fix - Missing shipping total and address when starting from checkout page.

= 1.6.4 - 2018-09-27 =
* Fix - Billing address from Checkout form not being passed to PayPal via Smart Payment Button.
* Fix - Checkout form not being validated until after Smart Payment Button payment flow.

= 1.6.3 - 2018-08-15 =
* Fix - Fatal error caused by a fix for Smart Payment Buttons.

= 1.6.2 - 2018-08-15 =
* Fix - Tax not applied on the (Confirm your PayPal order) page at the checkout.

= 1.6.1 - 2018-07-04 =
* Fix - GDPR Fatal error exporting user data when they have PPEC subscriptions.
* Fix - PayPal Credit still being disabled by default.
* Update - Rename 'PayPal Express Checkout' to 'PayPal Checkout'.
* Fix - Missing PayPal branding in "Buy Now" Smart Payment Button.
* Fix - PHP warning when PayPal Credit not supported and no funding methods hidden.
* Fix - Smart Payment Buttons gateway not inheriting IPN and subscription handling.
* Fix - Single product Smart Payment Button failing without existing session.
* Fix - When cart is empty, JS error on cart page and mini-cart payment buttons showing.
* Add - Locale filter.

= 1.6.0 - 2018-06-27 =
* Add - Smart Payment Buttons mode as alternative to directly embedded image links for all instances of PayPal button.
* Fix - Help tip alignment for image settings.
* Update - Enable PayPal Credit by default, and restrict its support by currency.
* Update - Omit 'Express Checkout' portion of default payment method title.
* Update - Enable Express Checkout on regular checkout page by default.
* Update - Enable Express Checkout on single product page by default.

= 1.5.6 - 2018-06-06 =
* Fix    - Virtual products cause issues with billing details validation.

= 1.5.5 - 2018-05-23 =
* Update - WC 3.4 compatibility
* Update - Privacy policy notification.
* Update - Export/erasure hooks added.

= 1.5.4 - 2018-05-08 =
* Add - Hook to make billing address not required `woocommerce_paypal_express_checkout_address_not_required` (bool).
* Fix - Duplicate checkout settings when PP Credit option is enabled.
* Fix - Impossible to open API credentials after saving Settings.
* Fix - Prevent filtering if PPEC is not enabled.
* Fix - Single Product checkout: Quantity being duplicated due to multiple AJAX calls.
* Fix - When returning from PayPal, place order buttons says "proceed to payment".
* Tweak - Default billing address to be required.

= 1.5.3 - 2018-03-28 =
* Fix - wp_enqueue_media was not correctly loaded causing weird behavior with other parts of system wanting to use it.
* Fix - Typo in activation hook.

= 1.5.2 - 2018-02-20 =
* Tweak - Express checkout shouldn't display "Review your order before the payment".
* Fix - Compatibility with Subscriptions and Checkout from Single Product page.
* Fix - Make sure session object exists before use to prevent fatal error.

= 1.5.1 =
* Add   - Hooks for Settings.
* Fix   - Missing Settings link on Plugins page.
* Fix   - Use correct image URL for PayPal image logo.
* Tweak - Default to signature method if certificate missing, rather than other way around.

= 1.5.0 =
* Add   - PayPal credit is now available on checkout.
* Fix   - WC 3.3 compatibility.
* Add   - Ability to select existing / upload new image(s) for logo / header fields.
* Fix   - Shipping address overridden when PayPal returns billing address.

= 1.4.7 =
* Fix   - Issue with missing PayPal session information.
* Fix   - Dependency error when using LibreSSL.
* Fix   - Additional compatibility with shipping plugins
* Fix   - Issue where deprecated `WC_Cart::get_cart_url` is being used.
* Tweak - Makes admin notification dismissible.

= 1.4.6 =
* Fix   - Coupon related PayPal error 10413.

= 1.4.5 =
* Fix   - Title/Description fields in the settings should appear based on Enable PayPal Express Checkout.
* Add   - Invoice Prefix now has the ability to be empty.
* Fix   - Additional compatibility fixes for line items.
* Fix   - PHP notice for Subscription id.

= 1.4.4 =
* Fix   - PayPal error (10431).
* Fix   - PHP notices.

= 1.4.3 =
* Fix   - Refunds not working on authorize then captured transactions.
* Fix   - Checkout on single product available before variations are chosen.
* Fix   - Not Returning PayPal Transaction Fee.
* Fix   - 10431 (Item Amount Invalid at Checkout) error with discounts.
* Fix   - Phone not returned and "Require Phone Number" setting not working.

= 1.4.2 =
* Fix   - _paypal_status on Authorize transactions not updating to processing after capture.
* Fix   - 10413 (The totals of the cart item amounts do not match order amounts) error with discounts.
* Fix   - Shipping Address being required on Virtual products.

= 1.4.1 =
* Fix   - Properly calculate whether Billing phone is required or not.
* Fix   - Set NOSHIPPING based on product shipping requiredness (e.g. virtual products do not need shipping, etc).

= 1.4.0 =
* Tweak - Use shipping discount instead of tax when adjustment negative.
* Fix   - Cannot process refunds on "authorize" transactions.
* Add   - Option for displaying express checkout button on the product page.
* Fix   - If there are no shipping options in WooCommerce, PayPal doesn't pass a shipping address to WC.
* Add   - Option to set Billing phone number mandatory.
* Add   - Option to disable checkout with PayPal button on Cart page.
* Fix   - Trigger required shipping cost before checkout.

= 1.3.0 =
* Fix - Fatal Error calling is_main_query.
* Fix - Customer invoice email doesn't allow payment with PPEC.
* Fix - Double stock reduction.
* Fix - Payment automatically goes to complete when payment action set to Authorize.

= 1.2.1 =
* Fix - Avoid plugin links notice when WooCommerce is not active - props rellect
* Fix - Do not show this gateway when the cart amount is zero
* Fix - Fix 10413 error that prevents checking out with a coupon
* Fix - Filter default address fields to ensure they are not required

= 1.2.0 =
* Fix - Prevent conflict with other gateways.
* Fix - Compatibility with WooCommerce 3.0, including ensuring the customer address is saved correctly.

= 1.1.3 =
* Fix   - Guest users can checkout without giving shipping information when required.
* Fix   - Modal popup not working properly. Changed to full page redirect with a hook to add back the modal/popup.
* Tweak - Guest checkout is on by default. Should be turned off by using this filter: woocommerce_paypal_express_checkout_allow_guests.

= 1.1.2 =
* Fix - Make sure translations are loaded properly.
* Fix - Added IPN (Instant Payment Notification) handler.
* Fix - Make sure guest payment is enabled by default.

= 1.1.1 =
* Fixed fatal error prior to PHP 5.5 caused by passing empty() a non-variables.

= 1.1.0 =
* Improved flow after express checkout by removing billing and shipping fields and simply allowing shipping method selection.
* Fix - Fixed in-context checkout to work after ajax cart reload.
* Fix - Added missing 'large' button size.
* Fix - Prevent double stock reduction when payment complete.
* Fix - Allow PPE from pay page and don't use in-context checkout for PayPal Mark on checkout.
* Fix - Increase timeout to 30 to prevent error #3.
* Tweak - If the store owner decides to enable PayPal standard, respect that decision and remove EC from checkout screen.
* Tweak - Change place order button to "continue to payment".
* Tweak - Moved default button location to woocommerce_proceed_to_checkout hook.
* Tweak - Improved button appearance and look alongside regular checkout button.

= 1.0.4 =
* Fix - Wrong section slug / tab after redirected from connect.woocommerce.com
* Fix - Make sure to check if credentials were set in cart and checkout pages
* Fix - Removed configuration of chipers to use for TLS

= 1.0.3 =
* Fix - Issue where missing rounding two decimal digits of tax causing transaction being refused
* Fix - Issue where custom logo image URL is not saved

= 1.0.2 =
* Fix - Strip out HTML tags from item descriptions to prevent warning from PayPal
* Fix - Issue of incorrect plugin's setting link from admin plugins page when using WooCommerce 2.6
* Tweak - Make enabled option to default to true
* Fix - Issue of missing help icon when plugin directory is not the same as plugin's slug.
* Tweak - Add admin notice to setup / connect after plugin is activated.

= 1.0.1 =
* Fix - Make sure OpenSSL is installed with 1.0.1 as the minimum required version, otherwise display warning
* Fix - Make sure cURL transport is available for WP HTTP API, otherwise display warning
* Fix - Unhandled certificate-style API credential
* Fix - Fixed calculated tax and coupons data that sent over to PayPal
* Fix - Fixed calculated shipping discount data that sent over to PayPal

= 1.0.0 =
* Initial stable release

= 0.2.0 =
* Fix - Add cancel link on checkout page when session for PPEC is active
* Fix - In-context mini browser keeps spinning because failure xhr response is not handled properly

= 0.1.0 =
* Beta release
