Getting started

Requirements

  • WordPress 6.9 or newer
  • PHP 8.1 or newer
  • A Stripe account

WooCommerce is optional. If you have it, see Stripe or WooCommerce first — it changes how subscriptions and accounts work.

1. Install and activate

Upload the plugin and activate it. Settings → Fabrica Monetization Kit appears, with six tabs: Monetization, Gateways, Accounts & login, Advanced, License, and Hooks (a read-only reference to the plugin’s filters and actions).

Enter your licence details on the License tab.

2. Connect Stripe

Go to Gateways and enter your Stripe keys, from the Stripe dashboard:

  • Publishable key — starts pk_. Safe to expose; it goes into the page.
  • Secret key — starts sk_ or rk_. Never leaves the server.

Where the plugin holds the keys itself, test and live mode are read from the key prefix. There is no separate switch, so a pk_test_ key simply means the site is in test mode. Where WooCommerce Stripe holds them, its own test-mode setting chooses the pair instead.

If WooCommerce Stripe is installed and configured, the plugin reads its keys instead and the fields here collapse to a status panel. WooCommerce Stripe is then the single place to manage them.

Lock warning

Once live payments have been taken, the site locks to that Stripe account and the key fields are disabled. This protects existing subscriptions: pointing a site at a different Stripe account would orphan every subscriber. Moving accounts deliberately means adding this to wp-config.php, reloading, and saving the new keys:

define('FMK_ALLOW_STRIPE_ACCOUNT_CHANGE', true);

3. Set up the webhook

This step is not optional. Without it, cancellations, failed payments and renewals at Stripe never reach your site, and readers keep access after cancelling.

If WooCommerce Stripe is installed and configured, it already has a webhook and this plugin rides it — there is nothing to add, and you should not create a second endpoint. Just check WooCommerce Stripe’s endpoint carries the events listed in Webhooks.

Otherwise your webhook URL is your site address followed by /wp-json/fabrica-monetization-kit/v1/stripe-webhook. The Gateways tab shows it along with the exact events to subscribe to, and you paste Stripe’s signing secret into the Webhook secret field there.

Full detail in Webhooks.

4. Create an account page

Readers need somewhere to log in, see what they have bought and manage their subscription.

On a site with no WooCommerce, add a page containing the Account block (or the [fmk_account] shortcode) and set it under Accounts & login → Account page. If you skip this, the plugin will warn you in the admin and offer to create the page for you — worth accepting, because without a valid account page new readers get WordPress’s stock login email instead of your set-password page.

On a WooCommerce site, the existing My Account page already does this job.

5. Decide what gets gated

Not everyone needs this. If you are gating nothing — a membership page, a donation campaign — you can stop after this step. Add the Contributions block and set its amounts on the block, or pick your products under Monetization → Memberships and add the Membership block. Neither restricts anything, so the rest of this page does not apply.

On the Monetization tab, choose what the plugin restricts:

  • Only posts with a Paywall block — nothing is gated until you add the block. The safest way to start.
  • All posts of selected types — everything of the chosen post types is gated.
  • Posts in selected taxonomies — anything carrying a term in the taxonomies you pick.

Start with the first. You can gate a single post and check the result before touching the rest of the site.

6. Put up your first wall

Edit a post, add the Paywall block where the free preview should end, and publish. Then view the post while logged out — anyone who can edit posts is waved past the wall, Contributors and Authors included, so a normal browser window will mislead you.

7. Sell something

A fresh install already prices a single post at 75p, so your first wall has something to sell whether you meant it to or not. On the Monetization tab, change that default, add a subscription product, or both — before you switch to live keys. The wall only offers what is actually available for that post.

Testing before you go live

Use Stripe test keys and Stripe’s test cards4242 4242 4242 4242 with any future expiry and any CVC will succeed.

Check the whole path in a logged-out window: preview, wall, payment, and the account page afterwards. Watching a subscription cancel at Stripe and seeing access disappear on the site is the one test that proves your webhook is working.