1. API keys
- Go to dashboard.stripe.com → Developers → API keys.
- While testing, use the test mode keys (they start with
pk_test_.../sk_test_...). Switch to live keys only when you’re ready to take real payments. - Copy the Publishable key and Secret key into the matching fields on the Stripe tab in WordPress.
2. Webhook & signing secret
Stripe needs to notify your WordPress site when a checkout completes, a subscription renews, or a subscription is cancelled — this is what actually grants or revokes access.- The Webhook endpoint field on the Stripe tab is pre-filled and read-only. Copy it (it ends in
.../wp-json/blockli-mobile/v1/iap/stripe/webhook). - In Stripe Dashboard → Developers → Webhooks → Add endpoint, paste that URL.
- Select these events:
checkout.session.completedinvoice.payment_succeededcustomer.subscription.deleted
- Save the endpoint. Stripe reveals a signing secret (
whsec_...) — copy it into the Webhook signing secret field in WordPress. - Click Save Store Credentials.
3. Create products and prices in Stripe
- Stripe Dashboard → Product catalog → Add product.
- Name the product, then add one or more Prices under it — for example, a recurring Monthly price and a recurring Yearly price on the same product. Stripe supports multiple prices per product natively.
- Copy each Price’s ID (it starts with
price_...). You’ll paste these into the plugin next.
4. Register products in the plugin
Stripe Products tab
Create one row per Stripe product.- Type — Subscription or One-time.
- Prices — add one price row per interval. For each:
- Price ID — the
price_...ID from Stripe. - Price shown — the display string users see (e.g.
$9.99/mo). You set this yourself; Stripe doesn’t return formatted pricing at runtime the way native stores do. - Fine print / Badge — optional, shown beneath the price.
- Price ID — the
Packages tab
Create one Package per Stripe product.- Package ID — your own short ID.
- Source — set to Stripe.
- Store product — pick the Stripe product from above.
- Interval — Monthly or Yearly, matching the billing period of this package.
Offerings tab
An Offering is one tier (e.g. “Pro”, “Premium”) with its own entitlement and marketing copy.- Name, Tagline, Description — shown on this tier’s card in the app.
- Included access — this tier’s feature checklist.
- Packages — add both monthly and yearly Packages here if you want a Monthly/Yearly switcher on this tier’s card. Add just one for a single-interval tier. Mix native and Stripe packages freely.
- Access grant — what purchasing any Package in this Offering actually unlocks (a membership group, a course, etc.).
Paywalls tab
The purchase screen itself.- Title, Tagline, Description, Image — shown once at the top of the screen.
- Offerings — pick one Offering for a single-tier screen, or several (e.g. Pro + Premium) to display multiple tier cards on the same screen.
- Visible — must be checked for the app to fetch this paywall at all.
Testing
Use a Stripe test card (e.g.4242 4242 4242 4242) through the app’s checkout flow. Confirm the event appears under Notification Events and the resulting entitlement under Transactions in the WordPress plugin.
