== Changelog ==
= 6.0.2 =
* Spanish, French, German and Italian translations are now included with the plugin. They cover the admin screens and the text the plugin writes itself; the form labels and messages you set on the Fields, Messages and Validation screens are your own text and stay as you typed them.
* The whole of the settings area and the payments list are now translatable. Around five hundred pieces of admin text were plain English in the code, so no translation could ever reach them.
* Fixed: the Reset button on the Personal Details screen deleted the validation messages instead of resetting the personal details fields.
* Bundled translations were never loaded before, because the plugin header spelt Text Domain wrongly and never registered its languages folder with WordPress. Both are fixed, and a translation from wordpress.org for the same language will still take precedence if one ever exists.
* The translation template has been regenerated for 6.0. It was last built before the 6.0 work and was missing everything added since.
* Removed a stale template file from the languages folder that had been shipping with the plugin since 2018 and had nothing to do with it.

= 6.0.1 =
* Version numbering only. 6.0 was released with the plugin numbered 6.0 while wordpress.org was tagged 6.0.0, so the directory could not find the release its stable tag pointed at. Everything is numbered the same way now. No code has changed since 6.0.

= 6.0.0 =
* The plugin now has three paid plans, Silver, Gold and Platinum, and several settings that used to be in the free version now need one of them. This has been announced in the plugin admin since 2022, along with a free upgrade to the Gold plan that covers every option the free version had. If you have not claimed it, use the notice on the settings screen before updating.
* Silver and above: the Auto Responder that emails the payer, the IPN settings and the IPN listener, postage and handling, including postage in the amount to pay, PayPal sandbox mode, creating a WordPress user when someone pays, and email and knowledge base support. Every paid plan gets it; the free version uses the wordpress.org forum.
* Gold and above: coupon codes, recurring payments, the range slider, donations only mode, pre-set reference options, offering a choice of prices, and amount validation.
* Charging one set price stays free. A form that cannot set a price is a donation box rather than a payment form.
* Platinum, unchanged from before: multiple products, the datepicker, Mailchimp data collection, and the checkout logo.
* Settings your plan does not include are kept, not deleted. They read as switched off and the fields are hidden, but the stored values stay and come back exactly as they were if you upgrade later.
* New in Platinum: Stripe Checkout. Take card payments as well as PayPal. The customer pays on a page hosted by Stripe, so no card details reach your site. Set it up on the new Stripe tab. Recurring forms continue to use PayPal.
* Payments are no longer confirmed automatically in the free version, because the IPN listener needs Silver. Free forms still take payments through PayPal, but orders stay pending rather than being marked paid.
* New: "Mark Selected as Paid" on the payments screen, so any plan can settle an order by hand after checking it in PayPal.
* New Integrations tab. Mailchimp has moved there from the bottom of Send Options, where it was easy to miss and shared that page's Reset button. Resetting Mailchimp will no longer clear your submission settings.
* The Products tab is now shown on every plan rather than hidden, so the feature is visible before you buy.
* The upgrade prompt on the settings screen now offers the next plan up rather than always the top one.
* Creating and managing forms has its own screen, under Forms, rather than sitting on the Setup screen among settings that have nothing to do with forms. The Setup tab is now Global, and holds only the settings that apply to the whole site.
* The settings navigation is now grouped. Eleven tabs across two rows have become six sections, Setup, Form, Messages, Selling, Payments and Integrations, with the pages inside each shown beneath. Personal Details is in the navigation for the first time, having previously been reachable only from a link on the Fields screen.
* The payment form has been restyled. It is now a constrained card that takes your theme's typeface, with softer borders, room to breathe and a clearer button, instead of a 280 pixel box with a bright green outline on every required field. These are defaults: a form whose styling you have already set keeps every choice you made.
* Fix: a named form whose currency had never been saved showed its amount as 0.00 and printed a PHP warning above the form. The currency now falls back to the default form's, then to USD.
* Fix: the form heading and introduction did not display on the form.
* Fix: the PayPal image above the form, and a custom submit button image, never displayed. Their src attribute had been mangled by an old global rename.
* Removed the Styles Location setting, which did nothing at all.
* The admin screens have been restyled to match WordPress. Destructive buttons no longer look like the button that confirms: Reset and the Delete buttons on the payments screen are now marked in red, and Delete All says how many records it will destroy.
* Leaving a settings tab with unsaved changes now warns you first.
* Fix: a note on four settings screens rendered as raw markup instead of text.
* Fix: the Knowledge Base and support forum buttons did not open in a new tab.
* Fix: submitting a form without ticking the terms and conditions box raised a PHP warning, on exactly the submission the check exists to catch.
* Fix: a form that refused a payment showed red boxes and no explanation if the validation messages had ever been saved blank. Blank now falls back to the wording the plugin ships with, and that wording has been rewritten to say what to do next. Use Reset on the Validation screen to go back to it.
* Fix: the Error Checker on the Validation screen could not reach admin-ajax, so it did not exercise the same path as a real submission.
* The checkout logo has a media library button, so a logo can be chosen or dragged in rather than uploaded elsewhere and its URL pasted. It has also moved down into Global Settings, having previously had the same prominence as the PayPal account email.
* Removed debug logging that the payment form wrote to the browser console on every page it appeared on, including the contents of the form being submitted.
* The Products and Coupons screens now say whether the field they configure is switched on for the form you are editing, and how to switch it on if not. Both screens could previously be filled in completely with no effect on the form and nothing to explain why. The Coupons screen also says when a form takes recurring payments, which rules coupons out entirely.
* The multiple products list can be given a heading. It previously appeared on the form as a bare set of rows with no label.
* Fix: saving the Products screen with "Allow quantities" unticked raised a PHP warning.
* Two fields on the Products screen were both labelled "Form label". The second one sets the message shown when no product is chosen, and now says so.
* Fix: nothing on the Fields screen could be switched off. Ticking a box saved, unticking it did not, so a field added to a form could never be removed again. Introduced during this release while fixing a different save bug.
* Fix: a form set to validate a maximum quantity refused every submission if the message did not contain a number. The limit is read out of that message, so writing it in words or translating it left no limit to find and nothing on the form explained the refusal. The Fields screen now says the message has to contain the number.
* Fix: a form with a fixed item number and no item set printed the words "Item Number" on the form where the item number should have been.
* Fix: a choice of prices was offered with the pence dropped, so 9.50 read as "$9.5" and 12.00 as "$12". The amount charged was always right; only the display was wrong.
* Fix: the Gold gate on offering a choice of prices read the wrong setting, so it never applied. The amount label was trimmed at its first comma instead, which also truncated any label containing one.
* Fix: two settings tabs were a white screen. Nothing has linked to them for years, but an old bookmark reached a page that called a function the plugin no longer contains. They now fall through to the first tab like any unrecognised address.
* Fix: saving the Products screen without filling in every one of the nine product rows raised PHP warnings.
* Fix: choosing a form from the form selector warned if the form previously selected had since been deleted.
* Fix: a newly installed plugin raised PHP warnings on several settings screens until the Global screen had been saved once. The default form was named by false rather than by its name, and PHP reads false as 0 when it is used to look something up.
* Fix: the payment confirmation email and the create a WordPress user option read the payment details without checking they were all present. Whether they were depended on which of the three payment paths had sent them.
* Fix: exporting payments to CSV warned for every record stored before a field was switched on, and exported the placeholder text from the form as though the customer had typed it.
* Five button images now ship with the plugin and can be chosen on the Styling screen: three PayPal and two for cards. Previously the only way to use a button image was to find one elsewhere and upload it.
* The card buttons are shown on every plan so the option is visible, and become selectable once Stripe is switched on with your keys entered. Until then they are greyed out with a link to set Stripe up, or to the plans if you are not on Platinum.
* A card button is not displayed on a form that cannot take a card, so a form never says "Pay by Card" while sending the customer to PayPal. The setting is kept and the button returns when Stripe is available again.
* Fix: a stray character on the Styling screen printed "</td" as text beside the input field colour.
* Fix: pressing the button on a form set to Stripe did nothing. The form validates first and the script then posts a form out of the reply, which is how a PayPal payment leaves the site. A Stripe payment has no form to post, only a checkout address, so nothing happened and the customer waited on a spinner while a real Stripe session went unused.
* Fix: the Stripe webhook endpoint did not exist. Stripe posted every event to it and got a 404 back, so a customer could pay and the order would stay pending for ever with nothing in the admin to explain it. Checkout itself worked, which is what made it hard to spot.
* Fix: the Mailchimp integration was not loaded either, for the same reason.
* Fix: with the thank you and cancel pages left blank, a Stripe payment returned the buyer to the site home rather than the page the form is on. PayPal already returned them to the page, which is what the settings screen says happens.
* Fix: a form with postage switched on and no percentage entered failed with a server error on every submission, taking no payment at all. Charging a flat postage amount and leaving the percentage blank is an ordinary way to set the form up.
* Fix: validating a form that collects personal details raised a PHP warning for each of those fields on every submission.
* Postage amounts written with a comma for the decimal point are now read correctly. They were read as whole numbers, so 2,50 charged 2.00.
* The PayPal account is now checked with PayPal as you type it, and by a button beside it. A mistyped account is the most common reason a customer sees "something went wrong" at PayPal, and until now nothing on the site could tell you: the address can be a perfectly valid email address and still not be a PayPal account. Nothing is charged by the check.
* Every plugin screen warns while the PayPal account is missing or malformed, on each form separately, since Send Options can override it per form.
* The currency is now chosen from the list PayPal accepts, rather than typed. The old help text admitted the problem: "If your currency is not listed the plugin will work but PayPal will not accept the payment." Currencies PayPal takes in whole units only, and those it supports for in country accounts only, are marked. A code already saved that is not on the list is kept and flagged rather than changed for you.
* Fix: amounts in Hong Kong dollars and Malaysian ringgit had their decimals thrown away, so a 99.50 charge was taken as 99. Both currencies do accept decimals.
* Fix: payments in Hungarian forint were refused by PayPal, because decimals were sent for a currency that does not accept them.
* The Forms screen explains that taking a currency your PayPal account does not hold leaves every payment pending until you approve it in PayPal, which is a common reason an order never shows as paid.
* The payment records have been restyled: striped rows, the amount lined up on the decimal point, and paid or pending said in words rather than left blank. The order token still shows against a pending payment in sandbox mode, which is how a test IPN is posted by hand, but it is now labelled as such.
* Fix: amounts in the payment records dropped a trailing zero, so a 37.50 payment was listed as 37.5.
* The Payments tab now links to the Payment Records screen, which is where people look for it.
* The thank you and cancel page settings no longer talk only about PayPal, since Stripe returns the buyer to the same places.
* The plugin's own icon now appears on the account, pricing and checkout screens, instead of a placeholder.
* Creating a WordPress account for the buyer now lets you choose the role, on the Integrations screen. It was always Subscriber, which is still the default. Roles other plugins have added are offered, so a membership or shop role can be used. Administrator is not offered, and cannot be set by posting it.
* The buyer's account is now created when the payment completes rather than when the form is submitted, so a buyer who does not complete payment no longer gets a working login. Marking a payment as paid by hand counts, which is the only route the free version has. Creating it on submission is still available if you want it.
* The account creation settings point at the Members plugin, since choosing a role only does something if a plugin acts on it.
* Tested up to PHP 8.5. The readme now describes what the free version does and what the paid version adds, rather than listing settings.
* An image submit button now fades slightly on hover and press. An image gives no feedback of its own, so it read as a picture rather than something to click, and no theme can supply that because the image is the button.
* A button image that ships with the plugin keeps working if the site moves domain or changes its content directory. A stored address is rebuilt from wherever the plugin is now.

