---
title: Subscriptions Overview
menu_group: Subscriptions
menu_order: 50
tab: Overview
tab_order: 10
admin_slug: wpst_subscriptions_overview
requires_subscriptions: true
summary: Health snapshot, counts, and configuration warnings for subscriptions.
---

# Subscriptions Overview

**Location:** MediaBlaster → **Subscriptions** → Overview tab

The subscription system lets you gate premium video, sell plans via Stripe, and expose a REST API for apps. It is **disabled by default**.

## Enable subscriptions

Add this to `wp-config.php` (above the “stop editing” line):

```php
define( 'WPST_SUBSCRIPTIONS_ENABLED', true );
```

A commented example is included in the default Local WP `wp-config.php`. After enabling and reloading wp-admin:

- **MediaBlaster → Subscriptions** — all tabs become available
- **MediaBlaster → Docs** — subscription guides appear in the index (guides marked `requires_subscriptions: true`)

Until `WPST_SUBSCRIPTIONS_ENABLED` is true, subscription menus, Docs subscription section, shortcodes, REST routes, and the Subscription Access metabox are inactive.

There is no working admin toggle for subscriptions on General Settings while the module is disabled; the only master switch is `wp-config.php`. When the module is enabled, General Settings may show a disabled **Coming Soon** switch for documentation only — it does not turn subscriptions on or off.

## Admin tabs

| Tab | Purpose |
|-----|---------|
| **Overview** | Counts, REST status, Stripe diagnostics, configuration warnings |
| **General** | Defaults for access, trials, front-end mode, legacy feed opt-in |
| **API/Auth** | Bearer tokens, login endpoints, HTTPS requirements |
| **Payment Providers** | Stripe checkout, webhooks, keys (PayPal/Apple/Google/Amazon stubs) |
| **Tiers** | Subscription plans, pricing, Stripe Price IDs |
| **Access Groups** | Content bundles assigned to tiers |
| **Subscribers** | User search, manual assign/cancel, Sync from Stripe |
| **Sub Logs** | Payment webhook audit trail |

Each tab shows a short intro paragraph. Hover field labels or the `?` icon for detailed tooltips.

## How access works

MediaBlaster's internal subscription records are the **source of truth** for who can watch premium content. Stripe (and future providers) sync into those records via webhooks — Stripe is a payment provider, not the entitlement engine.

```
Tier → Stripe Price → Checkout → Webhook → Internal subscription → Content access
```

## Quick start path

1. [Subscriptions General](subscriptions-general.md) — set defaults and enable REST if needed.
2. [Payment Providers](subscriptions-payment-providers.md) — enable Stripe.
3. [Stripe Checkout Setup](stripe-checkout-setup.md) — keys, webhooks, pages.
4. [Tiers](subscriptions-tiers.md) — create plans and map Stripe Price IDs.
5. [Access Groups](subscriptions-access-groups.md) — bundle content (optional).
6. Publish pages with [Shortcodes](shortcodes.md) — `[wpst_subscribe]` and `[wpst_account]`.

## Legacy IPTV feeds

The Roku feed at `/wp-json/tv/roku/` is **unchanged** unless you enable **Apply subscription rules to legacy IPTV feeds** on the General tab.
