Buy Crypto Module

Direct fiat-style "buy crypto" purchases backed by Binance price discovery, paid via PayPal, Stripe, crypto balance or MetaMask

What the Buy Crypto Module Is

The Buy Crypto module is the "I just want to buy some BTC" flow your users see. A visitor picks a coin and an amount, gets a live price quote, picks a payment method and checks out. The purchase is tracked as a custom WordPress post (post type crypto_purchase) and the actual checkout / payment lives in the shared Checkout Module.

๐Ÿ“‹ Quick facts

  • Custom post type: crypto_purchase
  • 60 popular coins pre-configured for one-click setup
  • Custom coins supported with admin-defined pricing
  • Per-coin commission stored on the post
  • Live Binance pricing for the popular list; manual pricing for custom coins
  • Payment methods: PayPal, Stripe, crypto-balance, MetaMask / Web3 โ€” inherited from General Settings

Where to Find It

Open WP Crypto โ†’ Crypto Sales in the WordPress admin sidebar. This is the standard WordPress post list filtered to the crypto_purchase post type. From there you can add a new coin / sale, edit an existing one, or trash one you no longer offer.

The 60 Popular Coins

When you add a new "crypto sale" the form offers a quick-add grid pre-filled with the 60 most-traded Binance coins. Picking one fills the symbol, name and reasonable defaults for you. The grid contains:

Pre-configured popular coins

1INCH, AAVE, ADA, APT, ARB, ARPA, ATOM, AVAX, BANANA, BCH, BNB, BONK, BTC, DOGE, DOT, ENA, ENS, ETC, ETH, FET, FIL, FLOKI, GALA, GRT, ICP, IMX, INJ, JUP, LDO, LINK, LTC, MANA, MATIC, MEME, MKR, NEAR, NOT, ONDO, OP, PEPE, POL, RENDER, SAND, SEI, SHIB, SOL, STX, SUI, SUN, TON, TRON, TRX, TURBO, UNI, USDC, USDT, VET, WBTC, WIF, WLD, XLM, XRP.

For these coins the live price comes from Binance via the WPCrypto gateway; you do not have to maintain prices manually.

Adding a Custom Coin

If your token is not on the popular list, you can still sell it through the module. Custom coins use admin-controlled pricing.

  1. WP Crypto โ†’ Crypto Sales โ†’ Add New.
  2. Fill the basic fields: coin symbol, full name, logo image, sale description.
  3. Set the manual price in the chosen quote currency (typically USDT). The price persists until you change it.
  4. Set the per-purchase limits (min and max), the commission rate, and the default step size and tick size. The plugin defaults custom coins to step_size = 0.00000001 and tick_size = 0.01 (i.e. 8-decimal quantity precision, 2-decimal price precision).
  5. Publish. The new coin is now available in the buy-crypto interface alongside the popular ones.

The Buy Flow

  1. User picks a coin and amount. The UI shows the live (or manual) price, fee and final cost before the user commits.
  2. User picks a payment method. Only methods you enabled in General Settings appear โ€” typically PayPal, Stripe, crypto balance and MetaMask.
  3. The purchase is created. The plugin records a pending order with a unique confirmation code and sends the user to the checkout page.
  4. Checkout completes. Control hands off to the Checkout Module, which charges the user via the chosen gateway.
  5. Coin is credited to the user's balance. On success the order is marked as completed, the user's internal balance for the bought coin is topped up, and the success page renders the receipt.

Guests (not logged in) are redirected to the login page as soon as they try to start a purchase โ€” there is no guest checkout for buy-crypto. This was a deliberate change away from rate-limiting visitors.

Order Status

A buy-crypto purchase has a simple lifecycle: it sits as pending until the user pays, then moves to completed when the payment is confirmed and the coin is credited. There are no intermediate "Processing", "Cancelled" or "Failed" steps โ€” a failed payment leaves the order pending until the user retries or you remove it.

Commissions and Pricing

Every coin you add has its own commission rate (a single percentage). On purchase, the plugin computes the gross quote-cost, adds the commission to it, and stores both the gross and the commission in the order row. The credited base-coin amount is the gross divided by the price you saw at quote time.

For popular coins the price is live; for custom coins it is whatever you saved on the post โ€” there is no oracle for custom coins, so update the price when the market moves.

Public Coin List Shortcode

Use [wpcrypto_supported_coins_fees] to render a public table of supported coins and their commission rates on any page. This is the only shortcode this module exposes โ€” the actual buy interface is part of the checkout flow on the coin page itself.

Operator Notes

โš ๏ธ Things to know

  • Custom-coin prices are stale until you refresh them. Pick a quote currency you can monitor easily (USDT) and review prices before campaigns.
  • Commission goes to the platform. Make sure your commission rate covers your gateway fees (PayPal / Stripe typically take 2.9% + 30ยข).
  • Login is required. Guests are redirected to the login page; do not market the buy-crypto pages to anonymous traffic.
  • The popular coin grid is admin-only. Users do not see "popular vs custom" distinction โ€” they just see whatever coins you have published.

Troubleshooting

"Price unavailable" appears in the quote

Either the license is not active (no gateway access) or the symbol is misspelled. Confirm the license on Admin Dashboard and double-check the symbol matches a Binance market.

Order stays in PENDING after the user paid

The gateway callback never reached the site. Check Stripe / PayPal webhook configuration (Stripe in particular needs the return URL to hit your site). Manually mark the order COMPLETED if the payment is confirmed in the gateway dashboard.

User says they paid but coin was not credited

The order is still PENDING. Verify the payment in the gateway, then approve the order โ€” the success page then credits the coin to the user's balance.

Custom coin shows wrong precision in the form

Update the coin's step_size (quantity precision) and tick_size (price precision) on the post. The defaults are 0.00000001 and 0.01 respectively.