= 5.7.51 =
* Security: the IPN listener now verifies the amount received, the currency, the receiving PayPal account and the payment status before marking an order paid. Previously a matching order token alone was enough, which allowed an order to be marked paid for less than its total. Thanks to Muni Nitish Kumar Yaddala for the report.
* Security: IPN transactions are recorded so the same notification cannot be replayed.
* Orders are now left pending, rather than marked paid, when a payment cannot be verified.
* Fix: the Required Field checkbox on the custom field setting did not show as ticked once saved, because it read the wrong option.
* Fix: PHP warnings about undefined settings on sites where those options had not been saved yet, covering the setup, form, submission, error, IPN, autoresponder, address and coupon screens.
* Fix: saving a settings screen with checkboxes unticked raised PHP warnings, because unticked boxes are absent from the submitted form.
* Fix: replaced FILTER_SANITIZE_STRING, which is deprecated from PHP 8.1 and raised a deprecation notice on every settings save.
* The IPN settings page now has a self contained "Setting IPN up in PayPal" panel with the full steps and your listener URL, rather than linking out to PayPal documentation that keeps moving. Added a direct link to your PayPal IPN history, which is the first place to look if a payment has not been marked complete.
* Fix: two links to PayPal documentation were dead. Updated to their current locations.

= 5.7.50 =
* Fix Gutenberg block.js path for block registration

