EPS - Easy Payment System releases
Accept Visa, Mastercard, and Mobile Financial Services payments in WooCommerce using EPS, the Easy Payment System gateway for Bangladesh.
by RayhanSysMin · github.com/rayhansysmin/eps_woocommerce · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/rayhansysmin/eps_woocommerce/releases/download/v0.0.9/EPS_Woocommerce-v0.0.9.zipEPS - Easy Payment System for WooCommerce
Accept Visa, Mastercard, and Mobile Financial Services payments in WooCommerce using EPS, the Easy Payment System gateway for Bangladesh.
Features
- WooCommerce payment gateway for EPS.
- Visa, Mastercard, and MFS payment support.
- Sandbox and production mode switching.
- HMAC-SHA512 request signing for EPS API requests.
- Transaction dashboard inside WordPress admin.
- Gateway transaction sync for 7 days or 12 months.
- Product delivery/status tracking for transactions.
- WooCommerce Blocks checkout integration.
- USD store currency support with configurable USD to BDT conversion for EPS.
Requirements
| Requirement | Version |
|---|---|
| WordPress | 5.8 or higher |
| WooCommerce | 6.0 or higher |
| PHP | 7.4 or higher |
| EPS Merchant Account | Required |
Installation
WordPress Dashboard
- Download the release ZIP from GitHub.
- Go to WordPress Dashboard > Plugins > Add New.
- Click Upload Plugin.
- Choose the ZIP file and click Install Now.
- Activate the plugin.
- Open EPS Payment > Settings.
- Enter the EPS merchant credentials.
- Go to WooCommerce > Settings > Payments and enable EPS.
Setup video: https://youtu.be/SY6LFRjH6ZM
Manual Install
- Extract the ZIP file.
- Upload the plugin folder to
/wp-content/plugins/. - Activate EPS from WordPress Dashboard > Plugins.
Configuration
Required EPS settings:
- Username
- Password / Plugin key
- Hash key
- Merchant ID
- Store ID
- Mode: sandbox or production
- USD to BDT rate, required when WooCommerce orders are in USD
Currency Handling
EPS accepts BDT payments. If a WooCommerce order is already in BDT, the plugin sends the order total unchanged. If an order is in USD, the plugin converts the total to BDT using the configured USD to BDT rate before sending the payment request to EPS.
For converted USD orders, the plugin stores these order meta values:
_eps_original_amount_eps_original_currency_eps_bdt_amount_eps_exchange_rate
If WooCommerce uses USD and no USD to BDT rate is configured, EPS checkout is blocked with an error instead of sending the wrong amount.
Security
This release includes the payment-security hardening requested for WordPress review:
- Orders are marked paid only after EPS confirms
Success. - Merchant transaction IDs are stored in order meta and verified on return.
- SQL queries use
$wpdb->prepare()placeholders where user-controlled values are involved. - Settings are stored as JSON with backward-compatible legacy migration.
- Outbound EPS HTTP requests use SSL verification.
- Transaction AJAX endpoints require admin capability and nonce checks.
- Unauthenticated transaction AJAX access has been removed.
- Debug script injection has been removed.
- Invoice IDs use cryptographically secure random bytes.
- POST settings fields are sanitized and mode is whitelisted.
- Deprecated
utf8_encode()usage has been replaced. - Global PHP warning suppression has been removed.
Repository
- Plugin page: https://github.com/RayhanSysMin/EPS_Woocommerce
- Author: RayhanSysMin - https://github.com/RayhanSysMin
- EPS website: https://eps.com.bd
License
GPL-2.0-or-later. See https://www.gnu.org/licenses/gpl-2.0.html.
Releases
5 releases. Each count is every asset in that release; expand a row for the breakdown.