Automated Weekly Emails
Once a week, on a day and time you choose, Course Cadence sends each enrolled student the guidance for the week their course has reached. Trainers (course instructors) get their own email with the trainer guidance. You don’t need to do anything each week. You set up the schedule once, and the plugin works out who should get which week and sends the emails.
This page is for site administrators and course administrators who set up and monitor delivery. There are also short sections for students and trainers on what arrives in their inbox. Catch-up emails for students who join late are covered in Catch-up emails. Student opt-outs are covered in Email preferences.
Who can do what. Only users who can manage the site (WordPress administrators) can open Course Cadence → Settings and Course Cadence → Email Delivery, trigger a dispatch, send test emails or receive the admin digest. Students and trainers only receive the emails.
When emails are sent
The schedule
Set the schedule at Course Cadence → Settings → Schedule (the section headed Email Schedule Settings):
| Setting | What it does | Default | Allowed values |
|---|---|---|---|
| Day of Week | The day the weekly dispatch runs. | Monday | Monday to Sunday |
| Time of Day | The time the dispatch runs (24-hour clock). | 09:00 | Any valid time. A blank or invalid value falls back to 09:00. |
The time is in your site timezone, which is set at Settings → General → Timezone in WordPress. It isn’t your server’s clock. If your site is set to Sydney and you choose Monday 07:00, the dispatch runs at 07:00 Sydney time, including after daylight-saving changes. If your timezone setting is wrong, emails go out at the wrong local time, so check it first.
When you click Save Settings on the Schedule tab, the plugin moves the weekly event straight away. The pre-dispatch preview email moves with it (see Admin digest and cadence alerts).
To check when the next run will happen, go to Course Cadence → Email Delivery → Send & Status → Weekly Dispatch Status. Next scheduled run shows the date and time with the timezone name, for example Mon 12 Oct 2026 at 07:00 (Australia/Sydney).
How WordPress runs the schedule
The weekly send runs through WordPress’s built-in scheduler (WP-Cron). WP-Cron only runs when someone visits the site, so on a quiet site a scheduled run can start late. After every run, the plugin moves the next run back to your configured day and time, so a late run doesn’t push future weeks later. If a run is more than a day late, the daily watchdog can email you (see Admin digest and cadence alerts). On low-traffic sites, ask your host to set up a real server cron that calls wp-cron.php. This removes the dependence on visitors.
What happens at each dispatch
For every course from your LMS (or every native class), the plugin:
- Finds the active timeline. A timeline is active when the dispatch time falls between its start and end dates. Courses with no active timeline are skipped. This is normal for finished courses and courses that haven’t started yet.
- Checks for holds. A course is held back (nothing is sent for it this week) when:
- its timeline’s email dispatch is paused, or
- the dispatch date falls inside one of the timeline’s break periods, from the first to the last day inclusive.
- Works out the week. For a Fixed period timeline, everyone is on the same week. That week is counted from the timeline’s start date in whole days, and break days don’t count, so a one-week break doesn’t use up a week of content. If the timeline hasn’t reached week 1, the course is reported as not started. For a Rolling timeline, each student’s week is counted from their own enrolment date, so two students in the same course can be on different weeks.
- Collects the prompts for that week. If no prompts are written for that week, the course is reported as having no content. For a Rolling timeline, it reports no content only if the whole timeline has no prompts.
- Picks the recipients.
- Students: users with a current enrolment in the course. Tutor LMS cancelled enrolments and LifterLMS non-enrolled statuses are excluded. Course instructors and instructor accounts are excluded even if they are enrolled. Students who have opted out of this course on the preferences page are skipped.
- Trainers: the course’s instructors. Trainers always receive their email. The opt-out page only affects student emails.
- Filters by audience. Students get prompts with the audience Student or Both. Trainers get Trainer or Both. Trainer-only prompts never reach a student.
- Skips anything already delivered. Delivery is tracked per prompt. If a student already has a prompt (from an earlier run, a catch-up or a manual trigger), it isn’t sent again. If you add a prompt to a week after that week was sent, the next dispatch for that week sends only the new prompt.
- Sends the emails and records each prompt as sent, or as failed so it can be retried.
Students are sent first, then trainers. Each email goes out a moment after the previous one so your mail server isn’t flooded.
Batch limit: 100 emails per run. A single dispatch run sends at most 100 emails (students and trainers combined). A developer can raise this limit with a filter. If your cohort is larger, the rest are not lost: they appear under Pending catch-ups. You can also click Trigger weekly dispatch now (below) to send the remainder. Anyone who already received the week is skipped automatically.
Consolidated or per-course emails
This setting is at Course Cadence → Settings → Emails → Delivery → Email Consolidation:
| Option | What recipients get |
|---|---|
| Consolidated (recommended) (default) | One email per week covering every course that has guidance for that person this week. A student with guidance in only one course gets the normal single-course email. |
| Individual per course | A separate email for each course. |
This setting also controls trainer emails and whether catch-up emails are combined. Changes apply from the next send.
What’s in each email
Single-course email (Individual mode, or Consolidated mode when only one course has guidance for that person):
- Subject: your Email Subject setting from Settings → Emails → Content & template, with placeholders such as
{course_name}filled in. The field is pre-filled with Your Weekly Guidance for {course_name}. That text takes effect once you save the Emails tab. Until the setting has been saved, or if it is blank, the subject is Week 4 guidance for Anatomy & Physiology (week number and course name). - Heading and greeting: Week 4: Anatomy & Physiology and Hi Sam,. The greeting uses the student’s first name, or their display name if no first name is set.
- Intro line: the Single-Course Intro Line. The default is Here is your guidance for this week.
- The week’s prompts, separated by dividers, with placeholders filled in. A Related Lessons list appears under any prompt that has published lessons linked to it.
- View this guidance online →: a link to the correct week on your student guidance page. It only appears if Student Guidance Page URL is set (see below).
- Manage your email preferences: a link to the student’s opt-out page. It only appears if the Email Preferences Link box is ticked and an Email Preferences Page URL is saved.
- Footer: your Email Footer text. If the footer is blank, the email ends with This email was sent automatically from {your site name}.
Email Template setting. When the Email Template field has content, it replaces the built-in heading, greeting and intro line for single-course emails. The {prompts} placeholder in the template is replaced by that week’s guidance. A template with no {prompts} sends no guidance. The template field shows a starter layout (Hello {first_name}, Here is your guidance for Week {week_number} of {course_name}: …), and that layout takes effect the first time you save the Emails tab. Once a template is saved, the Single-Course Intro Line isn’t used. To go back to the built-in heading, greeting and intro, clear the template and save. The template doesn’t apply to multi-course emails, catch-up emails or admin emails.
Multi-course (consolidated) email:
- Subject and heading: Your Weekly Guidance (3 courses). The Email Subject setting isn’t used for multi-course emails.
- Intro line: the Multi-Course Intro Line. The default is Here is your guidance for this week across your enrolled courses.
- One section per course, headed Course name — Week N. Each prompt is shown with its own subject as a heading, followed by the body and any related lessons.
- The Manage your email preferences link and the footer, as above. There is no View this guidance online link in the multi-course email.
Things every guidance email has in common:
- Look and feel follow your LMS: Tutor LMS email styling when Tutor LMS is active, LifterLMS email styling when LifterLMS is active, otherwise a built-in layout that uses your site icon as the logo.
- Plain-text version. Weekly emails (single and multi-course) and admin emails include a plain-text copy alongside the HTML. Links appear as text (address).
- Attachments are not included in emails. Files attached to a prompt only appear on the guidance pages. If students need a document from the email, put a link in the prompt body or link a lesson.
Placeholders you can use in prompt subjects and bodies, the Email Subject and the Email Template: {student_name}, {first_name}, {last_name}, {course_name}, {week_number}, {current_date}, and {instructor_name} (available with Tutor LMS and LifterLMS only). See Prompt management.
Links in the email
At Settings → Emails → Student preferences & links:
| Setting | What it does | Default |
|---|---|---|
| Student Guidance Page URL | The page containing [dcc_student]. Adds the View this guidance online link to single-course emails. If the field is empty and a published page contains the shortcode, the plugin fills it in for you (“Auto-detected from the page …”). Click Save Settings to confirm it. |
Empty |
| Email Preferences Link | Include a “Manage email preferences” link in the footer of guidance emails. | Ticked |
| Email Preferences Page URL | The page containing [dcc_email_prefs]. The preferences link only appears when this is saved. It is auto-detected the same way. |
Empty |
What students and trainers receive
- Students receive one email on dispatch day for the week they’ve reached (or one per course in Individual mode). It contains Student and Both prompts only. Students can’t change the day or time, but they can opt out per course (see Email preferences). Guidance is always available on the guidance page as well.
- Trainers receive Trainer and Both prompts for each course they teach. On a Rolling timeline, a trainer’s week is counted from the timeline’s start date, not from any one student’s enrolment. Trainers can see what students receive on the trainer guidance page (see Trainer edit workflow and the trainer guide).
Sending this week’s dispatch manually
You can run the weekly dispatch on demand. For example, you might do this after fixing a missing prompt, after a missed run, or to send students who were over the 100-email limit.
- Go to Course Cadence → Email Delivery and open the Send & Status tab.
- Under Weekly Dispatch Status, check Dispatch cooldown:
- Clear — next cron dispatch will proceed: no dispatch has run in the last 23 hours.
- Active — set 2 hours ago, expires in ~21 hours: a dispatch ran recently.
- Click Trigger weekly dispatch now.
- A confirmation appears: “Send this week’s guidance emails to all enrolled students now? This runs the weekly dispatch immediately, ahead of the schedule.” Click Yes, send now, or Cancel.
- The result appears under the button. For example, “12 emails sent. Covering 3 course-weeks. 1 failed. See the Analytics tab for the full breakdown.” If nothing was due, it reads “Dispatch ran — no emails were due right now. See the Analytics tab for delivery history.” The Sent, Delivered and Failed cards update in place.
What a manual run does:
- It runs exactly the same process as the scheduled send. It uses the week each timeline is in at the moment you click, and it applies the same holds, audiences and opt-outs.
- It never re-sends a prompt someone has already received, so it’s safe to click after a partial run.
- It clears the cooldown before it runs. Afterwards, it starts a new 23-hour cooldown.
- If the admin digest is switched on, the digest is sent after a manual run too.
Watch the cooldown. If you trigger a dispatch less than 23 hours before the scheduled run, the scheduled run will start, find the cooldown active and stop without sending anything. Usually nothing is lost, because your manual run already sent that week. If the watchdog is on, it may report that run as never recorded completion. Its email explains that this can be caused by a recent manual trigger.
Previewing an email
This version has no in-browser preview of the finished email. There are three ways to see what will go out before it reaches students:
1. Send a test email (Email Delivery → Test Emails). This uses the same layout as the real send.
- Test Single Course has fields for Select Course, Select Student, Test Date and Email Type (Student Guidance or Trainer Guidance). Click Send Test Email. The plugin works out the week for the date you pick, so you can test any future week. The subject starts with
[TEST]. - Test All Courses Email has Select Student and Test Date. Click Send Multi-Course Test Email to see the consolidated layout.
- Test emails go to the selected student’s real email address. To see the email yourself, use a test student account whose email you can read. Test sends aren’t recorded as deliveries, so they don’t stop the real send. See Admin dashboards for the full Test Emails tab.
2. Check the content for a week (Overview → This week). Course Cadence → Overview → This week lists every prompt scheduled across all courses for the selected week, with audience and status (Active or Paused). Click View to read a prompt in Prompt details, then Edit in Timelines & Prompts to fix it.
3. The pre-dispatch cadence preview email. If the admin digest is on, the plugin emails you a few days before each dispatch with a list of what will send, what has no content and what is held. See below.
Automatic retries of failed emails
If your mail system rejects a send (for example, during an outage at your mail provider), the plugin records each prompt in that email as failed instead of sent. It then tries again automatically:
- When: a background task runs every hour. The first retry happens at the next hourly run after the failure.
- How many: each failed email gets up to 3 retries, on top of the original attempt. Each failed retry adds one to the count. After the third failed retry the plugin gives up, and the email stays Failed.
- How much per run: each hourly run picks up to 25 failed delivery records, oldest first. Records are kept per prompt. Records for the same student, course and week are re-sent together as one email, so a large backlog is worked through over several hours.
- What is re-sent: the same prompts, rebuilt as a single-course email for that course and week, even if the original was a consolidated email. Prompts are looked up by identity, so the retry still sends the right content if the week was rearranged in the meantime.
- When a retry gives up early: the attempt is counted as failed without sending if the student’s account no longer exists, the course can’t be found, the course no longer has an active timeline (for example, the term has ended), or the prompts have been deleted.
Watch failures at Email Delivery. The Analytics tab label shows a red count badge whenever there are failed records. The Failed card appears on both the Send & Status and Analytics tabs.
After the last retry. An email that has used up its retries is treated as handled. It won’t appear under Pending catch-ups, and a manual catch-up won’t re-send it. Fix the underlying mail problem first, then contact the affected students directly or point them to the guidance page, where every week is always available.
Retry emails don’t include the plain-text copy that weekly emails have.
Admin digest and cadence alerts
You can choose to have one address receive three kinds of “how is the cadence going” email. All three share one switch and one recipient, set at Course Cadence → Settings → Emails → Admin digest & alerts:
| Setting | What it does | Default | Allowed values |
|---|---|---|---|
| Send Admin Trainer Digest | Send the weekly cadence digest and alerts to the admin email. This turns on the digest, the preview and the watchdog email. | Off | Ticked / unticked |
| Digest Recipient Email | Where the digest and alerts go. Leave it blank to use the site admin email (shown under the field). If the address is invalid, nothing is sent. | Blank (site admin email) | One email address |
| Preview Days Before Dispatch | How many days before each weekly dispatch the preview email is sent, at the dispatch time. 0 turns the preview off. The digest and the late-dispatch warning are unaffected. | 3 | 0–6. Values outside this range are clamped. |
These are admin-only emails. Students and trainers never receive them.
1. The weekly digest (after every dispatch)
The digest is sent straight after each weekly dispatch, whether scheduled or triggered manually. It goes out every week the setting is on, including weeks where nothing was sent.
- Subject: Weekly Trainer Guidance Digest (4 courses) — 1 held, 2 behind. In a week where nothing was sent, the subject is Weekly cadence: nothing sent this week — 5 held, 0 behind.
- This week at a glance: one line, for example This week’s dispatch sent 86 guidance emails across 4 courses. If any failed, it says …and 3 failed (queued for retry)…. If everything was held, it says …sent nothing — every active course was held back. The reasons are listed below. If no course had an active timeline, it says …sent nothing — no course has an active timeline this week, so nothing was due.
- Held back, by reason: separate lists for Held for a scheduled break (with the break name), No content authored for their week, Timeline not started yet and Email dispatch paused. Courses with no active timeline are not counted as held.
- Students behind on guidance: how many students are missing guidance a dispatch should already have sent them, per course and week, with a link to Review and send catch-ups on the Overview. If nobody is behind, it says Nobody is behind — every enrolled student has received everything a dispatch has sent.
- Trainer guidance: the trainer-audience prompts each course sent this week, so administration knows what trainers are expected to cover. This is for awareness only.
2. The pre-dispatch preview
The preview is sent Preview Days Before Dispatch days before each dispatch, at the dispatch time. For example, with the default of 3 and a Monday 07:00 dispatch, it arrives on Friday at 07:00. It shows what the dispatch will do while you still have time to fix things:
- Subject: Cadence preview for Mon 12 Oct: 3 sending, 1 without content, 0 on break, 2 behind
- Sections: Will send (course, week and number of prompts), No content authored for their week — nothing will be sent, Held for a scheduled break, Not started yet, Email dispatch paused, and the students behind block.
Set the value to 0 to stop previews and keep the digest. Changing the dispatch day or time moves the preview automatically.
3. The late-dispatch watchdog
A check runs once a day. It looks for three problems:
- The dispatch is overdue. The scheduled run is more than a day late, which usually means WP-Cron hasn’t been triggered.
- The dispatch never completed. The most recent occurrence started but never recorded completion. It may have stopped part-way, or it was skipped by the 23-hour cooldown after a manual trigger.
- The weekly event is missing. It might have been lost after a plugin file replacement or a cron clean-up. The watchdog re-creates the missing event on every site, even with the digest switched off.
If the digest is on, the recipient gets one email per missed occurrence, titled Course Cadence: the weekly guidance dispatch is late. The email explains what happened, gives the next scheduled run and points to Tools → Site Health. Running Trigger weekly dispatch now is always safe after a watchdog alert, because already-delivered guidance is never re-sent.
Data and privacy
- Each sent, failed or dismissed prompt is logged with the course, week, student and time. This log is how the plugin prevents duplicates and works out who is behind. It is kept for the Log Retention Period at Settings → System (default 365 days) and then removed automatically. Students can see this explained on the preferences page.
- The plugin doesn’t keep copies of email bodies. Use your SMTP plugin’s log if you need message-level records.
- Deactivating the plugin stops all scheduled sends. Uninstalling always removes the scheduled tasks. The delivery log and settings are only deleted if Remove All Data on Uninstall is turned on. See Settings reference.
Troubleshooting
| Problem | Likely cause and fix |
|---|---|
| Nobody received this week’s email | Open Email Delivery → Send & Status. If Next scheduled run says Not scheduled — reactivate the plugin to re-register the cron event., deactivate and reactivate the plugin (the daily watchdog also repairs this). If the run is in the past, your site may not be getting traffic, so set up a server cron. Then click Trigger weekly dispatch now. |
| One course didn’t send | Turn on the admin digest and read its held back lists. The usual causes are a break period covering dispatch day, No content authored for their week, a timeline that hasn’t started, or paused dispatch. |
| The dispatch ran but sent nothing (Dispatch ran — no emails were due right now) | Everyone has already received the current week, or there are no prompts for the current week. Check Overview → This week. |
| Emails arrive at the wrong hour | Check Settings → General → Timezone. The dispatch time uses the site timezone. |
| The Failed count keeps growing | Your mail setup is rejecting messages. Check your SMTP plugin’s log and credentials. The hourly retries will deliver the backlog once mail works, as long as they haven’t used up all 3 retries. |
| The subject or greeting isn’t what you set | A saved Email Template replaces the built-in heading, greeting and intro line in single-course emails. Multi-course emails always use Your Weekly Guidance (N courses). |
| A student says the link or attachment is missing | View this guidance online needs Student Guidance Page URL and only appears in single-course emails. Prompt attachments are only shown on the guidance pages, not in emails. |
More fixes: Troubleshooting.
Example: an RTO running three subjects in Term 3
Harbourside College runs a Certificate IV cohort of 140 students across three subjects. All three use Fixed period timelines that start Monday 13 July, with a mid-term break from 21 to 27 September.
- The site timezone is Sydney. Under Settings → Schedule, the admin sets Monday at 07:00.
- Under Settings → Emails, they keep Consolidated (recommended), set the Student Guidance and Email Preferences page URLs (both auto-detected), tick Send Admin Trainer Digest, enter
studentservices@harbourside.exampleand keep Preview Days Before Dispatch at 3. - On Friday at 07:00 the preview arrives: 3 sending, 1 without content. Week 6 of Client Assessment is empty. The coordinator adds the prompt that afternoon.
- On Monday at 07:00 the dispatch runs. Each student gets one email headed Your Weekly Guidance (3 courses), and each trainer gets the trainer notes for their subjects. Because the cohort is over 100, the run stops at 100 emails. The digest reports the sent count and shows the remaining students as behind. The admin clicks Trigger weekly dispatch now, and the rest go out within a minute. Nobody gets a duplicate.
- During the break week the dispatch holds all three subjects. The digest says every active course was held back and lists each subject under Held for a scheduled break (Mid-term break). On Monday 28 September week 11 goes out as normal, because break days don’t count towards the week number.
Related
- Catch-up emails: late enrolments and pending catch-ups
- Email preferences: student opt-outs
- Admin dashboards: Email Delivery and Overview
- Timeline management: break periods and timeline types
- Settings reference
- Role guides: administrator, student, trainer