Background Jobs
Learnomy overviewFree + ProGet Learnomy →
Background Jobs
Section titled “Background Jobs”Learnomy does its slow and scheduled work in the background: sending email, delivering webhooks, releasing drip lessons, checking subscriptions. This page lists every job, how often it runs and what it does, so you can tell what should be happening on a healthy site and find the one that is not.
How jobs run
Section titled “How jobs run”Jobs run through Action Scheduler, which Learnomy bundles (WooCommerce and other plugins ship the same library and share it), with WP-Cron as the fallback. Either way they depend on your site’s cron firing. On a low-traffic site, or one with DISABLE_WP_CRON set, add a real server cron that calls wp-cron.php every minute or two; without it, emails, drip releases and webhooks arrive late.
Two kinds of job appear below:
- Recurring jobs run on a schedule whether or not anything happened.
- When needed jobs are queued by an event (a purchase, a lesson completion, a webhook to send) and run once.
To see what is queued, open Tools > Scheduled Actions and filter by the hook name. wp learnomy selfcheck run reports whether the recurring jobs are in place.
Learnomy (Free)
Section titled “Learnomy (Free)”| Hook | Runs | What it does |
|---|---|---|
learnomy_expire_enrollments |
Hourly | Ends enrollments whose access period has run out. |
learnomy_check_memberships |
Hourly | Checks membership subscriptions for expiry and status changes. |
learnomy_send_expiry_reminders |
Daily | Emails members whose access is about to end. |
learnomy_engagement_splits |
Monthly | Works out the monthly engagement-based revenue share for instructors. |
learnomy_recompute_stats |
Daily | Refreshes the stored counts behind the dashboards. |
learnomy_cleanup_attempts |
Daily | Closes quiz attempts that were started and abandoned. |
learnomy_cleanup_tokens |
Daily | Deletes expired sign-in and verification tokens. |
learnomy_prune_audit_log |
Weekly | Removes audit log entries older than the retention you set. |
learnomy_prune_email_log |
Weekly | Removes old Email Log entries. |
learnomy_cert_expiry_check |
Daily | Marks certificates that have reached their expiry date. |
learnomy_reconcile_payments |
Hourly | Looks up pending payments at the gateway in case a webhook was missed. |
learnomy_membership_daily_sweep |
Daily | Daily tidy of membership state against the payment provider. |
learnomy_membership_trial_reminder |
Hourly | Sends the trial-ending reminder. |
learnomy_membership_end_trials |
Hourly | Moves finished trials to paid or ended. |
learnomy_unlock_drip_lessons |
Hourly | Releases lessons whose drip date has arrived. |
learnomy_send_notification_async |
When needed | Sends one notification (email and in-app). |
learnomy_deliver_push |
When needed | Delivers one push notification to one device. |
learnomy_deliver_webhook |
When needed | Delivers one outgoing webhook. |
learnomy_recompute_course_progress |
When needed | Recalculates progress after a lesson is added or removed. |
learnomy_erase_authored_content |
When needed | Works through a privacy erasure request in batches. |
learnomy_migrate_content_batch |
When needed | Converts stored lesson content in batches. |
learnomy_migration_step |
When needed | One step of an import from another LMS. |
learnomy_protect_lesson_attachments |
When needed | Moves existing lesson attachments behind the permission check. |
Learnomy Pro
Section titled “Learnomy Pro”Each job belongs to an extension and exists only while that extension is on.
| Hook | Extension | Runs | What it does |
|---|---|---|---|
learnomy_pro_cohort_status_tick |
Cohorts | Daily | Moves cohorts between upcoming, in progress and completed by their dates. |
learnomy_pro_space_subscription_sweep |
Spaces | Daily | Keeps Learning Space subscriptions in step with the payment provider. |
learnomy_pro_credly_sync |
Certificates Pro | Daily | Syncs issued badges with Credly. |
learnomy_pro_webhook_housekeeping |
Webhooks Pro | Daily | Prunes the webhook delivery log. |
learnomy_pro_process_pending_payouts |
Stripe Connect | Daily | Starts the instructor payout run. |
learnomy_pro_recompute_analytics |
Analytics | Daily | Recalculates the analytics dashboard. |
learnomy_pro_deliver_webhook |
Webhooks Pro | When needed | One webhook delivery attempt. |
learnomy_pro_retry_webhooks |
Webhooks Pro | When needed | Re-queues webhook deliveries due a retry. |
learnomy_pro_pay_instructor |
Stripe Connect | When needed | Pays one instructor. |
learnomy_pro_process_payout |
Stripe Connect | When needed | Handles one queued payout. |
learnomy_pro_spaces_send_batch |
Spaces | When needed | Sends one batch of a Learning Space announcement. |
learnomy_pro_space_group_enroll_batch |
Spaces | When needed | Enrolls one batch of a space group into its courses. |
learnomy_pro_space_group_unenroll_batch |
Spaces | When needed | Removes one batch of a space group from its courses. |
learnomy_pro_space_status_batch |
Spaces | When needed | Applies a space status change to one batch of members. |
learnomy_pro_space_course_scope_unenroll_batch |
Spaces | When needed | Removes access after a course leaves a space. |
learnomy_pro_space_deleted_revoke_batch |
Spaces | When needed | Revokes access after a space is deleted. |
learnomy_pro_wpf_apply_tags |
Wp Fusion | When needed | Applies CRM tags through WP Fusion. |
learnomy_pro_wpf_remove_tags |
Wp Fusion | When needed | Removes CRM tags through WP Fusion. |
learnomy_pro_auto_resume_subscription |
Membership Pro | When needed | Resumes a paused subscription on its resume date. |
learnomy_pro_dunning_retry |
Membership Pro | When needed | Retries a failed renewal charge. |
learnomy_pro_plan_change_scheduled |
Membership Pro | When needed | Applies a plan change scheduled for the end of a period. |
learnomy_pro_content_drip_schedule_unlocks |
Content Drip | When needed | Sends lesson-unlocked notices. |
learnomy_xapi_send |
Xapi | When needed | Sends one xAPI statement to the learning record store. |
learnomy_pro_membership_housekeeping |
Membership Pro | Daily | Daily membership upkeep (pauses, scheduled changes). |
learnomy_pro_sweep_untouched_path_drafts |
Learning Paths | Daily | Deletes learning path drafts that were created and never edited. |
When something is not happening
Section titled “When something is not happening”- Emails or webhooks are late. Cron is not firing. Check for a server cron, then look in Scheduled Actions for a growing list of pending
learnomy_send_notification_asyncorlearnomy_deliver_webhookactions. - A webhook endpoint stopped receiving events. It may have been paused after repeated failures. See Outgoing Webhooks.
- Drip lessons did not unlock on time.
learnomy_unlock_drip_lessonsruns hourly;wp learnomy dripruns it at once. - A payment is stuck on Pending.
learnomy_reconcile_paymentschecks the gateway hourly; a backlog usually means the gateway webhook is not configured. See Transactions.

