Dude Paywall Documentation

Sell digital downloads with Stripe Checkout.

Lightweight WordPress plugin for selling PDFs, ZIP files, software, licences and other digital products directly from your website.

Dude Patron — User Guide

This guide is for site owners and administrators who accept support with Dude Patron. It explains setup, the support form, checkout, public listing, and day-to-day use. Current product version: 1.0.0.

What Dude Patron does

Dude Patron lets you:
  • Accept one-off support via Stripe Checkout (payment happens on Stripe’s pages, not inside WordPress).
  • Offer suggested amounts and an optional custom amount.
  • Show an optional public patron list for people who consent.
  • With Pro, accept weekly, monthly, or annual patronage (you choose one interval for the site) and let patrons manage billing in the Stripe Customer Portal.
You do not need WooCommerce, a membership plugin, or a charity CRM. There is no shopping cart—each checkout is one contribution.

Requirements

Requirement Minimum
WordPress 6.5+
PHP 8.1+
Stripe account Required for paid checkouts
HTTPS Strongly recommended for live payments
Paid checkouts use Stripe Checkout only. Card data is never stored on your WordPress site.

Installation

  1. Install Dude Patron from the WordPress plugin directory (when available), or upload the plugin ZIP under Plugins → Add New → Upload Plugin.
  2. Activate the plugin.
  3. In the admin sidebar, open Dude Patron.
On first use you may see a Freemius opt-in screen. You can skip it—the free plugin works without a licence. A Pro licence (purchased separately) unlocks recurring patronage and extras described below.

Quick start (about five minutes)

  1. Connect StripeDude Patron → Settings → Stripe. Add your Stripe test publishable and secret keys, leave Test mode enabled, and click Save and test Stripe connection. See Connecting Stripe.
  2. Webhooks — Add a Stripe webhook endpoint (Test mode) pointing at your Dude Patron webhook URL and paste the signing secret. See Webhook endpoint.
  3. Add the form — Edit a page → insert the Dude Patron block (or

    Support Our Work

    If you value what we do, you can help support this site.

    Contribution amount

    ) → Publish.
  4. Test — Open the page in a private/incognito window. Use Stripe test card 4242 4242 4242 4242 with any future expiry and CVC.

Admin menu overview

Screen Purpose
Patrons Contribution list; search; show or hide a patron on the public list
Settings Stripe, form, emails, appearance, logging, tools, system status (Integrations tab is Pro)
Logs Diagnostic log (only if enabled under Settings → Logging)
System status Environment checks when troubleshooting (also a Settings tab)
Administrator capability (manage_options) is required for these screens.

Connecting Stripe

Dude Patron uses manual API keys from your Stripe Dashboard.
  1. In Stripe Dashboard, enable Test mode (toggle in the dashboard).
  2. Go to Developers → API keys and copy the Publishable key and Secret key (test).
  3. In WordPress, open Dude Patron → Settings → Stripe.
  4. Enable Use Stripe test keys (Test mode).
  5. Paste keys into Test publishable key (pk_test_…) and Test secret key (sk_test_…). Do not paste a pk_ key into the secret field.
  6. Click Save and test Stripe connection. In test mode this also probes inbound webhooks. You should see a success message when keys and webhooks are healthy.
Keys show masked placeholders after saving so you can confirm the correct keys are stored. Leave a field blank when saving to keep the existing value.

Webhook endpoint (live sites and reliable local testing)

Stripe notifies WordPress when a payment succeeds. The plugin shows your webhook URL on the Stripe settings tab:
https://YOUR-SITE/wp-json/dude-patron/v1/webhooks/stripe
This is not the same URL as Dude Paywall, Dude Downloads, or Dude Donations. Each plugin needs its own Stripe webhook endpoint and signing secret. On a public live site:
  1. In Stripe: Developers → Webhooks → Add endpoint (use the same Test / Live mode as the plugin).
  2. Paste the URL above.
  3. Subscribe to only these events (do not select all events):
    • checkout.session.completed
    • checkout.session.async_payment_succeeded
    • checkout.session.async_payment_failed
    • checkout.session.expired
    • charge.refunded
  4. If you use Pro recurring patronage, also subscribe to:
    • customer.subscription.updated
    • customer.subscription.deleted
    • invoice.paid
    • invoice.payment_failed
  5. Copy the Signing secret (whsec_…) into Test webhook secret or Live webhook secret in plugin settings (matching test vs live mode).
