Mark Complete
Mark Complete
Renders a LearnDash mark complete button for the current lesson, topic, or quiz. The button hides automatically once the item has been marked complete.
Usage
Standard lesson or topic template — Place this module at the bottom of a lesson or topic Themer template, after the content. Learners click it to confirm they've finished and trigger LearnDash's progression logic. Pair with the Content module above it.
Controlling redirect after completion — Use the Redirect setting to control where learners go after clicking. Parent course is useful when you want learners returned to the course overview after finishing the last topic in a lesson. Self keeps them on the current page — useful for quizzes where LearnDash needs to handle the submission response on the same page.
Video or timer progression — When video progression or a forced timer is active, the button locks until the condition is met. Set Button state when disabled to Disable (greyed out) so learners can see the button is coming but can't click it yet. Enable Show timer to display the countdown alongside the button.
How it works
| Situation | Button behaviour |
|---|---|
| Item not yet completed, no progression requirement | Button shows — clicking marks the item complete and triggers the configured redirect |
| Item already completed | Button hides automatically |
| Video progression active and video not finished | Button locks; appearance controlled by Button state when disabled |
| Forced timer active and timer not expired | Button locks; appearance controlled by Button state when disabled |
| Content type doesn't support marking complete | Button does not render |
Settings
General
| Setting | Description |
|---|---|
| Text | Override the button label. Leave empty to use the default "Mark Complete" label. |
| Redirect | Where to send the learner after marking complete: Next (default), Parent course, Parent lesson, Parent topic, or Self. |
| Style | (LearnDash 3.0+ only) Custom uses Beaver Builder styling; LearnDash applies LearnDash's own button appearance and hides the styling controls below. |
| Icon | Icon shown on the button. (Custom style only) |
| Icon Position | Place the icon Before or After the button label. (Custom style only) |
| Icon Visibility | Show the icon Always Visible or Fade In On Hover. (Custom style only) |
| Button state when disabled | How the button appears while locked by video progression or a timer: Regular, Disable (greyed out), or Invisible. (Custom style only) |
| Show timer | Display a countdown timer alongside the button when a forced timer is active. |
| Mark Complete Priority | (LearnDash 2.x only) When both video progression and forced timer are active, choose which takes priority: Video Progression or Forced Timer Countdown. This setting is removed in LearnDash 3.0+. |
Style
| Setting | Description |
|---|---|
| Typography | Font family, size, weight, and line height for the button label. |
| Background Color | Button fill color; a separate hover color is also available. |
| Text Color | Button label color; a separate hover color is also available. |
| Style | Button shape: Flat, Gradient, or Transparent (Transparent reveals border and opacity controls). |
| Width | Auto (with alignment), Full Width, or Custom (fixed pixel width). |
| Padding | Internal padding in px. |
| Round Corners | Border radius in px. |
| Transition | Enable or disable a color transition on hover. |