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/validatewithlicense+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
- Upload the plugin folder to
wp-content/plugins/or install via zip in Plugins โ Add New โ Upload Plugin. - Activate LicenseChain Checkout (WooCommerce must be active first).
- Open WooCommerce โ LicenseChain Pay (or LicenseChain Checkout) and configure products (next section).
- Enable the gateway under WooCommerce โ Settings โ Payments.
Configuration
- Pay base URL โ
https://pay.licensechain.appfor 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
- Customer selects LicenseChain Pay at checkout (billing email required).
- Plugin creates a pending order and redirects to Pay with a Mirror payload.
- Customer pays on Pay (card form embedded; other methods may redirect).
- Pay returns with
licensechain_pay_return=1,status,LCG,signature. - 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.appfor validate and subscription charge requests.
WooCommerce Subscriptions
Supports WooCommerce Subscriptions and Subscriptions For WooCommerce:
- Initial checkout uses the same Mirror redirect flow.
- Pay subscription id is stored in order/subscription meta (
_licensechain_pay_stripe_subscription_id). - Renewals call POST /api/checkout/mirror/subscription/charge.
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โsuccessfulwhen completed_licensechain_pay_tokenโ Mirror payloadTOKEN
Security
- Store the callback secret only in WordPress admin settings โ never in theme or block JavaScript.
- Verify redirect
signaturebefore calling the validate API (fail closed). - Use HTTPS for return URLs.
Related
- Mirror SDK (same crypto/signing primitives)
- Pay Mirror API
- Pay checkout & providers
- Pay merchant webhooks