= 5.7.49 =
*  Fix text domain mis matches

= 5.7.48 =
*  Updated tested to WP 6.9

= 5.7.47 =
* Fixes minor securiy issue
* Fix minor notices

= 5.7.46 =
* Update Libraries

= 5.7.45 =
* move block registration to avoid conflict with other plugins

= 5.7.44 =
* remove admin javascript undefined variable issue

= 5.7.43 =
* update libraries

= 5.7.42 =
* rearrange Amount options to  be more usable

= 5.7.41 =
* Fix 'other' option in values
* Fix minimum value in 'other'

= 5.7.40 =
* Allow consent to be specified as mandatory

= 5.7.39 =
* Fix mis match when drop down starts with a space

= 5.7.38 =
* Fix total colour and script issue

= 5.7.37 =
* Fix style when product qty selected

= 5.7.36 =
* Set dropdown colour option

= 5.7.35 =
* Fix date in front end report
* remove check of reference for IPN

= 5.7.34 =
* Change upsell messages

= 5.7.33 =
* fix count on CSV export for multi product ( Pro )

= 5.7.32 =
* fix issue with Autoresponder settings
* improve IPN and Email debug logging

= 5.7.31 =
* fix PHP 8 issue with IPN
* remove a PHP 8 deprecated warnin

