WordPress Plugin
Accept cryptocurrency payments on any WordPress site — no WooCommerce required. Drop a pay button anywhere with a shortcode; customers pick a coin and are redirected to a hosted payment page. Funds go straight to your wallet, CryptoGate never holds them.
Step 1 — Download the plugin
Download the latest cryptogate-payments.zip from the GitHub releases page.
Step 2 — Install in WordPress
- In your WordPress admin go to Plugins → Add New → Upload Plugin.
- Choose the downloaded ZIP and click Install Now.
- Click Activate Plugin.
Step 3 — Configure
- Go to Settings → CryptoGate.
- Fill in the required fields:
| Field | Where to find it |
|---|---|
Publishable Key |
Dashboard → API Integration → Publishable key (pk_live_...). Safe to expose in the browser. |
Secret Key |
Dashboard → API Integration → Secret key (sk_live_...). Keep this private — used server-side to create transactions. |
Webhook Secret |
Dashboard → Webhooks → your endpoint's signing secret. Used to verify that incoming payment events are genuinely from CryptoGate. |
Default Currency |
Fiat used when a shortcode doesn't set one (USD, PLN, EUR, GBP). |
Step 4 — Register your webhook
In your CryptoGate dashboard go to Webhooks and add the URL shown on the plugin settings page:
https://yoursite.com/wp-json/cryptogate/v1/webhook
Subscribe to these events: payment.completed, payment.partial, payment.expired.
Copy the signing secret into the Webhook Secret field in the plugin settings.
Step 5 — Add wallets
The coin selector only shows cryptos you have wallets configured for. Go to Dashboard → Wallet Management and add an xpub for each coin you want to accept. The selector updates automatically.
Adding a pay button
Put the shortcode in any post, page, or widget:
[cryptogate_button amount="49.99" currency="USD" button_text="Pay with Crypto"]
| Attribute | Required | Description |
|---|---|---|
amount | Yes | Price in fiat (e.g. 49.99) |
currency | — | USD (default from settings), PLN, EUR, GBP |
crypto | — | Lock the button to one coin (e.g. BTC); omit to let the customer choose |
button_text | — | Button label (default Pay with Crypto) |
reference | — | Your order/reference id — echoed back in every webhook as order_id |
email | — | Pre-fill the customer email on the payment page |
success_url | — | Where to send the customer after a confirmed payment |
cancel_url | — | Where to send the customer on expiry/cancel |
Reacting to payments (for developers)
When a verified webhook arrives, the plugin fires WordPress actions. Hook into them from your theme's functions.php or your own plugin to fulfil orders, grant access, send emails, etc.
add_action( 'cryptogate_payment_completed', function ( $event ) {
// $event['order_id'] — your `reference` from the shortcode
// $event['transaction_id'] — CryptoGate transaction id
// $event['amount_crypto'], $event['currency_crypto'], ...
error_log( 'Paid: ' . $event['order_id'] );
} );
add_action( 'cryptogate_payment_partial', function ( $event ) { /* underpaid */ } );
add_action( 'cryptogate_payment_expired', function ( $event ) { /* window expired */ } );
// Or catch everything:
add_action( 'cryptogate_webhook', function ( $event ) { /* $event['event'] = 'payment.completed' ... */ } );
Only HMAC-verified events reach these hooks.
How it works
Test mode
Replace your live keys with pk_test_... and sk_test_... in the plugin settings. All transactions will be processed in test mode without moving real funds. See Test Mode →