WP Manifestindependent plugin directory

Install

Download woocommerce-upayments.zip From the beta.3.1.1 release on GitHub, Aug 12, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/upaymentskwt/woocommerce/releases/download/beta.3.1.1/woocommerce-upayments.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

UPayments Payment Gateway for WooCommerce

PHP requires at least: 5.5 PHP tested up to: 8.2.9 WC requires at least: 2.4 WC tested up to: 8.0.3 License: MIT

UPayments Plugin allows merchants to accept KNET, Cards, Samsung Pay, Apple Pay, Google Pay Payments.

Description

UPayments Plugin allows merchants to accept KNET, Cards, Samsung Pay, Apple Pay, Google Pay Payments.

This plugin would communicate with 3rd party UPayments payment gateway(https://apiv2api.upayments.com/) in order to process the payments.

Merchant must create an account with UPayments payment gateway(https://upayments.com/).

Merchant once created an account with UPayments(https://upay.upayments.com/), they can go to thier UPayments dashboard and choose the payment options they would to avail for their site.

And merchant need to copy the merchant id and api key from the UPayments Merchant account.

Installation

Using The WordPress Dashboard

  1. Navigate to the 'Add New' in the plugins dashboard
  2. Search for 'UPayments'
  3. Click 'Install Now'
  4. Activate the plugin on the Plugin dashboard

Uploading in WordPress Dashboard

  1. Navigate to the 'Add New' in the plugins dashboard
  2. Navigate to the 'Upload' area
  3. Select plugins zip file from your computer
  4. Click 'Install Now'
  5. Activate the plugin in the Plugin dashboard

Using FTP

  1. Download Plugin zip file
  2. Extract the Zip file directory to your computer
  3. Upload directory to the /wp-content/plugins/ directory
  4. Activate the plugin in the Plugin dashboard

Updating

Automatic updates should work like a charm; as always though, ensure you backup your site just in case.

Configuration

  1. Go to WooCommerce settings
  2. Select the "Payments" tab
  3. Activate the payment method (if inactive)
  4. Set the name you wish to show your users on Checkout (for example: "UPayments KNET or Creditcard")
  5. Fill the payment method's description (for example: "Pay with UPayments")
  6. Copy the API keys and Salt values from the UPayments Web Dashboard under Settings > Payment Gateway > API Keys
  7. Click "Save Changes"
  8. All done!

Frequently Asked Questions

Where can I get support?

The easiest and fastest way is via our live chat on our website or via our contact form.

= Why UPayments not displaying in the checkout?

Please make sure you have entered api key.

= Still UPayments not displaying in the checkout after entered api key?

Supported currency codes are: KWD, SAR, USD, BHD, EUR, OMR, QAR, AED

Screenshots

  1. Plugin listed in the plugins page after installed/uploaded.
  2. The WooCommerce > Settings > Payments to manage UPayments Payment Gateway settings panel.
  3. The settings panel used to configure the gateway.
  4. Normal checkout with UPayments Payment Gateway for non whitelabled user.
  5. Normal checkout with UPayments Payment Gateway for whitelabled user.
  6. UPayments Payment selection interface for non-whitelabeled.
  7. UPayments Payment interface with form.
  8. UPayments Payment interface for confirming the payment.

Changelog

2.0

  • Initial release.

Upgrade Notice

2.0.1

-Added test mode(sandbox option)

2.0.2

-Customer unique token validation

2.0.3

-Improved performance

2.0.4

-Ajax Issue & critical error resolved

2.0.5

-IP whitelisting issue is resolved

2.1.0

-Design updates

2.1.1

  • Payment failed for suspected fraud issue is resolved for latest woocommerce version
  • Customer unique token validation accept with 0.

2.1.2

  • Payment Confirmation Mail - Product name issue fixed.

2.1.4

  • Order Status Issue Fixed.

2.2.0

-Added saved card feature

2.2.1

-Apple Debit Card Option Added

3.0.0

-Switch between modern and classic design -Save card(Tokenization) feature -Multi-merchant configuration

= 3.0.1 = Retrieve Card Updates

= 3.0.2 = Multimerchant configuration updates

= 3.0.3 = Multimerchant Admin configuration updates

= 3.0.4 = Booking Product price issue fixed

3.1.0

-Auto Deduction -Block Checkout Support -Bookable Products

= 3.1.1 = CRON scheduler issue fixed

Releases

8 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
3.2.3 latest
Oct 22, 2026 18h ago
tag only
—
Oct 22, 2026 19h ago
tag only
—
Oct 22, 2026 19h ago
tag only
—
Oct 22, 2026 19h ago
tag only
—
Oct 21, 2026 1d ago
tag only
—
Aug 12, 2026 2mo ago
woocommerce-upayments.zip
5
Jul 20, 2026 3mo ago
tag only
—
Jun 29, 2026 3mo ago
tag only
—
D+ grade

Security

UPayments 3.1.1 · audited by WP Registry

High-severity findings.

1 high 2 medium
Audited release
3.1.1
Findings
3
Worst severity
high
Content hash
b817c3c418f4a469dfee5dac…

Findings

  • high Debug logger writes API keys, card tokens, and IPN bodies to a web-accessible plugin file

    information_disclosure

    When the gateway debug checkbox is enabled (woocommerce_upayments_settings[debug]), WC_Upayments::log() appends print_r($content) to UP_PLUGIN_PATH . 'debug.log' (wp-content/plugins/woocommerce-upayments/debug.log). There is no .htaccess deny rule. process_payment and Scheduler::process explicitly log the string 'API key:' followed by $this->apiKey, the full charge JSON (customer name/email/mobile, saved-card tokens, amounts), curl responses, and web_hook_handler logs raw $_REQUEST. An empty debug.log is shipped in the plugin, so the URL is predictable. Any unauthenticated visitor who can fetch that path obtains the live Bearer token used against apiv2api.upayments.com, enough to create charges, retrieve customer cards, and auto-deduct. Debug is a supported production troubleshooting toggle, not a developer-only constant.

    UPayments.php:1034-1051

    Recommendation

    Never write secrets to a file under the plugin directory. Use wc_get_logger() with a private uploads log (as WooCommerce does), redact apiKey and card tokens, and deny HTTP access to *.log. Rotate any API key that may have been logged. Delete shipped debug.log from the distribution.

  • medium Subscription pause/resume is a CSRF-able GET with no nonce

    csrf

    An init callback reads $_GET['upay_action'] and $_GET['order_id'] on every front-end request. After confirming the requester is logged in as the order owner, unsubscribe verifies wp_verify_nonce(..., 'upay_unsubscribe_{id}'), but pause and resume do not. The handler then writes _upay_subscription_status to paused or active, $order->save(), and redirects. The my-account view-order template already generates nonce URLs for pause/resume (upay_pause_{id} / upay_resume_{id}) that this handler never checks. Observable: a logged-in subscriber who visits an attacker page with <img src="https://shop/?upay_action=pause&order_id=123"> has auto-deduct stopped; upay_action=resume re-enables Scheduler::process charging on the next hourly cron. Order IDs are sequential and often visible in emails/account URLs. Unauthenticated users are blocked by is_user_logged_in().

    UPayments.php:2433-2480

    Recommendation

    Verify a unique nonce for every upay_action (the templates already create upay_pause_{id} and upay_resume_{id}). Prefer POST. Restrict to subscription orders and send users through wp_safe_redirect after a failed nonce without calling $order->save().

  • medium Payment API curl disables TLS certificate verification

    insecure_config

    process_payment (charge create) and getSavedCards set CURLOPT_SSL_VERIFYPEER to false while sending Authorization: Bearer $this->apiKey and receiving a redirect URL that checkout follows. A network attacker who can MITM the shop server’s outbound HTTPS can steal the merchant API key and replace result.data.link / transactionData.redirect_url with a phishing/skimmer page; process_payment then returns that URL as the WooCommerce checkout redirect. getSavedCards similarly exposes stored card tokens in the forged response path used on the checkout form. Scheduler’s auto-deduct curl leaves SSL verification at the default (commented-out disable), so only the customer-facing charge and card-retrieve calls are affected.

    UPayments.php:1040-1052

    Recommendation

    Remove CURLOPT_SSL_VERIFYPEER false (and do not set CURLOPT_SSL_VERIFYHOST to 0). Use WordPress HTTP API (wp_remote_post) which verifies TLS by default. Fail closed if the certificate is invalid.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.