= 5.7.30 =
* Fix display of some radio options

= 5.7.29 =
* Remove warning notice from Widget editor

= 5.7.28 =
* Update Freemius library

= 5.7.27 =
* fix coupon issues

= 5.7.26.5 =
* fix handling charge settings

= 5.7.26.4 =
* fix minor XSS issue
* fix issue with no store settings

= 5.7.26.3 =
* fix remembering message report options

= 5.7.26.2 =
* fix reference compares to trim spaces

= 5.7.26.1 =
* fix issue with preset amounts

= 5.7.26 =
* improve sanitization of form data in admin and add nonce check

= 5.7.25 =
* fix PHP 8.0 issue

= 5.7.24 =
* fix conflict with WooCommerce

= 5.7.23 =
* fix PHP 8.0 issue

= 5.7.22 =
* security update

= 5.7.21 =
* minor change to allow running on PHP 5.6.4

= 5.7.20 =
* Removed all legacy incontext / PayPal Express code
* fix issue with other amount

= 5.7.19.1 =
* Fix issue with double dot

= 5.7.19 =
* Fix issue with products without quantities ( Pro only )

= 5.7.18 =
* fix compatability issue with 8.0.13

= 5.7.17 =
* Add front end to convert amount with comma decimal to point decimal
* fix display issue on product list ( Pro )


= 5.7.16 =
* Add optional consent display to PayPal item description

= 5.7.15 =
* remove \ during setting sanitizations

= 5.7.14 =
* Correct missing field

= 5.7.13 =
* Allow links in consent label

= 5.7.12 =
* PHP 8.0 compatability

