eew Subscriptions Lite

Disgrifiad

eew Subscriptions Lite (the eew stands for East End Web) lets you sell recurring subscriptions directly from WordPress using Stripe and/or PayPal – no WooCommerce, no bloat.

Try the live demo – see the subscription form and gated content in action before you install anything. The demo page also shows the content restriction and one-time payment blocks, which need the full version (see below) – each block is labelled with which edition provides it.

Features:

  • Subscription form with unlimited products via [eew_sub_lite_subscription_form]
  • Customer manage subscriptions dashboard via [eew_sub_lite_manage_subscriptions]
  • Gutenberg blocks: Subscription Form (Lite) and Manage Subscriptions (Lite)
  • Guest checkout – WP accounts created automatically on first payment
  • Supports returning customers with saved payment methods
  • Webhook handling for subscription lifecycle and invoice events
  • Compatible with any WordPress theme

Requirements:

  • A Stripe account and/or a PayPal REST app – at least one payment vendor must be configured
  • Stripe: publishable key, secret key and webhook secret. PayPal: Client ID, Client Secret and Webhook ID. (Both configured in Dashboard nav > EEW Subs Lite)

Upgrade to full version:

The full version of eew Subscriptions adds:

  • One-off payment forms (Set price / pay what you want)
  • One-time access passes (a single payment grants time-limited access)
  • Full-page/by block and file/media content restriction by subscription (via active sub or one time payment pass)
  • Learn more and purchase at eastendweb.dev

External Services

This plugin connects to the following external services to provide its core functionality. No data is ever sent to the plugin author – all communication is directly between your server/visitors and the payment vendor(s) you configure.

Stripe API (api.stripe.com)

Your server communicates with the Stripe API (via the bundled official Stripe PHP SDK) to create and manage customers, subscriptions, setup intents and payment methods. When a visitor uses the subscription form or the manage-subscriptions dashboard, the following data is sent to Stripe: the customer’s email address and name (where provided), and the identifiers of the products, prices, subscriptions and payment methods involved. Stripe also sends webhook events back to your site to keep subscription statuses in sync.

Additionally, if you click Create Webhook Automatically on the settings page, your server sends your site’s webhook URL to Stripe in order to list, create and delete webhook endpoints in your own Stripe account. Note that this action deletes any existing endpoint registered at that same URL before creating the replacement – Stripe only reveals a webhook signing secret at the moment an endpoint is created, so an existing endpoint cannot be reused. Endpoints at any other URL are never touched. This only happens when you click the button; nothing is sent automatically.

Additionally, when you open the plugin’s settings page, your server asks Stripe to confirm the API key you have saved is valid and to name the connected account (Stripe’s “retrieve account” call). No customer data is involved – only your own saved credentials. The result is cached and re-checked when you save new keys, when you click Re-check, or after the cache expires.

Stripe.js (js.stripe.com)

On pages containing the subscription form or manage-subscriptions shortcode/block, the Stripe.js library is loaded in the visitor’s browser directly from js.stripe.com, as required by Stripe for PCI compliance. Card details are entered into Stripe’s secure Payment Element and are sent directly from the visitor’s browser to Stripe – they never pass through your server.

Stripe services are provided by Stripe, Inc. – Terms of Service, Privacy Policy.

PayPal API (api-m.paypal.com, or api-m.sandbox.paypal.com in Sandbox mode)

If you enable PayPal as a payment vendor (Settings > Enabled Payment Vendors), your server communicates with the PayPal REST API to obtain an access token, create, look up and cancel subscriptions, look up billing plans, and verify the signature of incoming PayPal webhooks. When a visitor uses the subscription form with PayPal selected, the following data is sent to PayPal: the customer’s email address and name (where provided), and the identifiers of the plans and subscriptions involved. PayPal also sends webhook events back to your site to keep subscription statuses in sync. This only happens if you configure PayPal credentials in the plugin settings – a Stripe-only site never contacts PayPal. The Sandbox/Live environment setting determines which of the two hosts is used.

Additionally, if you click Create Webhook Automatically on the settings page, your server sends your site’s webhook URL to PayPal in order to list and create webhooks in your own PayPal app. Unlike Stripe, an existing matching webhook is reused rather than replaced, so nothing is deleted. This only happens when you click the button; nothing is sent automatically.

Additionally, when you open the plugin’s settings page, your server requests a PayPal access token to confirm the Client ID and Client Secret you have saved are valid. No customer data is involved – only your own saved credentials. The result is cached and re-checked when you save new credentials, when you click Re-check, or after the cache expires.

PayPal JS SDK (paypal.com)

On pages containing the subscription form, if PayPal is configured and selected as the payment method, the PayPal JS SDK is loaded in the visitor’s browser directly from paypal.com to render the PayPal payment button and complete checkout.

PayPal services are provided by PayPal, Inc. – Terms of Service, Privacy Policy.

Lluniau Sgrin

Blocks

