Course Flow

Course Flow

Details
View on WordPress

Sell online courses with Stripe — without WooCommerce.
Course Flow is a lightweight, free WordPress plugin that adds direct Stripe Checkout to Tutor LMS, LearnPress, and LearnDash.
No extra plugins. No conflicts. No slow checkouts.

Why course creators choose Course Flow

  • No WooCommerce required — avoids unnecessary complexity and plugin conflicts.
  • Fast setup — configure Stripe keys and add a shortcode to start accepting payments.
  • Direct Stripe Checkout — secure, hosted checkout handled by Stripe.
  • Automatic course enrollment after successful payment.
  • Optional automatic WordPress user account creation.
  • Fully customizable purchase buttons, including image-based buttons.
  • Lightweight architecture — minimal frontend and admin assets.
  • Translation-ready with included .pot file.

Key Features

  • Direct Stripe Checkout integration (no WooCommerce dependency).
  • Supports Tutor LMS, LearnPress, and LearnDash (one active LMS required).
  • One-time payments via Stripe Checkout.
  • Automatic course enrollment after successful payment.
  • Optional automatic WordPress user account creation.
  • Secure Stripe webhook handling (checkout.session.completed).
  • Test mode and live mode support.
  • Purchase shortcodes:
    • [courseflow_buycourse id="123"]
    • [courseflow_course id="123"]
    • [courseflow_imagebuycourse id="123"]
  • Visual button customization (text, colors, hover effects, layout).
  • Image-based purchase buttons.
  • Admin course list with ready-to-copy shortcodes.
  • Secure REST API (course-flow/v1) with capability and nonce validation.
  • Optional plugin telemetry (disabled by default).
  • Fully translatable (.pot file included).

Requirements

  • WordPress 6.7 or newer
  • PHP 7.4 or newer
  • One active LMS plugin:
    • Tutor LMS
    • LearnPress
    • LearnDash
  • Stripe account (Publishable Key, Secret Key, Webhook Secret)
  • HTTPS enabled

Configuring Stripe Webhooks

To enable automatic enrollment after payment:

  1. Open Stripe Dashboard Developers Webhooks.
  2. Add endpoint:
    https://your-site.com/wp-json/course-flow/v1/webhook
  3. Select event: checkout.session.completed
  4. Copy the webhook secret and paste it into plugin settings.
  5. Use the TEST CONNECTION button in admin to validate configuration.

Shortcodes

  • [courseflow_buycourse id="123"] — standard buy button
  • [courseflow_course id="123"] — alternative purchase button
  • [courseflow_imagebuycourse id="123"] — image-based buy button

REST API

Namespace: course-flow/v1

  • POST /create-checkout
  • POST /webhook
  • POST /test-connection (admin only)
  • POST /save-settings (admin only)

Protected endpoints validate user capabilities and nonces.

Admin Pages

Settings — Configuration of Stripe API keys, currency, success page, account creation behavior and optional plugin telemetry.
Courses — List of detected LMS courses with IDs and available purchase shortcodes.
Button Settings — Visual customization of purchase buttons.
Image Button Settings — Management of image-based purchase buttons.

Data Privacy

Course Flow includes an optional plugin telemetry feature.

When explicitly enabled by an administrator, the plugin may transmit limited, non-personal plugin metadata (such as site URL and plugin version) to the plugin author for diagnostic and compatibility purposes.

This feature is:
– Disabled by default
– Explicitly opt-in
– Does not collect personal or user-identifiable data

The plugin functions fully without enabling this option.

More information can be found in the author’s privacy policy:
https://dev.pawelborowiec.com/course-flow/privacy-policy.html

External Services

Stripe

Stripe is used to process payments via Stripe Checkout.

  • Stripe JavaScript library is loaded from https://js.stripe.com/v3/
  • Stripe API is used for checkout session creation and webhook handling.
  • Payment data is transmitted directly to Stripe during checkout.

Service Provider: Stripe, Inc.
Terms: https://stripe.com/legal
Privacy: https://stripe.com/privacy

Localization

  • Translation-ready with included .pot file.
  • Translation files should be placed in the /languages/ directory.
  • Default language: English.

Included Libraries

  • Stripe PHP SDK (MIT)
  • Select2 (MIT)
  • Bundled local fonts (OFL)

License

GPLv2 or later

Details

Plugin code:
course-flow
Plugin version:
1.0.0
Outdated:
No
WP version:
6.7 or higher
PHP version:
7.4 or higher
Test up to WP version:
6.9
Total installations:
0
Last updated:
2026-01-04
Rating:
Times rated:
0
learndash
learnpress
lms
stripe
tutor