= 5.7.11 =
* Resolve compatibility with Genesis 2.5

= 5.7.10 =
* Improved Country Code selection in personal details and allowed a default and permitted countries


= 5.7.9 =
* fixed email confirmation address

= 5.7.8 =
* offer of gold pro plan
* removed more debug warnings

= 5.7.5 =
* Library update

= 5.7.4 =
* Fix autoresponder shortcode [amount]
* Add minimum value to variable amount input validation


= 5.7.3
* closes #23 coupons error message


= 5.7.2
* improve IPN, add IPN debug log, and fix duplicate payment records when using sandbox.

= 5.6.12
* change text

= 5.6.11
* add notices

= 5.6.10
* fix licence issue

= 5.6.9
* fix upgrade library notices

= 5.6.8
* Change of plugin developer

= 5.6.7
* Fixes undefined constant warning
* Hides range slider styles if not used
* Removes MIME from email headers
* Optional paypal checkout logo (business accounts only)

= 5.6.6 =
*   Fixes php warning
*   Fixes IPN bug
*   Removes duplicate multiple products field

= 5.6.5 =
*   Changed CURL to HTTP

= 5.6.4 =
*   Reworked the data processing to make it faster, more secure and less buggy

= 5.6.3 =
*   Gutenberg block
*   Better coupon management
*   Fixes missing submit button on error

= 5.6.2 =
*   Fixes total amount calculations
*   Fixes email formatting bug
*   Added hook to only load scripts on settings page

= 5.6.1 =
*   Fixes processing percent bug
*   Feature to include both fixed and percentage handling
*   Improved notification email

= 5.6 =
*   Fixes the ‘other amount’ bug on dropdown
*   Fixes the missing stock number
*   Clears undefined indexes and variables
*   Fixed styling inconsistencies
*   Missing data added to notification email
*   Fixes incorrect report headings
*   Option to hide/delete completed transactions
*   Fixes mailchimp/in-context conflict bug
*   Notification emails now show total to pay

= 5.5.3 =
*   Removed some undefined variables
*   Removed 'processing' option as no longer supported by PayPal
*   New Codice Fiscale field
*   Fixes amount query bug
*   Fixes missing CSV column
*   GDPR compliancy options

= 5.5.2 =
*   Fixes recurring payments bug
*   Fixes undefined indexes
*   Fixes processing fee bug
*   Options for field label positions

= 5.5.1 =
*   Fixed bug in multiple products

= 5.5 =
*   Pro option for multiple products
*   Fixed mailchimp bug
*   Removed call to quick-paypal-style.php

= 5.4.2 =
*   PHP7 Compatibility
*   Removed undefined indexes
*   Added option to disable IPN log
*   Fixed coupons bug

= 5.4.1 =
*   CSS bug fix

= 5.4 =
*   Required field option on email
*   Option to select custom CSS location
*   Even more bug fixes to recurring payments

= 5.3 =
*   Bug fix on notifications email
*   Improved recurring payments settings

= 5.2 =
*   Checkbox option on Options field
*   Improvements to Pro version registration
*   Datepcker field for pro version
*   Custom styles now an external file

= 5.1 =
*   Improved API
*   Fixes combobox bug

= 5.0 =
*   In-context payments

= 4.3 =
*   Fixes MailPoet conflict
*   Fixes CSV download bug
*   Can use commas in preset references

= 4.2 =
*   Allow quotes and apostrophes in preset reference
*   Fixed total label bug
*   Handle corner styles for the slider
*   Submit button hover styles
*   Styling option for input margins and padding
*   Bug fix on the custom CSS function

= 4.1 =
*   Slider thickness style
*   User set recurring payments periodicity
*   Fix custom css file bug
*   Style option to centre the submit button

= 4.0 =
*   Validation and processing without page reload
*   Improved validation
*   Comments field
*   More slider styles
*   Hide styles that are not applicable
*   IPN listener option
*   Option to set periodicity of recurring payments
*   Better CSS
*   Bug fixes on the autoresponder
*   Set email address for confirmation emails
*   Lots of under the hood improvements