This plugin provides 2 blocks.

  • Manage Subscriptions (Lite) Display the subscription management dashboard.
  • Subscription Form (Lite) Embeds a subscription form (Stripe and/or PayPal) with unlimited products.

Gosod

  1. Upload the eew-subscriptions-lite folder to /wp-content/plugins/.
  2. Activate the plugin via Plugins > Installed Plugins.
  3. Go to Dashboard nav > EEW Subs Lite, enter your Stripe and/or PayPal API keys under Enabled Payment Vendors, and add the products (Stripe product IDs and/or PayPal Plan IDs) you want to offer as subscriptions.
  4. Set up the webhook endpoint(s) for whichever vendor(s) you enabled. The quickest way is the “Create Webhook Automatically” button in each vendor’s section of the settings page: save your API keys first, then click it and the plugin registers the webhook URL with that vendor and stores the signing secret (Stripe) or Webhook ID (PayPal) for you, with the correct events already subscribed. For Stripe, note this replaces any existing endpoint already registered at the same URL – Stripe only reveals a signing secret when an endpoint is first created, so an existing one can’t be reused.
  5. (Optional – only if you’d rather do it by hand, or the button isn’t available.) The webhook URL(s) are shown on the settings page for manual setup. Stripe: webhook setup walkthrough. PayPal: webhook setup walkthrough. See the “What webhook events should I listen for?” FAQ below for the exact events each vendor needs.
  6. Add the [eew_sub_lite_subscription_form] shortcode to any page.
  7. Add the [eew_sub_lite_manage_subscriptions] shortcode to a dedicated page for customers to manage their subscriptions.

A complete guide can be found here (eastendweb.dev)

Cwestiynau Cyffredin

Do I need WooCommerce?

No. eew Subscriptions Lite works independently of WooCommerce.

Where do I find my Stripe product ID?

Log in to your Stripe dashboard, go to Products, and copy the ID that starts with prod_.

What’s the difference between the lite and full version?

The lite version covers subscription forms (unlimited products) and the manage subscriptions dashboard. The full version adds one-off payment forms, one-time access passes, and content and media restriction. Find out more.

What webhook events should I listen for?

If you’re using Stripe: add your webhook URL (shown in the plugin settings) to your Stripe dashboard under Developers > Webhooks. Listen for: customer.subscription.created, customer.subscription.updated, customer.subscription.deleted, invoice.created, invoice.paid, invoice.payment_failed, invoice.overdue.

If you’re using PayPal: add the webhook URL (also shown in the plugin settings) to your PayPal app under Webhooks. Subscribe to: BILLING.SUBSCRIPTION.ACTIVATED, BILLING.SUBSCRIPTION.UPDATED, BILLING.SUBSCRIPTION.CANCELLED, BILLING.SUBSCRIPTION.SUSPENDED, BILLING.SUBSCRIPTION.EXPIRED, PAYMENT.SALE.COMPLETED and PAYMENT.SALE.DENIED. The two PAYMENT.SALE.* events cover recurring renewal charges (PayPal delivers these separately from the subscription lifecycle events) and are required for renewal notification emails to be sent.

Is this plugin compatible with caching plugins?

The shortcode forms are rendered server-side. If you use a full-page caching plugin, exclude the pages containing the shortcodes from the cache.

Will my customers need to create an account?

New customers are only prompted for their email address. A WordPress account is created automatically after a successful payment and a password-reset email is sent.

Adolygiadau

There are no reviews for this plugin.

Contributors & Developers

“eew Subscriptions Lite” is open source software. The following people have contributed to this plugin.

Cyfranwyr

Cofnod Newid

1.3.9

  • Bugfix: the first time Stripe or PayPal credentials were saved on a site, the stored value was encrypted twice and could not be read back. In practice this meant “Create Webhook Automatically” failed with an API error immediately after setup, and only started working once you pasted the Secret Key in and saved a second time. The same fault also affected the webhook signing secret and PayPal Webhook ID saved by those buttons, which could leave incoming events failing signature verification without any visible sign. Existing sites are repaired automatically on upgrade – no need to re-enter anything.
  • New: the Stripe and PayPal settings sections now show a connection status line. Because the key fields are masked once saved, there was previously no way to tell a good stored key from a bad one. The plugin now checks the saved credentials with the vendor and reports the result – the connected account and whether it is live or test mode, or exactly what the vendor rejected – and re-checks whenever you save new credentials or click Re-check.
  • New: the settings page now warns about credential mistakes it can see without asking the vendor: a publishable key pasted into the Secret Key field, a webhook signing secret that does not start with whsec_, a stored value that did not decrypt cleanly, and a live key paired with a test key.
  • Improved: “Create Webhook Automatically” now says what actually went wrong. A rejected Secret Key, a restricted key without webhook permission, and a network failure each get their own message and a next step, instead of a single generic API error.

Older entries (1.3.8 and earlier) are listed in changelog.txt, included with
the plugin.