On Local WP or other offline dev sites: Stripe cannot reach your machine. Either use the Stripe CLI to forward events to the webhook URL, or enable Allow test-mode confirmation without inbound webhooks — see Troubleshooting.

Going live

  1. Complete Stripe account activation and switch the Dashboard to Live mode.
  2. In plugin settings, disable Test mode and enter Live publishable, secret, and webhook signing secrets.
  3. Create a Live webhook endpoint with the same URL and events; paste the live whsec_….
  4. Do not rely on local “confirm without webhooks” on production—live sites must use webhooks.
  5. Run a real small-value contribution to confirm records and email delivery.

Adding the support form

Place the form on a normal WordPress page (about, support, footer — wherever you want it).
Method How
Gutenberg Insert the Dude Patron block
Classic / builders

Support Our Work

If you value what we do, you can help support this site.

Contribution amount

Optional shortcode attributes (otherwise Settings → Form is used):
		

Support this site

Thank you.

Contribution amount

Default currency, suggested amounts, custom amount, headline, description, and button text are set under Dude Patron → Settings → Form.

Public patron listing

Visitors can tick You may list my name publicly as a patron. Only those who consent appear on the public list. Emails and amounts are never shown.
Method How
Gutenberg Insert the Our Patrons block
Classic / builders

No patrons have chosen to be listed yet.

Optional:

Our patrons

No patrons have chosen to be listed yet.

From Dude Patron → Patrons you can Show on public list or Hide from public list for any contribution.

What your visitors experience

  1. Visitor sees the form (amounts, name, email, optional public name and listing consent).
  2. They submit and are redirected to Stripe Checkout.
  3. If Stripe Tax is enabled, Checkout collects a billing address and shows calculated tax before payment.
  4. After payment, Stripe returns them to your thank-you page (or the default success screen).
  5. When the webhook confirms payment, the contribution is marked complete and they receive a thank-you email (if mail is working).
If confirmation is still pending for a few seconds, the return page may wait for the webhook. On Local test mode, use local payment confirm when enabled. With Pro, the form also offers one-off vs your chosen recurring interval. Recurring patrons can manage billing in the Stripe Customer Portal.

Cancelled checkout

If the visitor abandons Stripe Checkout, they return without a completed contribution and no payment is taken.

Patrons

Dude Patron → Patrons lists contributions.
  • Search by name or email.
  • See type (one-off or recurring), amount, status, and whether they appear on the public list.
  • Pro: export the list as CSV from the admin tools provided with Pro.

Contribution statuses

Status Meaning
pending Checkout started; payment not yet confirmed
completed Paid
failed Payment failed
expired Checkout session expired without payment
refunded / partially_refunded Refund recorded from Stripe

Settings reference

Stripe

  • Test mode — Use test API keys and test webhooks.
  • Allow test-mode confirmation without inbound webhooks — Test mode only. Do not use on production.
  • Stripe Tax — Enable tax collection, then set price tax behaviour (exclusive or inclusive). Requires Tax registrations in the Stripe Dashboard.
  • Webhook URL — Copy into Stripe Dashboard (Patron URL, not Paywall or Downloads).
  • API keys / webhook secrets — Leave blank when saving to keep the stored value (masked placeholders).
  • Save and test Stripe connection — Verifies keys; in test mode also probes inbound webhooks.

Form

  • Currency, headline, description, button text.
  • Suggested amounts — Comma-separated major units, e.g. 5, 10, 25.
  • Custom amount — Let visitors enter another amount.
  • Minimum amount.
  • Success / cancel pages — Optional pages after Checkout.
  • One-off thank-you copy — Shown after a successful one-off contribution.
  • Recurring interval and recurring thank-you copy — Used when Pro recurring patronage is active. You pick one interval (weekly, monthly, or annual). Visitors choose one-off or that cadence — not multiple plans.

Emails, appearance, logging

  • Emails — Admin notification when a contribution completes, from name/address. Pro: custom thank-you and patron email templates.
  • Appearance — Optional form button background and text colour.
  • Logging — Log level, retention, optional Logs submenu, and Delete plugin data on uninstall (use with care).
  • Tools — Webhook URL and the Stripe events to subscribe to. Pro: outgoing webhook test and delivery log.
  • System status — Plugin version, Stripe mode, webhook health. Never paste secret keys into a support ticket.

