Paysera Smart Checkout for WooCommerce
=======================

Version: 1.3.3

Date: 2026-08-19

Contributors: Paysera

Tags: woocommerce, payment, payment gateway, paysera

Requires at least: 6.7

Tested up to: 7.1

Stable tag: 1.3.3

Requires PHP: 7.4

Requires PHP Extension: BCMath, Zip

Minimum requirements: WooCommerce 9.0

License: GPLv3

License URL: http://www.gnu.org/licenses/gpl-3.0.html

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 the WooCommerce → Status → Logs page. 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
- 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.net`). 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
- 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
- Privacy policy: https://www.paysera.com/v2/en-LT/legal/privacy-policy

Changelog
---------

= 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.
