Hooks Reference (Pro)
Learnomy overviewFree + ProGet Learnomy →
Every action and filter Learnomy Pro fires that Free does not, grouped by extension. Hooks Pro shares with Free are on the Hooks Reference.
173 hooks: 94 filters and 79 actions. This page is generated from the code by bin/gen-hooks-reference.php; do not edit it by hand.
Arguments are shown as the call passes them, after the hook name. For a filter the first argument is the value you return. “Fired in” is the first place the hook is called; a number in brackets means it is called from that many places.
Advanced Quizzes
Section titled “Advanced Quizzes”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_aq_conditions_runtime_ready |
filter | false |
Filters whether conditional question rules are honoured at attempt time, which gates saving them over REST. | includes/extensions/advanced-quizzes/class-extension.php:1296 |
Ai Authoring
Section titled “Ai Authoring”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_ai_generate_text |
filter | null, $prompt, $action |
Short-circuit AI text generation. Return a non-null string to bypass. | includes/extensions/ai-authoring/class-ai-author-service.php:91 |
learnomy_pro_ai_overage |
action | $user_id, $kind, $used, $limit |
Fires when an instructor generates past an AI limit under ‘notify’. | includes/extensions/ai-authoring/class-ai-quota-gate.php:160 |
learnomy_pro_ai_request_timeout |
filter | 60.0 |
Filter the HTTP timeout (seconds) for Learnomy AI generation requests. | includes/extensions/ai-authoring/class-ai-author-service.php:62 |
Analytics
Section titled “Analytics”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_analytics_ai_slot |
action | $period |
Render seam for an AI summary of this report. | includes/extensions/analytics/views/dashboard.php:102 |
learnomy_pro_analytics_recompute_cap |
filter | self::RECOMPUTE_CAP |
Filters the cap on entities recomputed in one daily analytics run. | includes/extensions/analytics/class-analytics-service.php:245 |
learnomy_pro_report_can_read |
filter | $ids, $user_id |
Grant read access to courses the viewer does not teach. | includes/extensions/analytics/class-report-query.php:175 |
Assignments
Section titled “Assignments”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_assignment_grading_response_controls |
action | $sub, $grading |
Fires inside the assignment grading form so an extension can render extra grading controls, such as rubric scoring. | includes/extensions/assignments/views/admin-assignments.php:309 |
learnomy_pro_assignment_created |
action | $id, $insert |
Fires after an assignment definition is created. | includes/extensions/assignments/class-assignment-service.php:235 |
learnomy_pro_assignment_deleted |
action | $id |
Fires after an assignment and its submissions are deleted. | includes/extensions/assignments/class-assignment-service.php:312 |
learnomy_pro_assignment_graded |
action | $submission_id, $score, $submission |
Fires after a submission is graded. | includes/extensions/assignments/class-assignment-service.php:411 |
learnomy_pro_assignment_resubmit_requested |
action | $submission_id, $feedback |
Fires after an instructor asks a learner to resubmit. | includes/extensions/assignments/class-assignment-service.php:437 |
learnomy_pro_assignment_submitted |
action | $id, $assignment_id, $user_id |
Fires after a learner submits an assignment. | includes/extensions/assignments/class-assignment-service.php:358 |
learnomy_pro_assignment_updated |
action | $id, $prepared |
Fires after an assignment definition is updated. | includes/extensions/assignments/class-assignment-service.php:285 |
Certificates Pro
Section titled “Certificates Pro”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_credly_revoke_async |
filter | true |
Filters whether revoking a Credly badge is queued in the background. | includes/extensions/certificates-pro/class-extension.php:476 |
learnomy_pro_credly_sync_async |
filter | true |
Filters whether syncing Credly badges is queued in the background. | includes/extensions/certificates-pro/class-extension.php:1045 |
learnomy_pro_open_badge_issuer |
filter | $issuer |
Filter the public Open Badges issuer profile. | includes/extensions/certificates-pro/class-open-badges.php:166 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_cli_commands |
action | Fires after Pro CLI commands are registered. Other add-ons can hook. | includes/cli/class-cli.php:205 |
|
learnomy_pro_demo_modules |
filter | $default |
Filters the demo-data modules the playground CLI can seed and wipe. | includes/cli/class-playground.php:169 |
Cohorts
Section titled “Cohorts”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_admin_cohort_detail_panels |
action | $cohort |
Fires below the cohort tab panels on the cohort admin screen. | includes/extensions/cohorts/class-extension.php:1224 |
learnomy_cohorts_slug |
filter | 'cohorts' |
Filters the URL slug for the public cohort pages. | includes/extensions/cohorts/class-extension.php:1692 |
learnomy_pro_cohort_at_risk_cadence_days |
filter | self::AT_RISK_CADENCE_DAYS, $cohort |
Filters how often, in days, at-risk nudges repeat for a cohort. | includes/extensions/cohorts/class-cohort-notifier.php:192 |
learnomy_pro_cohort_at_risk_grace |
filter | self::AT_RISK_PROGRESS_GRACE, $cohort |
How far a cohort member’s progress may trail the cohort’s pace before they count as at risk. | includes/extensions/cohorts/class-cohort-service.php:96 |
learnomy_pro_cohort_at_risk_inactive_days |
filter | self::AT_RISK_INACTIVE_DAYS, $cohort |
Filters the days of inactivity after which a cohort member counts as at risk. | includes/extensions/cohorts/class-cohort-service.php:103 |
learnomy_pro_cohort_authoritative_sources |
filter | array( 'purchase', 'manual', 'webhook', 'membership', 'space' ), $course_id, $user_id |
includes/extensions/cohorts/class-extension.php:1435 |
|
learnomy_pro_cohort_autoplace_on_purchase |
filter | true, $course_id, $user_id, $source |
Filters whether a user enrolling from an authoritative source is auto-placed into the course’s sole open cohort. | includes/extensions/cohorts/class-extension.php:1451 |
learnomy_pro_cohort_created |
action | $id, $row |
Fires after a cohort definition is created. | includes/extensions/cohorts/class-cohort-service.php:343 |
learnomy_pro_cohort_deleted |
action | $id |
Fires after a cohort is deleted. | includes/extensions/cohorts/class-cohort-service.php:516 |
learnomy_pro_cohort_email_body |
filter | $message, $type, $cohort |
Filters the body message of a cohort lifecycle notification. | includes/extensions/cohorts/class-cohort-notifier.php:270 (2) |
learnomy_pro_cohort_email_enabled |
filter | true, $type, $cohort |
Filters whether cohort emails of a given type may be sent. | includes/extensions/cohorts/class-cohort-notifier.php:349 |
learnomy_pro_cohort_email_subject |
filter | $title, $type, $cohort |
Filters the subject of a cohort lifecycle notification. | includes/extensions/cohorts/class-cohort-notifier.php:262 (2) |
learnomy_pro_cohort_member_actions |
action | $cohort, $course |
Fires inside the enrolled-member card’s action row on a. | includes/extensions/cohorts/views/single-cohort.php:401 |
learnomy_pro_cohort_member_added |
action | $cohort_id, $user_id |
Fires after a member is added to a cohort. | includes/extensions/cohorts/class-cohort-service.php:614 |
learnomy_pro_cohort_member_removed |
action | $cohort_id, $user_id |
Fires after a member is removed from a cohort. | includes/extensions/cohorts/class-cohort-service.php:632 |
learnomy_pro_cohort_progress_max_rows |
filter | self::PROGRESS_MAX_ROWS, $cohort_id |
Filters the maximum number of members enriched with progress in a cohort progress view. | includes/extensions/cohorts/class-cohort-service.php:850 |
learnomy_pro_cohort_reminder_lead_days |
filter | self::LEAD_DAYS, $cohort |
Filters the lead time, in days, for cohort reminder emails. | includes/extensions/cohorts/class-cohort-notifier.php:90 |
learnomy_pro_cohort_updated |
action | $id, $update |
Fires after a cohort is updated. | includes/extensions/cohorts/class-cohort-service.php:458 |
Content Drip
Section titled “Content Drip”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_default_drip_rule |
filter | null, $lesson_id, $course_id |
Allow other code to set a default drip rule when a lesson is created. | includes/extensions/content-drip/class-extension.php:918 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_before_erase_user_spaces |
action | $uid |
A user’s space rows are about to be erased. Billing is stopped. | includes/class-privacy.php:114 |
learnomy_pro_completing_statuses |
filter | array( 'completed', 'passed' ) |
Filters the content-standard statuses that count as completed for Free progress. | includes/class-content-standards-bridge.php:40 |
learnomy_pro_content_standard_completed |
action | $user_id, $lesson_id, $status, $context |
Fires after a content-standard module (SCORM/xAPI/…) completes a Free. | includes/class-content-standards-bridge.php:88 |
learnomy_pro_delete_data_on_uninstall |
filter | $delete_on_uninstall |
Allow integrations (e.g. a CLI force-delete or a reset command) to override. | uninstall.php:42 |
learnomy_pro_edd_item_id |
filter | 1662700 |
Filters the EDD product ID for Learnomy Pro, so staging or dev can override it. | learnomy-pro.php:141 |
Elementor
Section titled “Elementor”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_elementor_enrol_safety_net |
filter | true, $course, $lrn_el_cta |
Whether to append the enrol bar to an Elementor template that offers no. | includes/extensions/elementor/templates/single-course-elementor.php:139 |
Frontend Builder
Section titled “Frontend Builder”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_builder_create_slug |
filter | 'create-course' |
Filters the URL segment for the create-course page under the instructor base. | includes/extensions/frontend-builder/class-extension.php:205 |
learnomy_builder_edit_slug |
filter | 'edit-course' |
Filters the URL segment for the edit-course page under the instructor base. | includes/extensions/frontend-builder/class-extension.php:218 |
learnomy_pro_builder_lesson_content_panel |
action | Render seam for a Pro-registered content-type’s panel inside the. | includes/extensions/frontend-builder/templates/partials/lesson-editor.php:190 |
|
learnomy_pro_course_builder_credly_slot |
action | (int) $course_edit_id |
Slot for Pro extensions to add a course-settings control next. | includes/extensions/frontend-builder/templates/course-editor.php:1493 |
learnomy_pro_course_builder_settings_slot |
action | (int) $course_edit_id |
Course-settings slot for any integration, in the frontend builder. | includes/extensions/frontend-builder/templates/course-editor.php:1514 |
learnomy_pro_lesson_revision_restored |
action | $lesson_id, $revision_id, $user_id |
Fires after a lesson is restored to an earlier revision. | includes/extensions/frontend-builder/rest/class-revisions-controller.php:277 |
learnomy_pro_quiz_advanced_settings |
action | isset( $lrn_advanced_quiz_id ) ? (int) $lrn_advanced_quiz_id : 0 |
Pro extension hook - advanced-quizzes injects its Pool /. | includes/extensions/frontend-builder/templates/partials/quiz-editor.php:807 (2) |
Gradebook
Section titled “Gradebook”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_gradebook_cap |
filter | 'manage_options' |
Filters the capability required to use the Gradebook admin. | includes/extensions/gradebook/class-gradebook-admin.php:51 |
Learning Paths
Section titled “Learning Paths”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_learning_path_completed |
action | $certificate_id, $user_id, $path_id |
Fires when a learning path certificate is issued. | includes/extensions/learning-paths/class-extension.php:1269 |
learnomy_pro_learning_path_enrolled |
action | $enrollment_id, $user_id, $path_id, $source |
Fires when a student enrolls in a learning path. | includes/extensions/learning-paths/class-path-service.php:458 |
learnomy_pro_learning_path_purchased |
action | $txn_id, $user_id, $path_id, (float) ( $path->price ?? 0 ), $gateway, $enrollment_id |
Fires after a paid learning-path enrollment lands. Downstream:. | includes/extensions/learning-paths/class-extension.php:1105 |
learnomy_pro_path_draft_retention_days |
filter | 30 |
Days a never-touched draft path is kept before it is swept. | includes/extensions/learning-paths/class-extension.php:1142 |
learnomy_pro_paths_per_page |
filter | 12 |
Paths shown per catalogue page. | includes/extensions/learning-paths/class-paths-catalog-view-data.php:80 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_lti_link_by_email |
filter | true, $claims, $platform |
Filters whether an LTI launch may link to an existing account by matching email. | includes/extensions/lti/class-launch.php:228 |
learnomy_lti_new_user_role |
filter | 'subscriber', $claims, $platform |
Filters the role given to a user created by an LTI launch. | includes/extensions/lti/class-launch.php:269 |
learnomy_pro_lti_force_keygen_failure |
filter | false |
Filters whether LTI key generation should be treated as failed. | includes/extensions/lti/class-jwks.php:58 |
learnomy_pro_lti_link_refused |
action | (int) $by_email->ID, (string) $platform->issuer, $email_unverified ? 'email_unverified'... |
Fires when an LTI launch matches an existing account by email but refuses to link to it. | includes/extensions/lti/class-launch.php:256 |
Membership Pro
Section titled “Membership Pro”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_allow_pause |
filter | true, $sub |
Filters whether a subscription may be paused. | includes/extensions/membership-pro/class-pause-service.php:243 |
learnomy_pro_gift_issued |
action | $codes, $plan_id, $buyer_id |
Fires after gift codes are generated for a plan. | includes/extensions/membership-pro/class-gift-service.php:114 |
learnomy_pro_gift_redeemed |
action | $code, $user_id, $sub_id |
Fires after a gift code is redeemed. | includes/extensions/membership-pro/class-gift-service.php:269 |
learnomy_pro_membership_space_access |
filter | $access, $user_id, $space_ids |
Let B.8 (Spaces integration) decide whether the user actually. | includes/extensions/membership-pro/class-extension.php:695 |
learnomy_pro_plan_change_failed |
action | (int) $change->subscription_id, (int) $change->to_plan_id, $change_id, 'subscription_mi... |
Fires when a scheduled plan change fails to apply. | includes/extensions/membership-pro/class-plan-change-service.php:449 (3) |
learnomy_pro_plan_change_queued |
action | (int) $sub->id, (int) $sub->plan_id, (int) $new_plan->id, (int) $change_id, $effective_... |
Fires once a plan change has been queued for execution at the. | includes/extensions/membership-pro/class-plan-change-service.php:394 |
learnomy_pro_plan_changed |
action | $sub_id, (int) $sub->plan_id, $new_plan_id, $change_id, $quote |
Fires after an immediate plan change completes. | includes/extensions/membership-pro/class-plan-change-service.php:281 (2) |
learnomy_pro_plan_changed_at_provider |
action | (int) $sub->id, (int) $sub->plan_id, (int) $new_plan->id, $provider_ref, $change_id |
Fires after a scheduled plan change has been applied at the. | includes/extensions/membership-pro/class-plan-change-service.php:575 |
learnomy_pro_proration_provider |
filter | $provider, $sub |
Filters the proration provider used to price and apply a plan change. | includes/extensions/membership-pro/class-proration-service.php:228 |
learnomy_pro_refund_issued |
action | $refund_txn_id, $transaction_id, $refund_amount, $reason |
Fires after a refund is issued for a transaction. | includes/extensions/membership-pro/class-refund-service.php:150 |
learnomy_pro_stripe_charge_refunded |
action | $resource |
Fires when Stripe reports a refunded charge. | includes/extensions/membership-pro/class-extension.php:798 |
learnomy_pro_stripe_invoice_succeeded |
action | (int) $sub->id, $provider_sub_id |
Fires once Pro has acknowledged a Stripe invoice success. Sites. | includes/extensions/membership-pro/class-extension.php:873 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_qti_import_cap |
filter | 'learnomy_manage_own_courses' |
Filters the capability required to import QTI packages. | includes/extensions/qti/class-extension.php:130 (2) |
learnomy_qti_interaction_mappers |
filter | $map, $this |
Filters the map from QTI interaction types to question builder callables. | includes/extensions/qti/class-question-builder.php:185 |
learnomy_qti_max_package_mb |
filter | 50 |
Filters the maximum QTI package size, in megabytes. | includes/extensions/qti/class-package-importer.php:40 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_scorm_cmi_saved |
action | $user_id, $lesson_id, $state |
Fires after a learner’s SCORM CMI state is saved. The Content-Standards. | includes/extensions/scorm/rest/class-controller.php:300 |
learnomy_scorm_max_package_mb |
filter | 100 |
Filters the maximum SCORM package size, in megabytes. | includes/extensions/scorm/class-package-importer.php:78 (2) |
learnomy_scorm_report_cap |
filter | 'manage_options' |
Filters the capability required to view the SCORM tracking report. | includes/extensions/scorm/class-extension.php:221 |
Spaces
Section titled “Spaces”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_admin_space_detail_panels |
action | $space, $lrn_active_tab |
Fires at the end of the admin space detail screen so an extension can render extra panels. | includes/extensions/spaces/views/admin-space-detail.php:588 |
learnomy_admin_space_detail_tabs |
filter | $lrn_tabs, $space |
Filter the Learnomy Space-detail tabs. Integrations (e.g. a BuddyNext. | includes/extensions/spaces/views/admin-space-detail.php:114 |
learnomy_pro_list_spaces |
filter | Space::list_spaces( $filters, $per_page, $offset ), $filters |
Filter the list of spaces returned by a query. Extensions can. | includes/extensions/spaces/class-space-service.php:409 |
learnomy_pro_manage_space_view_data |
filter | $resolved, $space |
Filter the full view-data map handed to manage-space.php. | includes/extensions/spaces/view-data/class-manage-space-view-data.php:322 |
learnomy_pro_my_spaces_view_data |
filter | $resolved, $user_id |
Filter the full view-data handed to my-spaces.php. Extensions. | includes/extensions/spaces/view-data/class-my-spaces-view-data.php:67 |
learnomy_pro_signup_picker_enabled |
filter | true |
Site-wide off switch for the sign-up picker. | includes/extensions/spaces/class-signup-picker.php:112 |
learnomy_pro_signup_picker_spaces |
filter | $out |
Filter the spaces offered on the sign-up form. | includes/extensions/spaces/class-signup-picker.php:158 |
learnomy_pro_space |
filter | Space::find( $id ), $id |
Filter a single space row resolved by id. Extensions can attach. | includes/extensions/spaces/class-space-service.php:378 |
learnomy_pro_space_before_member_purge |
action | $id, $lrn_granted_courses |
Fires while the roster and course assignments are both still. | includes/extensions/spaces/class-space-service.php:349 |
learnomy_pro_space_by_slug |
filter | Space::find_by_slug( $slug ), $slug |
Filter a single space row resolved by slug. Mirrors. | includes/extensions/spaces/class-space-service.php:389 |
learnomy_pro_space_can_add_member |
filter | true, $space_id, $user_id, $role |
Veto a member-add before the DB write. Default true; return false. | includes/extensions/spaces/class-space-service.php:621 |
learnomy_pro_space_can_assign_course |
filter | true, $space_id, $course_id |
Veto a course assignment before the DB write. Return false to. | includes/extensions/spaces/class-space-service.php:439 |
learnomy_pro_space_can_manage |
filter | $is_admin || $is_owner, $space, $user_id |
Filter the can-manage decision for /spaces/{slug}/manage/. |
includes/extensions/spaces/view-data/class-manage-space-view-data.php:59 (5) |
learnomy_pro_space_can_remove_member |
filter | true, $space_id, $user_id |
Veto a member removal. Default true. Owner-self-removal block. | includes/extensions/spaces/class-space-service.php:679 |
learnomy_pro_space_can_suspend_member |
filter | true, $space_id, $user_id |
Veto a suspension. Default true. | includes/extensions/spaces/class-space-service.php:726 |
learnomy_pro_space_course_assigned |
action | $space_id, $course_id |
Fires after a course is assigned to a space. | includes/extensions/spaces/class-space-service.php:450 |
learnomy_pro_space_course_removed |
action | $space_id, $course_id |
Fires after a course is removed from a space. | includes/extensions/spaces/class-space-service.php:471 |
learnomy_pro_space_course_scope_changed |
action | $space_id, $course_id, $scope, $previous |
A space course’s access scope changed. Spaces uses this to enroll. | includes/extensions/spaces/class-space-service.php:511 |
learnomy_pro_space_courses |
filter | $courses, $space_id |
Filter the courses assigned to a space. Extensions can reorder,. | includes/extensions/spaces/class-space-service.php:591 |
learnomy_pro_space_create_data |
filter | $row, $data |
Filter the row about to be inserted. Extensions can stamp extra. | includes/extensions/spaces/class-space-service.php:92 |
learnomy_pro_space_created |
action | $id, $data |
Fires after a space is created. | includes/extensions/spaces/class-space-service.php:103 |
learnomy_pro_space_deleted |
action | $id |
Fires after a space is deleted. | includes/extensions/spaces/class-space-service.php:363 |
learnomy_pro_space_enroll_fanout_batch |
filter | self::ENROLL_FANOUT_BATCH, $space_id, $course_id |
Filter the per-page size of the space auto-enroll fan-out. Lower it. | includes/extensions/spaces/class-extension.php:3265 (5) |
learnomy_pro_space_expiry_batch |
filter | 100 |
Rows processed per page of the space-subscription expiry sweep. | includes/extensions/spaces/class-extension.php:4982 |
learnomy_pro_space_expiry_grace_days |
filter | 7 |
Days past the paid period before an unpaid space is deactivated. | includes/extensions/spaces/models/class-space-subscription.php:163 |
learnomy_pro_space_expiry_max_iterations |
filter | 50 |
Hard ceiling on how many pages a single sweep tick may run. | includes/extensions/spaces/class-extension.php:5001 |
learnomy_pro_space_front_header_end |
action | $space, $is_member |
Fires at the end of the space header ROW (a flex container). Integrations. | includes/extensions/spaces/views/single-space.php:441 |
learnomy_pro_space_group_course_assigned |
action | $group_id, $course_id, (int) $group->space_id |
Fires after a course is assigned to a space group. | includes/extensions/spaces/class-space-group-service.php:371 |
learnomy_pro_space_group_course_removed |
action | $group_id, $course_id, (int) $group->space_id |
Fires after a course is removed from a space group. | includes/extensions/spaces/class-space-group-service.php:397 |
learnomy_pro_space_group_created |
action | $id, $space_id |
Fires after a Space group is created. | includes/extensions/spaces/class-space-group-service.php:63 |
learnomy_pro_space_group_deleted |
action | $group_id, $space_id |
Fires after a space group is deleted. | includes/extensions/spaces/class-space-group-service.php:144 |
learnomy_pro_space_group_manager_assigned |
action | $group_id, $user_id, (int) $group->space_id |
Fires after a manager is assigned to a space group. | includes/extensions/spaces/class-space-group-service.php:327 |
learnomy_pro_space_group_manager_removed |
action | $group_id, $user_id, (int) $group->space_id |
Fires after a manager is removed from a space group. | includes/extensions/spaces/class-space-group-service.php:344 |
learnomy_pro_space_group_member_added |
action | $group_id, $user_id, (int) $group->space_id |
Fires after a member is added to a space group. | includes/extensions/spaces/class-space-group-service.php:173 |
learnomy_pro_space_group_member_removed |
action | $group_id, $user_id, (int) $group->space_id |
Fires after a member is removed from a space group. | includes/extensions/spaces/class-space-group-service.php:201 |
learnomy_pro_space_group_updated |
action | $group_id, (int) $group->space_id |
Fires after a space group is updated. | includes/extensions/spaces/class-space-group-service.php:101 |
learnomy_pro_space_kpis |
filter | self::compute_kpis( $space_id, $visible_member_ids ), $space, $members |
Filter the computed KPI summary (members / active_7d /. | includes/extensions/spaces/view-data/class-manage-space-view-data.php:242 |
learnomy_pro_space_member_added |
action | $space_id, $user_id, $role |
Fires after a member is added to a space. | includes/extensions/spaces/class-space-service.php:663 |
learnomy_pro_space_member_columns |
filter | $lrn_member_columns, (int) ( $space->id ?? 0 ) |
Filters the columns of the space owner’s members table. | includes/extensions/spaces/views/dashboard-widgets/space-owner-members.php:151 |
learnomy_pro_space_member_removed |
action | $space_id, $user_id |
Fires after a member is removed from a space. | includes/extensions/spaces/class-space-service.php:690 |
learnomy_pro_space_member_resumed |
action | $space_id, $user_id |
Fires after a membership is restored. The Extension listens and. | includes/extensions/spaces/class-space-service.php:780 |
learnomy_pro_space_member_role |
filter | $role, $space_id, $user_id |
Filter the role string before write. Default ‘student’; the. | includes/extensions/spaces/class-space-service.php:634 |
learnomy_pro_space_member_role_changed |
action | $space_id, $user_id, $role |
Fires after a space member’s role changes (e.g. promoted to. | includes/extensions/spaces/rest/class-controller.php:3311 |
learnomy_pro_space_member_suspended |
action | $space_id, $user_id |
Fires after a membership is suspended. The Extension listens and. | includes/extensions/spaces/class-space-service.php:749 |
learnomy_pro_space_members |
filter | Space_Member::members_for_space( $space_id, $filters, $limit, $offset ), $space_id, $fi... |
Filter the members list returned for a space. Extensions can. | includes/extensions/spaces/class-space-service.php:794 |
learnomy_pro_space_option |
filter | (bool) self::setting( $space, $key, $default ), $key, $space |
Filter one resolved space option. | includes/extensions/spaces/models/class-space.php:708 |
learnomy_pro_space_option_schema |
filter | $schema |
Filter the per-space option schema. | includes/extensions/spaces/models/class-space.php:622 |
learnomy_pro_space_owner_can_assign_course |
filter | $allowed, $space_id, $course_id, $user_id |
Filter whether a non-admin space owner/manager may add this. | includes/extensions/spaces/rest/class-controller.php:1920 |
learnomy_pro_space_plans_contact_email |
filter | (string) get_option( 'admin_email' ) |
Filters the contact email used by the plans page contact-to-buy fallback when no gateway is configured. | includes/extensions/spaces/view-data/class-plans-public-view-data.php:51 |
learnomy_pro_space_plans_contact_url |
filter | '' |
Filters the contact page URL used by the plans page contact-to-buy fallback. | includes/extensions/spaces/view-data/class-plans-public-view-data.php:60 |
learnomy_pro_space_provisioned |
action | $space_id, $user_id, $plan, $txn_id |
Fires after a space is auto-provisioned from a Space_Plan. | includes/extensions/spaces/class-extension.php:4478 |
learnomy_pro_space_request_created |
action | (int) $id, $space_id, $user_id, $type, $args |
Fires after a space self-service request is created. The notifier. | includes/extensions/spaces/class-space-service.php:1364 |
learnomy_pro_space_request_declined |
action | $request_id, (int) $req->space_id, $req->type, (int) $req->requested_by, $req |
Fires after a request is declined. | includes/extensions/spaces/class-space-service.php:1488 |
learnomy_pro_space_request_resolved |
action | $request_id, (int) $req->space_id, $req->type, (int) $req->requested_by, $req |
Fires after a request is resolved. Notifier emails the requester. | includes/extensions/spaces/class-space-service.php:1456 |
learnomy_pro_space_roster_export_page_size |
filter | 500, $space_id |
Filter the roster-export page size. The whole roster still exports;. | includes/extensions/spaces/rest/class-controller.php:3050 |
learnomy_pro_space_seat_pack_cta_limit |
filter | 10 |
Filter how many active seat packs the upgrade CTA row offers. | includes/extensions/spaces/models/class-space-seat-pack.php:53 |
learnomy_pro_space_seats_added |
action | $space_id, $user_id, $seats_added, $new_limit, $pack, $txn_id |
Fires after a seat pack is added to a space. Notifier listens. | includes/extensions/spaces/class-extension.php:4578 |
learnomy_pro_space_status_changed |
action | $id, (string) $update['status'], $previous_status |
includes/extensions/spaces/class-space-service.php:272 |
|
learnomy_pro_space_status_fanout_batch |
filter | self::ENROLL_FANOUT_BATCH, $space_id |
Filter the per-page size of the association freeze sweep. | includes/extensions/spaces/class-extension.php:3713 |
learnomy_pro_space_subscription_cancelled |
action | (int) $sub->space_id, (int) $sub->id, $payload |
Fires when a recurring space is cancelled. Notifier listens. | includes/extensions/spaces/class-space-service.php:1240 |
learnomy_pro_space_subscription_expired |
action | (int) $sub->space_id, (int) $sub->id |
Fires when a space subscription truly ends. Notifier. | includes/extensions/spaces/class-extension.php:5032 |
learnomy_pro_space_subscription_past_due |
action | (int) $sub->space_id, (int) $sub->id, $invoice |
Fires when a recurring space payment fails. Notifier listens. | includes/extensions/spaces/class-extension.php:4826 |
learnomy_pro_space_subscription_renewed |
action | (int) $sub->space_id, (int) $sub->id, $invoice |
Fires after a space subscription renewal extends the period. | includes/extensions/spaces/class-extension.php:4755 |
learnomy_pro_space_trial_batch |
filter | 100 |
Rows converted per page of the trial sweep. | includes/extensions/spaces/class-extension.php:4899 |
learnomy_pro_space_trial_ended |
action | (int) $sub->space_id, $subscription_id |
Fires when a space trial converts to a paid subscription. | includes/extensions/spaces/class-extension.php:4880 |
learnomy_pro_space_trial_max_iterations |
filter | 50 |
Hard ceiling on pages per trial sweep tick. Runaway guard only. | includes/extensions/spaces/class-extension.php:4911 |
learnomy_pro_space_update_data |
filter | $update, $id, $data |
Filter the partial-update payload right before the DB write. | includes/extensions/spaces/class-space-service.php:231 |
learnomy_pro_space_updated |
action | $id, $update |
Fires after a space is updated. | includes/extensions/spaces/class-space-service.php:255 |
learnomy_pro_space_writable_settings |
filter | $is_admin ? array_merge( $owner_settable, $admin_settable ) : $owner_settable, $is_admi... |
Boolean space settings writable through this route. | includes/extensions/spaces/rest/class-controller.php:1666 |
learnomy_pro_spaces_email_body |
filter | $message, $kind, $space, $email |
Same as subject, for the body. | includes/extensions/spaces/class-notifier.php:1423 |
learnomy_pro_spaces_email_subject |
filter | $subject, $kind, $space, $email |
Filter the email subject for this specific Spaces notification. | includes/extensions/spaces/class-notifier.php:1421 |
learnomy_pro_spaces_fanout_batch_size |
filter | 100 |
Filters how many recipients each Spaces notification fan-out batch handles. | includes/extensions/spaces/class-notifier.php:1469 |
learnomy_pro_spaces_index_redirect |
filter | $target |
Filter the destination of the bare /learning-spaces/ index redirect. | includes/extensions/spaces/class-extension.php:2413 |
learnomy_spaces_label |
filter | \Learnomy\entity_label( 'space', 'plural' ) |
Filters the plural display label for Learning Spaces. | includes/extensions/spaces/class-extension.php:2132 |
learnomy_spaces_my_label |
filter | /* translators: %s: the site's name for Learnomy Spaces, e.g. "Learning Spaces". */ spr... |
Filters the member-facing “My …” label for Learning Spaces. | includes/extensions/spaces/class-extension.php:2146 |
learnomy_spaces_slug |
filter | 'learning-spaces' |
Filters the URL slug for the public Learning Spaces pages. | includes/extensions/spaces/class-extension.php:2093 |
Store Bridges
Section titled “Store Bridges”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_store_bridge_inline_limit |
filter | 3, $this->source() |
Grants with more items than this run in the background. | includes/extensions/store-bridges/class-bridge.php:111 |
learnomy_pro_store_bridges |
filter | array( WooCommerce_Bridge::class, EDD_Bridge::class, RCP_Bridge::class, PMPro_Bridge::c... |
The bridge classes the Store and membership bridges module may load. | includes/extensions/store-bridges/class-extension.php:70 |
Stripe Connect
Section titled “Stripe Connect”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_payouts_async |
filter | true |
Filters whether instructor payouts are settled in the background. | includes/extensions/stripe-connect/class-connect-service.php:579 |
learnomy_pro_stripe_transfer_event |
action | $type, $transfer->id, $update |
Fires after a Stripe transfer webhook event has updated the payout record. | includes/extensions/stripe-connect/class-extension.php:377 |
learnomy_stripe_account_connected |
action | $instructor_id, $body['stripe_user_id'] |
Fires after an instructor connects a Stripe account. | includes/extensions/stripe-connect/class-connect-service.php:299 |
learnomy_stripe_connect_return_url |
filter | $url, $user_id, $outcome |
Filters where an instructor lands after Stripe Connect onboarding. | includes/extensions/stripe-connect/class-extension.php:775 |
learnomy_stripe_transfer_created |
action | $instructor_id, $transfer_id, $amount, $currency |
Fires after a Stripe transfer to an instructor is created and recorded. | includes/extensions/stripe-connect/class-connect-service.php:510 |
learnomy_withdrawal_failed |
action | $withdrawal_id, $transfer->get_error_message() |
Fires when the Stripe transfer for a withdrawal fails. | includes/extensions/stripe-connect/class-extension.php:514 |
learnomy_withdrawal_paid |
action | $withdrawal_id, $transfer['stripe_transfer_id'] |
Fires after the Stripe transfer for a withdrawal succeeds. | includes/extensions/stripe-connect/class-extension.php:524 |
User Journey
Section titled “User Journey”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_milestone_earned |
action | $user_id, $milestone_id, $source |
Fires when a learner earns a milestone. Consumers: notifications,. | includes/extensions/user-journey/class-award-service.php:80 |
learnomy_pro_milestone_revoked |
action | $user_id, $milestone_id |
Fires when a milestone grant is removed by an admin. | includes/extensions/user-journey/class-award-service.php:99 |
learnomy_pro_milestone_rule_types |
filter | null, $rule, $user_id |
Let extensions evaluate custom rule types. Return true/false to. | includes/extensions/user-journey/class-award-service.php:176 |
Webhooks Pro
Section titled “Webhooks Pro”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_webhook_deliveries_per_run |
filter | self::PER_RUN |
Filters how many webhook deliveries may be sent per run before the rest are deferred. | includes/extensions/webhooks-pro/class-dispatcher.php:168 |
learnomy_pro_webhook_delivery_retention_days |
filter | 30 |
Days of webhook delivery-log history to keep. Older rows are purged. | includes/extensions/webhooks-pro/class-dispatcher.php:395 |
learnomy_pro_webhooks_event_slugs |
filter | $defaults |
Filter the action → slug map used to fan webhook events out. | includes/extensions/webhooks-pro/class-extension.php:547 |
Wp Fusion
Section titled “Wp Fusion”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_pro_wpf_gate_copy |
filter | $copy |
Filter the WP Fusion required-tag gate copy. | includes/extensions/wp-fusion/class-tag-service.php:420 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_xapi_iri_base |
filter | home_url() |
Filters the base IRI used for this site’s xAPI activity identifiers. | includes/extensions/xapi/class-statement-builder.php:91 |
learnomy_xapi_statement |
filter | $statement, $event, $ctx |
Filter a single xAPI statement just before it is queued for delivery. | includes/extensions/xapi/class-dispatcher.php:221 |