Outgoing webhooks (Pro)

Send signed JSON events to automation tools (Make, n8n, Zapier, custom URL). Configure under Settings → Integrations; use Tools to send a test and view delivery logs.

Dude Patron Pro

Pro is a separate package licensed through Freemius. The free plugin includes unlimited one-off contributions, Stripe Checkout, suggested and custom amounts, public listing, inbound Stripe webhooks, and the patrons list. Pro adds:
Feature Benefit
Recurring patronage One site-wide interval: weekly, monthly, or annual. Same form as one-off support
Stripe Customer Portal Patrons update payment method or cancel billing
Outgoing webhooks Automate CRM, email tools, or internal systems
CSV export Export contributions
Custom thank-you emails Control supporter and recurring-patron email copy
Admin REST API Integrate with external tools
Activate Pro from Dude Patron → Account (Freemius) after purchase.

Email delivery

Thank-you and notification emails are sent with WordPress’s wp_mail(). If people do not receive mail:
  • Install and configure an SMTP plugin (common on shared hosting).
  • Check spam folders.
  • Confirm Settings → General site email is valid.
  • On local dev, use a mail catcher (e.g. Mailhog) or an SMTP relay.

Troubleshooting

“Connected to Stripe” fails

  • Confirm you copied the full secret key (sk_test_… or sk_live_…), not a publishable pk_ key.
  • Ensure test vs live keys match the Test mode checkbox.
  • Check PHP can make outbound HTTPS requests (firewall, hosting restrictions).

Payment succeeded in Stripe but contribution stays pending

  • Webhook not configured, wrong mode (Test vs Live), or wrong signing secret for this endpoint.
  • Webhook URL must be the Patron URL (…/dude-patron/v1/webhooks/stripe), not Paywall, Downloads, or Donations.
  • Webhook URL must be publicly reachable (not localhost without CLI forwarding).
  • Open Patrons—if status is still pending, the webhook did not complete.
  • On local test mode: enable confirm-without-webhooks on the Stripe settings tab.
  • Hosting firewall / CDN: allow Stripe POSTs to /wp-json/dude-patron/.

Form never appears

  • Confirm the Dude Patron block or

    Support Our Work

    If you value what we do, you can help support this site.

    Contribution amount

    is on the published page.
  • If you used a page builder, place the shortcode in an HTML or shortcode widget.

Tax is £0.00 or “Enter address to calculate”

  • Confirm Stripe Tax is enabled in plugin settings and you have active Tax registrations in Stripe Dashboard → Tax for that mode (test vs live).
  • The buyer must enter a billing address on Checkout.

Need technical details for support

Open Dude Patron → Settings → System status and note plugin version, webhook URL, whether the webhook secret is configured, and last webhook received time. Share WordPress/PHP versions and test vs live mode—never paste secret keys.

Privacy and external services

  • Stripe processes payments under Stripe’s terms and privacy policy.
  • Freemius (optional opt-in / licensing) may collect usage data per their policy when you connect an account. See Freemius privacy.
  • Name and email are stored with contributions for fulfilment and admin visibility. Public listing shows a display name only, and only with consent.
  • WordPress Tools → Export Personal Data / Erase Personal Data includes Dude Patron records.

Frequently asked questions

Do I need WooCommerce? No. Dude Patron is standalone. Is this a membership or charity plugin? No. It is not a membership platform, charity CRM, or fundraising suite. How is this different from Dude Donations? Dude Donations is for campaigns and donation targets. Dude Patron is a simple support form for your site. Recurring support is Pro on Patron, not a second Donations product. Do supporters need a WordPress account? No. They enter a name and email on the form. Can I offer weekly, monthly, and annual plans at once? No. Pro uses one interval for the whole site. Visitors choose one-off or that cadence. Where is card data stored? On Stripe’s servers only, not in WordPress. Does the plugin calculate VAT / sales tax? No. Optionally enable Stripe Tax so Stripe calculates and collects tax from the buyer’s location. Register jurisdictions in the Stripe Tax dashboard. Does it work with page builders? Use

Support Our Work

If you value what we do, you can help support this site.

Contribution amount

and

No patrons have chosen to be listed yet.

in an HTML or shortcode widget.