= 3.17 =
*   Autoresponder Shortcodes

= 3.16 =
*   All new Autoresponder
*   Minor bug fixes
*   Moved scripts to footer
*   Option to combine shipping and processing with total

= 3.15 =
*   Improved error checking
*   Required field selectors
*   Border styles for required and normal fields
*   Confirmation email after payment (IPN only)
*   Clone settings option
*   Color picker bug fix

= 3.14 =
*   Instant Payment Notifications
*   Option to display inline radio buttons
*   Updated Pre-population settings
*   Notification emails
*   Improvements to totals field
*   Styling bug fixes
*   Header size selection

= 3.13 =
*   Dropdown option on selectable fields
*   Bug fix for the $1 problem
*   Improved styling on submit button images

= 3.12.2 =
*   Bug fix number_format calculation

= 3.12.1 =
*   Bug fix for range slider
*   Bug fix for the postage and handling fee calculation

= 3.12 =
*   Added option for form Reset
*   Added message for invalid coupon code
*   New range slider field
*   Bug fixes for the Payment Lists
*   Improved total calculation, it now works with radio fields.

= 3.11 =
*	Currency option to selected decimal points or comma
*   When using multiple amounts you can now have radio or dropdown selectors
*   Bug fix to the 'item number' field.

= 3.10 =
*	Umpteen bug fixes in the payment report/CSV download
*   Added option to send payment lists as an email

= 3.9 =
*	Bug fix for recurring payments
*   New field to add extra information to the form
*   Live totals option
*   Option to collect personal information
*   Product options now display as a new line on the PayPal page
*   Shipping and handling now display properly on the PayPal page

= 3.8 =
*	Added field for recurring payment
*   Added code to allow multiple products/prices
*   More shortcode options

= 3.7 =
*	Better error reporting
*	Option to link to Terms and Conditions
*	Set maximum quantity
*	CSS fix to overide theme settings for line heights

= 3.6.4 =
*	Add as many coupons as you like
*	Duplicate coupons across multiple forms
*	Set reference and amount without using shortcodes
*	Pass form variables using queries

= 3.6.3 =
*	Bug fix, amounts over 1000 now work properly
*	Added URL queries for reference, amount and coupon

= 3.6.2 =
*	Improved coupon support
*	Option to change PayPal locale
*	Payment records now download properly

= 3.6 =
*	You can now add coupon codes to the form
*	Updated payments reports

= 3.5.3 =
*	Fixed error when using % postage or processing fees
*	Fixed bug in image image uploader

= 3.5.1 =
*	Bug fix to clear illegal offset warning

= 3.5 =
*	Added captcha option
*   More forms fields
*   Drag and drop ordering
*   Loads of new styling options

= 3.4 =
*	Options to add postage and admin charges
*	Option to add the item number to the order.
*	More Wordpress 3.8 tweaks

= 3.3 =
*	Updated to support Wordpress 3.8

= 3.2 =
*	Added the option to display a PayPal logo on the form

= 3.1 =
*	Closed an XSS security hole
*	Fixed the incorrect shortcode description

= 3.0 =
*	Multiple form support
*	Dashboard link to display and download payment records
*	Add options to your forms using shortcodes

= 2.1.1 =
*	Bug fix: Custom CSS option wasn't saving properly

= 2.1 =
*	Added styling options for Submit button
*	Improved form validation and error checking

= 2.0.4 =
*	Bug fix: fixed duplicate function name error

= 2.0.2 =
*	Bug fix: error in sidebar widget

= 2.0.1 =
*	Bug fix: selected currency asn't being passed to paypal

= 2.0 =
*	Major upgrade to the admin pages
*	Added loads of styling options
*	Custom error messages and improved validation
*	Faster paypal processing

= 1.5 =
*	Error checking went wonky. It's fixed now

= 1.4 =
*	Now with width options

= 1.3 =
*	Simplified the processing code

= 1.2 =
*	Added custom styles option

= 1.1 =
*	Added choice of plugin or theme styles

= 1.0 =
*	Initial Issue
