Skip to main content

Documentation

Everything needed to connect Zoom to LearnDash, from installation to your first live session. Setup takes about fifteen minutes.

Quick start

If you have your Zoom account ready, this is the whole path:

  1. Install the plugin and activate your licence
  2. Create a Zoom OAuth app and add the six required scopes
  3. Turn on event subscriptions so attendance is reported back
  4. Connect your Zoom account in WordPress
  5. Enable Zoom on a LearnDash topic and set your completion rule

Before you begin: you need a paid Zoom plan (Pro or higher) and admin rights on that Zoom account.

1. Requirements & installation

Before you start

  • WordPress 6.0 or higher
  • PHP 8.1 or higher
  • LearnDash installed and active
  • A paid Zoom plan (Pro or higher). Attendance tracking relies on Zoom’s participant reports, which are not available on Basic accounts.
  • Your site’s domain, for licence registration and the OAuth redirect

Install and activate the plugin

  1. Go to Plugins → Add New → Upload Plugin
  2. Upload the .zip file from your purchase
  3. Click Install Now, then Activate
  4. A new LiveClass Sync menu item appears

Activate your licence

  1. Go to LiveClass Sync → Settings → Activation Key
  2. Enter your licence key
  3. Click Activate License and wait for confirmation

Your licence must be active before any Zoom features will work.

LiveClass Sync settings screen showing the Activation Key field with a saved licence key, a confirmation that the key is saved, and the Zoom Integration section reporting the Zoom OAuth app as active.
Once the key is accepted you will see the licence expiry date and, below it, the Zoom connection status.

2. Connect Zoom

Six steps, done once. After this, meetings are created from inside LearnDash.

What Zoom account you need

You need a Zoom account on a paid plan, not Basic or Free, if you want to host meetings beyond the free-plan limit or use features above the free tier.

Just as important: the Zoom user authorising the app must have admin-level privileges, or be the account owner. Account-level and Server-to-Server OAuth apps with broad scopes can only be authorised by account admins, or by users with marketplace and developer permissions.

Step 1 — Create your Zoom OAuth app

  1. Log in to the Zoom Marketplace as the account owner or an admin
  2. Go to Develop → Build App
  3. Choose OAuth
  4. Name the app and click Create

Step 2 — Configure redirect and webhook URLs

  • Redirect URL (for OAuth): paste the URL shown in the plugin settings
  • Webhook endpoint (for event subscriptions): paste the plugin’s webhook URL
  • Copy the Secret Token — you will need it in the plugin
The Configuration Information panel in LiveClass Sync settings, listing the OAuth Redirect URL ending in wp-admin/admin.php?page=liveclass-sync-settings and the Webhook Endpoint URL ending in includes/api/webhook-endpoint.php, each with a Copy button.
Both URLs are generated for your own site — open Configuration Information and use Copy rather than typing them by hand. The domain is hidden here; yours will show in full.

Step 3 — Add OAuth scopes

All six scopes are required. Missing any one of them causes errors later that are hard to trace back to this screen.

Scope What it does
meeting:write:meeting:adminCreates meetings from LearnDash topics
meeting:read:meeting:adminReads meeting details back into WordPress
meeting:update:meeting:adminSyncs date and time changes made in LearnDash
meeting:delete:meeting:adminRemoves the Zoom meeting when a topic is deleted
user:read:user:adminIdentifies the connected Zoom account
report:read:list_meeting_participants:adminRetrieves attendance after each session

If the scopes do not appear, the integration may not support automatic meeting creation or management on that account type.

Changing scopes later? Adding scopes to the app does not affect an existing connection. A token keeps whatever was granted when it was authorised, and refreshing preserves it. After changing scopes you must go to LiveClass Sync → Settings → Disconnect Zoom Account, then connect Zoom again.

Step 4 — Enable event subscriptions

This is what delivers attendance back to WordPress. Without it, meetings are created but nothing is recorded.

  1. Turn on Event Subscriptions
  2. Add the webhook URL from the plugin settings
  3. Subscribe to at least meeting.started and meeting.ended

