U.CASH Pay for Paid Memberships Pro
U.CASH Pay gateway for Paid Memberships Pro (crypto + cards). Non-custodial.
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/udotcash/pmpro-ucash/archive/refs/heads/master.zippmpro-ucashpay
U.CASH Pay gateway for Paid Memberships Pro. Accept crypto (Bitcoin, EVM chains, and more) and cards (via your own Stripe) for membership purchases. Non-custodial: funds settle directly to your own configured receive addresses on pay.u.cash.
This plugin registers a new PMPro payment gateway called U.CASH Pay (ucashpay). On checkout, the member is redirected to a hosted pay.u.cash link built from the level price; on return, the order is reconciled.
How it works
- A member checks out for a membership level in WordPress + Paid Memberships Pro.
- PMPro calls the gateway
process(), which builds a hosted pay.u.cash link using the level price as the amount and the PMPro order code as theexternal_reference. - The member is redirected off-site to
https://pay.u.cash/embed.phpand pays with crypto or card. - pay.u.cash redirects the member back to the PMPro confirmation page, where the return handler reconciles the order.
The link is built entirely from a publishable, store-level Cloud Token. No private keys, withdraw secrets, or backend custody credentials are ever stored in WordPress. This is the non-custodial model: U.CASH Pay only ever routes funds to addresses you configured in your store.
Requirements
- WordPress 5.5 or newer.
- PHP 7.2 or newer.
- Paid Memberships Pro (active).
- A pay.u.cash store with receive addresses configured and a Stripe connection for cards.
Install
- Install and activate Paid Memberships Pro.
- Upload the
pmpro-ucashpayfolder to/wp-content/plugins/(or upload the ZIP via Plugins > Add New > Upload Plugin). - Activate "U.CASH Pay for Paid Memberships Pro".
- Go to Memberships > Settings > Payment Gateway & SSL.
- Choose U.CASH Pay as the gateway and paste your pay.u.cash Store Cloud Token.
- Save settings.
Usage
Once configured, any membership level priced above zero can be paid via U.CASH Pay. On checkout, the member is sent to pay.u.cash, pays, and is returned to the confirmation page. Crypto confirmations can take a few minutes; if the order is still pending on return, you can reconcile it from Memberships > Orders (the order code is the external_reference on pay.u.cash).
Because the Cloud Token is publishable, the checkout link is safe to construct and open in the browser. The plugin uses only that token to start payments; it never touches withdrawal authority.
Set up your pay.u.cash account
- Sign up at pay.u.cash, then click the verification link in the email.
- Set receive addresses under Settings -> Addresses (raw address, ENS, Unstoppable Domains, or FIO).
- Create a store under Account -> Stores and copy its Store Cloud Token (use the store-level token, not the account-wide one).
- For fiat cards, connect your own Stripe under Settings -> Payment processors.
Recurring renewals are not auto-supported
pay.u.cash checkouts are one-time payments. There is no automatic recurring billing in the non-custodial model, so recurring renewal payments must be made manually by the member. This plugin handles the initial membership payment correctly; for true subscriptions we recommend a non-recurring membership term or manual renewal reminders. This is an honest platform limitation, documented rather than hidden.
Files
pmpro-ucashpay.php- main plugin file; registers the gateway, settings field, and return handler.classes/class.pmprogateway_ucashpay.php- thePMProGateway_ucashpayclass (extendsPMProGateway):process()redirect andhandle_return()reconciliation.
Security model
- Non-custodial. The store Cloud Token is publishable and can only initiate payments to your own addresses.
- No private keys, xpubs, or withdraw secrets are stored in WordPress.
- The return handler does a best-effort server-side lookup of the tracked checkout by
external_reference; it never trusts a raw "paid" flag from the browser.
License
MIT. See LICENSE.