WooCommerce Checkout plugin

WordPress plugin that connects WooCommerce to LicenseChain Pay using Mirror Payload strict mode. Customers pay on Pay; on success they return to your store and the order is completed with the license key stored on the order.

Requirements: WordPress 5.8+, WooCommerce 5.0+ (HPOS and Cart & Checkout Blocks supported), PHP 7.4+ with OpenSSL AES-256-GCM. Obtain the plugin zip from LicenseChain (Dashboard / support) and install like any WordPress plugin.

What the plugin does

  • Adds a WooCommerce payment method (LicenseChain Pay) that redirects to https://pay.licensechain.app/checkout/{'{'}productId{'}'}?payload=....
  • After payment, verifies the signed return URL, calls POST /api/checkout/mirror/validate with license + email, marks the order Completed, and stores _licensechain_pay_license.
  • Works with classic checkout and Cart & Checkout Blocks.
  • With WooCommerce Subscriptions or Subscriptions For WooCommerce, renewals charge via Payโ€™s subscription charge API.

Install

  1. Upload the plugin folder to wp-content/plugins/ or install via zip in Plugins โ†’ Add New โ†’ Upload Plugin.
  2. Activate LicenseChain Checkout (WooCommerce must be active first).
  3. Open WooCommerce โ†’ LicenseChain Pay (or LicenseChain Checkout) and configure products (next section).
  4. Enable the gateway under WooCommerce โ†’ Settings โ†’ Payments.

Configuration

  • Pay base URL โ€” https://pay.licensechain.app for production.
  • WooCommerce product ID (optional) โ€” numeric WC product or variation ID when you sell multiple plans; one table row per plan.
  • Pay product ID โ€” from Dashboard โ†’ Seller โ†’ Products.
  • Callback secret โ€” that productโ€™s secret (server-side only; must match Pay or signature verification fails).
  • Fallback for subscriptions โ€” row used when cart lines do not match a mapped WC product ID.

Align WooCommerce price and billing interval with the Pay/Dashboard product to avoid customer confusion. Membership plugins can grant access after purchase as usual; this gateway only completes payment and stores the license key.

Checkout flow

  1. Customer selects LicenseChain Pay at checkout (billing email required).
  2. Plugin creates a pending order and redirects to Pay with a Mirror payload.
  3. Customer pays on Pay (card form embedded; other methods may redirect).
  4. Pay returns with licensechain_pay_return=1, status, LCG, signature.
  5. Plugin verifies signature, validates with Pay, completes the order on verified: true.

Blocks, Elementor, and cache

  • Cart & Checkout Blocks and classic [woocommerce_checkout] are supported.
  • Elementor: use a Checkout widget/page that delegates to WooCommerce checkout โ€” custom forms that never call Woo gateways will not show LicenseChain Pay.
  • Full-page cache (e.g. LiteSpeed): exclude Cart, Checkout, and My Account while testing; do not cache URLs containing licensechain_pay_return.
  • Allow outbound HTTPS to pay.licensechain.app for validate and subscription charge requests.

WooCommerce Subscriptions

Supports WooCommerce Subscriptions and Subscriptions For WooCommerce:

Subscription cancellation: Customer-initiated cancellation from My Account is not supported yet. Cancel in the Dashboard / payment partner dashboard, or via Core API POST /v1/subscriptions/:id/cancel when available โ€” see API Reference.

Order meta keys

  • _licensechain_pay_license โ€” license key (LCG) after successful payment
  • _licensechain_pay_status โ€” successful when completed
  • _licensechain_pay_token โ€” Mirror payload TOKEN

Security

  • Store the callback secret only in WordPress admin settings โ€” never in theme or block JavaScript.
  • Verify redirect signature before calling the validate API (fail closed).
  • Use HTTPS for return URLs.

Related