=== Paysera Smart Checkout for WooCommerce ===
Version: 1.5.0
Date: 2026-09-08
Contributors: Paysera
Tags: woocommerce, payment, payment gateway, paysera
Requires at least: 6.7
Tested up to: 7.1
Stable tag: 1.5.0
Requires PHP: 7.4
Requires PHP Extension: BCMath, Zip
Minimum requirements: WooCommerce 9.0
License: GPL v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Accept online payments in WooCommerce via Paysera — cards and European bank payment methods through one integration.

== Description ==

This plugin integrates the Paysera payment gateway with WooCommerce stores. Customers can pay using credit/debit cards and bank payment methods across Europe through a single gateway agreement.

The plugin supports both WooCommerce checkout experiences:

 - Classic checkout (shortcode-based)
 - Block checkout (WooCommerce Blocks)

= Features =
 - Cards and European bank payment methods via the Paysera Checkout API
 - Compatible with WooCommerce High-Performance Order Storage (HPOS)
 - Popup or same-window payment flow, configurable per store
 - Server-to-server payment status callbacks for reliable order status updates
 - Built-in diagnostic tools: TLS version check, OpenSSL check, translation file completeness check, signature verification
 - Configurable logging levels (None, Error, Info)

= Configuration =

1. Install and activate the plugin.
2. Go to Paysera → Payments in the WordPress admin.
3. Enter your Paysera Checkout client ID and client secret.
4. Choose window mode (popup or same window) and enable the gateway.
5. Save the settings.

= Logging =
Default log level is Error. Logs can be viewed and downloaded from the plugin's Extra Settings page. Downloading the zip archive requires the PHP zip extension. Log files can also be deleted from WooCommerce → Status → Logs. Available logging levels:

 - None: logging is disabled.
 - Error: only plugin errors are saved.
 - Info: plugin errors and related debug information are saved.

