Hooks Reference (Pro)
Learnomy overviewFree + ProGet Learnomy →
Hooks Reference (Pro)
Section titled “Hooks Reference (Pro)”Every action and filter Learnomy Pro fires that Free does not, grouped by extension. Hooks Pro shares with Free are on the Hooks Reference.
172 hooks: 92 filters and 80 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:1345 |
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:169 |
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:108 |
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:225 |
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:312 |
learnomy_pro_assignment_created |
action | $id, $insert |
Fires after an assignment definition is created. | includes/extensions/assignments/class-assignment-service.php:236 |
learnomy_pro_assignment_deleted |
action | $id |
Fires after an assignment and its submissions are deleted. | includes/extensions/assignments/class-assignment-service.php:313 |
learnomy_pro_assignment_graded |
action | $submission_id, $score, $submission |
Fires after a submission is graded. | includes/extensions/assignments/class-assignment-service.php:412 |
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:438 |
learnomy_pro_assignment_submitted |
action | $id, $assignment_id, $user_id |
Fires after a learner submits an assignment. | includes/extensions/assignments/class-assignment-service.php:359 |
learnomy_pro_assignment_updated |
action | $id, $prepared |
Fires after an assignment definition is updated. | includes/extensions/assignments/class-assignment-service.php:286 |
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:448 |
learnomy_pro_credly_sync_async |
filter | true |
Filters whether syncing Credly badges is queued in the background. | includes/extensions/certificates-pro/class-extension.php:1020 |
| 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:1205 |
learnomy_cohorts_slug |
filter | 'cohorts' |
Filters the URL slug for the public cohort pages. | includes/extensions/cohorts/class-extension.php:1688 |
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 |
Filters the enrollment sources that are let through when a course requires a cohort. | includes/extensions/cohorts/class-extension.php:1409 |
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:1425 |
learnomy_pro_cohort_created |
action | $id, $row |
Fires after a cohort definition is created. | includes/extensions/cohorts/class-cohort-service.php:341 |
learnomy_pro_cohort_deleted |
action | $id |
Fires after a cohort is deleted. | includes/extensions/cohorts/class-cohort-service.php:446 |
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:544 |
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:560 |
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:747 |
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:398 |
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:884 |
| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
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:126 |
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:211 |
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:224 |
learnomy_instructor_slug |
filter | 'instructor' |
Filters the instructor base URL segment, shared with Free. | includes/extensions/frontend-builder/class-extension.php:198 |
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:202 |
|
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:1470 |
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:1491 |
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:1176 |
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:335 |
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:1012 |
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:1049 |
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:230 |
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:271 |
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:258 |
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:231 |
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:682 |
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:440 (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:385 |
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:272 (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:566 |
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:147 |
learnomy_pro_stripe_charge_refunded |
action | $resource |
Fires when Stripe reports a refunded charge. | includes/extensions/membership-pro/class-extension.php:785 |
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:860 |
| 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:89 (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:130 |
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:523 |
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:106 |
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:614 |
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:672 |
learnomy_pro_space_can_suspend_member |
filter | true, $space_id, $user_id |
Veto a suspension. Default true. | includes/extensions/spaces/class-space-service.php:719 |
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:464 |
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:504 |
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:584 |
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:3218 (5) |
learnomy_pro_space_expiry_batch |
filter | 100 |
Rows processed per page of the space-subscription expiry sweep. | includes/extensions/spaces/class-extension.php:4984 |
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:5003 |
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:428 |
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:656 |
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:683 |
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:773 |
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:627 |
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:3248 |
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:742 |
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:787 |
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:692 |
learnomy_pro_space_option_schema |
filter | $schema |
Filter the per-space option schema. | includes/extensions/spaces/models/class-space.php:606 |
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:1889 |
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:4435 |
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:1315 |
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:1439 |
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:1407 |
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:2997 |
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:4535 |
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:3670 |
learnomy_pro_space_subscription_cancelled |
action | (int) $sub->space_id, (int) $sub->id, $stripe_sub |
Fires when a recurring space is cancelled. Notifier listens. | includes/extensions/spaces/class-extension.php:4811 |
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:5034 |
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:4792 |
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:4717 |
learnomy_pro_space_trial_batch |
filter | 100 |
Rows converted per page of the trial sweep. | includes/extensions/spaces/class-extension.php:4871 |
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:4852 |
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:4883 |
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:1652 |
learnomy_pro_spaces_email_body |
filter | $message, $kind, $space, $email |
Same as subject, for the body. | includes/extensions/spaces/class-notifier.php:1407 |
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:1405 |
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:1451 |
learnomy_pro_spaces_index_redirect |
filter | $target |
Filter the destination of the bare /learning-spaces/ index redirect. | includes/extensions/spaces/class-extension.php:2370 |
learnomy_spaces_label |
filter | \Learnomy\entity_label( 'space', 'plural' ) |
Filters the plural display label for Learning Spaces. | includes/extensions/spaces/class-extension.php:2089 |
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:2103 |
learnomy_spaces_slug |
filter | 'learning-spaces' |
Filters the URL slug for the public Learning Spaces pages. | includes/extensions/spaces/class-extension.php:2050 |
Stripe Connect
Section titled “Stripe Connect”| Hook | Type | Arguments | What it is for | Fired in |
|---|---|---|---|---|
learnomy_payout_reversal_failed |
action | (int) $paid_payout->id, $reversal->get_error_message(), $debt_id |
Fires when reversing a paid payout after a refund fails. | includes/extensions/stripe-connect/class-refund-handler.php:166 |
learnomy_payout_reversed |
action | (int) $paid_payout->id, $instructor_id, $owed |
Fires after a paid payout is reversed in response to a refund. | includes/extensions/stripe-connect/class-refund-handler.php:207 |
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:400 |
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:798 |
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:537 |
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:547 |
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:173 |
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:391 |
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:541 |
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:402 |
| 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:88 |
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:205 |

