=== CatCode Local Pay ===
Contributors: catcodestudio
Tags: payment form, donations, liqpay, monobank, przelewy24
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Payment forms and donations for any WordPress site, without WooCommerce: LiqPay, monobank, Tpay, Viva.com and Przelewy24.

== Description ==

A service site, a course, a charity or a club often needs to take a payment without running a shop. This plugin puts a payment form on any page and connects it to the payment service you already use, without WooCommerce.

* **Five payment services:** LiqPay and monobank (Ukraine), Tpay and Przelewy24 (Poland), Viva.com (Greece and the EU).
* **Three kinds of form:** a fixed price, a choice of options (services, tickets), an amount set by the payer (donations), with ready amounts and limits.
* **Shortcode and block:** `[local_pay form="123"]` or the Payment form block.
* **A status page:** the payer comes back to a clear page: paid, waiting, or failed with a Try again button. A waiting page updates by itself.
* **Confirmation you can trust:** a payment counts only after a signed notification or a check at the service. The price comes from the form settings, never from the browser. A short payment is marked for checking instead of being accepted.
* **A list of payments** with search, filters and the history of each payment, and a button to ask the service for the status.
* **E-mails:** a receipt for the payer and a notice for you.
* **Test mode** for every service. Keys are stored encrypted.

The form takes the fonts of your theme and works on phones.

<!-- @pro-begin -->
= Pro =

* **Booking forms:** a date and a time from a weekly schedule, days off, several places in a slot. A place is held while the client pays and confirmed by the payment. A Bookings screen shows what is coming.
* **Contact Form 7:** the form is sent as usual, then the visitor goes to pay. The price is fixed or comes from a field.
* **GiveWP:** a Local Pay gateway for donation forms, with refunds from the donation screen.
* **Refunds** from the payment screen, full or partial.
* **Background check:** a payment whose notification never came is asked about at the service, and old unpaid ones are closed.
* **CSV export** of the payments list.

Pro comes with a free 7-day trial, without a card. Licences: [catcode.com.ua](https://catcode.com.ua/modules/catcode-local-pay/).
<!-- @pro-end -->

= For developers =

* `catcode_local_pay_paid`, `catcode_local_pay_failed`, `catcode_local_pay_refunded`: actions with the payment object.
* `catcode_local_pay_prepare`: change or refuse a submission.
* `catcode_local_pay_notify_url`: the notification address, for sites behind a proxy.

= Independent integration =

LiqPay, monobank, Tpay, Przelewy24 and Viva.com are third-party products. This plugin is an independent integration, not affiliated with or endorsed by them.

== External services ==

The plugin talks to a payment service only when you switch it on and enter your keys. Each of them receives, when a payer starts a payment: the amount, the currency, a reference, what is paid for, the payer's name, e-mail and phone if the form asks for it, and the addresses of this site for the return and the notification. Later the plugin reads the state of that payment. "Check the saved keys" sends only your keys.

* **LiqPay** (PrivatBank), www.liqpay.ua. [Terms](https://www.liqpay.ua/en/information/user), [privacy](https://privatbank.ua/terms).
* **monobank acquiring** (Universal Bank), api.monobank.ua. [Terms](https://monobank.ua/terms), [privacy](https://www.monobank.ua/privacy).
* **Tpay** (Krajowy Integrator Płatności S.A.), api.tpay.com, openapi.sandbox.tpay.com, secure.tpay.com (certificates of signed notifications). [Terms](https://tpay.com/user/assets/files_for_download/payment-terms-and-conditions.pdf), [privacy](https://tpay.com/user/assets/files_for_download/information-clause-payer.pdf).
* **Przelewy24** (PayPro S.A.), secure.przelewy24.pl, sandbox.przelewy24.pl. [Terms](https://www.przelewy24.pl/regulamin), [privacy](https://www.przelewy24.pl/obowiazek-informacyjny-platnik).
* **Viva.com**, api.vivapayments.com, accounts.vivapayments.com, www.vivapayments.com and their demo- hosts. [Terms](https://www.viva.com/en-eu/terms-portal), [privacy](https://www.viva.com/en-eu/privacy-notice).

<!-- @pro-begin -->
* **catcode.com.ua** (the author of the plugin): the licence key and the site address go there to activate and check a licence and to look for updates. [Terms](https://catcode.com.ua/terms/), [privacy](https://catcode.com.ua/privacy-policy/).
<!-- @pro-end -->

== Installation ==

1. Install and activate the plugin. It makes a Payment status page by itself.
2. Open Local Pay → Settings, switch a service on, enter its keys and press Check the saved keys.
3. Give the service the notification address from the settings when it asks for one (Tpay, LiqPay, monobank and Przelewy24 receive it with every payment; Viva.com needs it in its account).
4. Open Local Pay → Payment forms, add a form and put its shortcode or the block on a page.

== Frequently Asked Questions ==

= Do I need WooCommerce? =

No. The plugin works on any WordPress site.

= Which currencies work? =

LiqPay and monobank: UAH, USD, EUR. Tpay: PLN. Przelewy24: PLN, EUR, GBP, CZK. Viva.com: EUR, GBP, PLN, RON, CZK, HUF, SEK, DKK. Your account at the service decides which of them are really on. A form shows the services that take its currency.

= Viva.com sends the payer to the wrong page =

Viva.com keeps the return addresses in the payment source, not in each payment. Enter the Success and Failure addresses from the plugin settings in the source whose code you saved.

= A payment stays in Waiting for payment =

The notification did not reach the site, usually because a firewall or a maintenance plugin blocks it. Open the notification address from the settings in a browser: it has to say OK. On the payment screen, Ask the service for the status settles the payment by hand.

= Is the card number stored on my site? =

No. The payer enters card details on the page of the payment service.

== Changelog ==

= 1.0.0 =
* First release.