= Fees =
Fees for the Paysera Checkout service are listed on the Paysera website:
[Paysera Checkout fees >](https://www.paysera.com/v2/en/fees/payment-gateway-fees)

= Support =
Paysera client support is available in English 24/7 at +44 20 80996963 or support@paysera.com. Additional languages are available during business hours. For more information visit [paysera.com](https://www.paysera.com).

== Installation ==

= Installation by FTP =
1. Download the plugin zip.
2. Connect to your server and go to your WordPress base directory.
3. Create a new folder `paysera-smart-checkout-woocommerce` in `/wp-content/plugins`.
4. Extract the zip file into the new folder.
5. Activate the plugin:
    Plugins → Installed Plugins → Paysera Smart Checkout for WooCommerce → Activate
6. Configure the plugin in:
    Paysera → Payments
    Enter your checkout client ID and client secret.
7. Save the settings.

= Installation from admin panel (zip file) =
1. Download the plugin zip.
2. Connect to the WordPress admin panel.
3. Install the plugin:
    Plugins → Add New → Upload Plugin → Choose File → select the downloaded zip → Install Now
4. Activate the plugin:
    Plugins → Installed Plugins → Paysera Smart Checkout for WooCommerce → Activate
5. Configure the plugin in:
    Paysera → Payments
    Enter your checkout client ID and client secret.
6. Save the settings.

= Installation from admin panel (marketplace) =
1. Connect to the WordPress admin panel.
2. Install the plugin:
    2.1. Plugins → Add New;
    2.2. Search for 'Paysera Smart Checkout for WooCommerce';
    2.3. Install.
3. Activate the plugin:
    Plugins → Installed Plugins → Paysera Smart Checkout for WooCommerce → Activate
4. Configure the plugin in:
    Paysera → Payments
    Enter your checkout client ID and client secret.
5. Save the settings.

== External services ==

This plugin connects to the following Paysera services. All requests are made over HTTPS and only when the corresponding feature is used.

= Paysera Checkout API =
The plugin sends order data (amount, currency, order identifier, customer billing details, return URLs) to the Paysera Checkout API to create payment orders, retrieve available payment methods and process payment status callbacks. This is the core service of the plugin: without it the gateway cannot operate. Requests are made when a customer initiates a payment at checkout, when the merchant configures the gateway in the admin and when Paysera notifies the store about a status change.

* Terms of service: [https://www.paysera.com/v2/en-LT/legal/general-agreement](https://www.paysera.com/v2/en-LT/legal/general-agreement)
* Privacy policy: [https://www.paysera.com/v2/en-LT/legal/privacy-policy](https://www.paysera.com/v2/en-LT/legal/privacy-policy)

= Paysera Translation Proxy =
The plugin retrieves translation files for payment method names and gateway labels from Paysera's translation proxy (`translation-proxy.paysera.com`). The request contains only the plugin translation namespace and locale. No order or customer data is sent. The request is performed by the diagnostic "Translation Proxy Connectivity" check and during translation refresh.

* Terms of service: [https://www.paysera.com/v2/en-LT/legal/general-agreement](https://www.paysera.com/v2/en-LT/legal/general-agreement)
* Privacy policy: [https://www.paysera.com/v2/en-LT/legal/privacy-policy](https://www.paysera.com/v2/en-LT/legal/privacy-policy)

= Paysera Public Key Endpoint =
The plugin downloads Paysera's public key from `https://paysera.com/download/public.key` to verify the signature of payment status callbacks and to test that the server can establish modern TLS connections to Paysera. The request contains no store, order or customer data. It is performed during the diagnostic "TLS Versions Support Check" and when verifying callback signatures.

* Terms of service: [https://www.paysera.com/v2/en-LT/legal/general-agreement](https://www.paysera.com/v2/en-LT/legal/general-agreement)
* Privacy policy: [https://www.paysera.com/v2/en-LT/legal/privacy-policy](https://www.paysera.com/v2/en-LT/legal/privacy-policy)

== Screenshots ==
1. Paysera payment methods on the WooCommerce checkout page
2. Paying through a bank link without leaving the store
3. Payment confirmation shown to the customer after a successful payment
4. Plugin overview page in the WordPress admin
5. Payment settings: enabling the gateway and choosing the payment window mode
6. Payments list with order, customer, payment method and status
7. Built-in help with plugin details and support contacts

== Changelog ==

= 1.5.0 =

* The payments list in the admin now sorts correctly by the Payment ID column: it orders by the payment id you see in that column, and orders that have no payment yet are kept together at one end of the list instead of scattered across pages
* Added a test mode notice in the admin for shops whose Paysera project runs in test mode, so it is clear that payments are simulated and no money is charged; orders created in test mode are marked in their order note
* The payment eligibility banner now shows a "Fix it" link next to each issue, taking you straight to the page in your Paysera account where that issue can be resolved
* A Paysera project that is paused now shows the actual reason payments are unavailable instead of an "unable to check, try again later" message that never cleared
* An order that was already paid is no longer cancelled when the payment window is closed before the payment notification arrives; the buyer is taken to the order confirmation page instead of being told the payment was cancelled
* Closing the payment window without paying now leaves the order awaiting payment and returns the buyer to the order page, instead of showing a payment error
* Success and error messages in the admin no longer show a heading that contradicts their text, so disconnecting the shop no longer reports "Connection successful"
* Fixed the payment method layout in the checkout: the information icon next to the country list no longer picks up the theme's button styling and no longer appears on a large coloured background, the Paysera logo stays on the same line as the payment method name, and the country list no longer overlaps the icon in a narrow checkout column

= 1.4.0 =

* The country selected in the payment methods list is now the country used to create the payment, so switching it at checkout shows the right country's banks on the payment page
* Added a "Back to shop" return address to the payment, so a buyer who cancels on the Paysera page comes back to the shop checkout, and the order note now says the payment was cancelled by the buyer rather than failed
* The checkout no longer shows technical error text to the buyer; a clear message is shown instead and the details go to the plugin log
* Fixed a fatal error on activation on shops whose theme or another plugin already loads its own copy of the shared PSR logging libraries
* A payment notification carrying an event the plugin does not handle is now accepted instead of reported as an error, so orders no longer show a "Callback not delivered" warning after a successful payment
* The link in the buyer consent notice at checkout is now always a real address in every language

= 1.3.3 =

* Fixed "Connection failed / Invalid client ID or password" when connecting a Paysera project on a shop that also runs WooCommerce PayPal Payments. The credentials were correct: the other plugin's bundled copy of the JWT library was answering for ours, so validating the issued token failed

= 1.3.2 =

* An order that reached the shop's own "payment received" status no longer falls back to "On hold" when the buyer returns from Paysera
* A repeated payment notification from Paysera no longer overwrites the order status the shop set in the meantime, so a shipped order stays shipped
* The order note written when Paysera reports a new order status now reads as a sentence instead of an internal text key

= 1.3.1 =

* Fixed the empty payment method list when a customer pays an order through a payment link instead of the regular cart and checkout

= 1.3.0 =

* The plugin now verifies its database tables automatically and repairs missing tables or columns on its own
* Added a "Database Schema" section to the Diagnostics page showing the status of each plugin table
* Added a log level setting, a Download Logs button and a Payment Configuration section to the Diagnostics page
* A failed database installation now shows an admin notice and is retried automatically instead of causing errors during checkout
* The Paysera payment method is temporarily hidden at checkout while the plugin database is known to be broken, so customers are not offered a payment method that cannot complete
* Order metadata and source are now sent to Paysera through the typed SDK path
* Fixed incorrect country names displayed in the plugin
* The payment page now opens in the customer's language
* Fixed the country dropdown layout on mobile

= 1.2.1 =

* The Enable payments setting is no longer blocked while the project is pending approval for payment collection
* Payment methods are now shown at checkout regardless of project eligibility

= 1.2.0 =

* Added localized support contacts (email and phone) shown according to the site language
* Payment method logos are now served directly by the Paysera Checkout API instead of bundled SVG copies
* Upgraded the Paysera Checkout SDK to 2.0
* Fixed the payment amount for currencies that do not use two decimal places, so the correct amount is now charged
* On checkout, the payment country now falls back to the shop country when the customer country is not set
* Fixed support contacts shown incorrectly for some site languages
* Improved the wording, styling and placement of the payment eligibility banners and status badges

= 1.1.0 =

* Added a guided setup section on the Overview page with step-by-step instructions for creating an account and entering credentials
* Added a payment eligibility status indicator with banners and clear messages on the authorization page
* Added pagination to the payment orders list
* The order now shows the specific payment method chosen by the customer instead of a generic gateway name
* Updated and unified the design of status badges, banners and messages in the admin interface
* Improved the wording of the "Same window" payment mode option
* Refreshed payment method logos and ensured the full set of methods is shown at checkout
* Fixed the admin menu and settings pages becoming unavailable after some time
* Fixed an issue where disconnecting did not fully revoke the stored credentials
* Improved overall stability and reliability of the payment connection

= 1.0.1 =

* Added a fallback to a standard redirect when the payment popup is blocked by the browser
* Redesigned the payment methods selection UI on checkout
* Hidden the gateway description on the classic checkout
* Updated on-page texts and payment list translations
* Fixed stale processing status that blocked a second checkout attempt
* Fixed payment callback returning 404 on sites using plain permalinks
* Fixed plugin activation process failing under certain conditions

= 1.0.0 =
* Initial release.