Step 5 — Enter your credentials in WordPress

  1. Go to LiveClass Sync → Settings
  2. Paste the Client ID, Client Secret and Secret Token
  3. Save

Step 6 — Connect your Zoom account

  1. Click Connect Zoom
  2. Approve the permissions when prompted
  3. Return to WordPress — you should see a confirmation, unless scopes are missing

Optional — Meeting SDK for browser join

Only needed if you want students to join inside the page rather than in the Zoom app. Standard live classes work with the single OAuth connection above.

  1. Build a Meeting SDK app in the Zoom Marketplace
  2. Use the same redirect URL
  3. Copy the SDK Client ID and Secret into the plugin settings and save

3. Using it in LearnDash

Create a Zoom meeting on a topic

  1. Edit or add a Topic, then scroll to LiveClass Sync Meeting
  2. Toggle Enable Zoom Meeting, then fill in the meeting name, date, time, duration and an optional password
  3. Save or update the topic

The plugin creates the Zoom meeting automatically and embeds the join link in the topic.

The LiveClass Sync Meeting panel on a LearnDash topic, with Enable Zoom Meeting switched on and fields for meeting name, date, time, optional password, duration of 60 minutes and a completion percentage of 80.
The LiveClass Sync Meeting panel appears below the topic content. With 60 minutes and 80% set here, a student must attend 48 minutes for the topic to complete.

Update or delete a meeting

  • Editing the topic and clicking Update pushes the changes to Zoom automatically
  • Deleting the topic deletes the meeting on Zoom

Completion percentage explained

The Completion Percentage field decides how much of a session a student must attend before the topic is marked complete.

Setting The student must
80% (default)Attend 80% of the meeting duration
100%Attend the entire meeting
50%Attend half the meeting
0%Nothing — the topic completes when the meeting ends, regardless of attendance

Example. A meeting runs for 60 minutes with completion set to 80%. A student must attend at least 48 minutes for the topic to be marked complete.

Attendance is consolidated by email address, so a student who joins from a phone and then a laptop is counted once and their time is combined.

4. Managing meetings

View and manage all meetings

Go to LiveClass Sync in the admin menu to see all upcoming and past meetings, with meeting name, ID, date and time, duration and status. From here you can edit the linked topic or view participants for any past session.

The LiveClass Sync meetings screen on the Upcoming Meetings tab, listing eight scheduled sessions with their date and time, duration, meeting ID and a Start Meeting button on each row.
Upcoming Meetings — every scheduled session across your courses, each with a Start Meeting action. Meeting IDs are hidden in this example.
The Past Meetings tab of the LiveClass Sync meetings screen, showing completed sessions with their date and time, duration and meeting ID.
Past Meetings — completed sessions. Once attendance has been received from Zoom, each row also offers a link to view its participants.

Disconnect Zoom

Go to LiveClass Sync → Settings → Disconnect Zoom Account. This removes the stored tokens. You will need to reconnect before creating new meetings.

5. Troubleshooting

The licence will not activate

Recheck the licence key for stray spaces, and confirm the domain you are activating on matches the one registered to the licence.

Zoom says the redirect URL does not match

The redirect URL in your Zoom app must match the one shown in LiveClass Sync → Settings exactly, including https:// and any trailing slash.

Zoom returns an error about missing scopes

Confirm all six scopes are present on the app, then disconnect and reconnect the account. Existing tokens do not gain new scopes when the app is edited — this is the single most common cause of scope errors.

Attendance is not being recorded

Meetings are created but nobody is marked complete. Check that event subscriptions are switched on in the Zoom app, that the webhook URL matches the one in the plugin settings, and that the Secret Token has been entered in WordPress.

Students cannot join in the browser

Browser join needs a separate Meeting SDK app. Verify the SDK Client ID, Secret and redirect URL. If you do not need in-page joining, students can join in the Zoom app with no extra setup.

Still stuck?

Send us the symptom and what you have already checked, and we will help.

Email support