02a Hooks Index
Do not edit this file. It is generated from
audit/manifest.jsonbybin/gen-hooks-reference.phpand regenerated at every release, so it cannot drift from the code. For explanations and copy-paste examples, use the hand-written Hooks Reference; when the two disagree on names or arguments, THIS file wins.
Plugin version: 1.9.1 - 106 actions, 119 filters.
Actions (106)
| Hook | Arguments | Fired from |
|---|---|---|
jetonomy_admin_dashboard_after_stats |
none | includes/admin/views/dashboard.php |
jetonomy_admin_dashboard_widgets |
none | includes/admin/views/dashboard.php |
jetonomy_admin_license_tab_content |
none | includes/admin/views/settings.php |
jetonomy_admin_moderation_tab_content |
active_tab | includes/admin/views/moderation.php |
jetonomy_admin_moderation_tabs |
none | includes/admin/views/moderation.php |
jetonomy_admin_render_extensions |
none | includes/admin/views/extensions.php |
jetonomy_admin_settings_tab_content |
tab, group | includes/admin/views/settings.php |
jetonomy_admin_settings_tabs |
none | includes/admin/views/settings.php |
jetonomy_admin_space_edit_tab_content |
space_id, tab | includes/admin/views/space-edit.php |
jetonomy_admin_space_edit_tabs |
space_id | includes/admin/views/space-edit.php |
jetonomy_after_content |
type, object_id | templates/post.php |
jetonomy_after_create_flag |
includes/api/class-moderation-controller.php | |
jetonomy_after_create_post |
int $post_id, int $space_id, WP_REST_Request|null $request | includes/api/class-posts-controller.php (REST create); includes/models/class-post.php Post::publish_scheduled() (cron-published scheduled post, $request null); includes/class-abilities.php (programmatic create, $request null) |
jetonomy_after_create_reply |
int $reply_id, int $post_id, WP_REST_Request|null $request | includes/api/class-replies-controller.php (REST create); includes/notifications/class-notifier.php on_reply_from_email() ($request null); includes/class-abilities.php (programmatic create, $request null) |
jetonomy_after_create_space |
space_id, request | includes/api/class-spaces-controller.php |
jetonomy_after_delete_post |
includes/api/class-posts-controller.php:778 | |
jetonomy_after_delete_reply |
includes/api/class-replies-controller.php:528 | |
jetonomy_after_post_article |
post_id | templates/post.php |
jetonomy_after_replies |
post_id | templates/post.php |
jetonomy_after_resolve_flag |
includes/moderation/class-moderation-service.php | |
jetonomy_after_update_post |
includes/api/class-posts-controller.php | |
jetonomy_after_update_reply |
includes/api/class-replies-controller.php | |
jetonomy_after_update_space |
space, context{space_id,user_id,request} | includes/api/class-spaces-controller.php |
jetonomy_after_vote |
user_id, object_type, object_id, vote_value | includes/models/class-vote.php |
jetonomy_before_content |
type, object_id | templates/post.php |
jetonomy_before_replies |
post_id | templates/post.php |
jetonomy_between_replies |
post_id, reply | templates/post.php |
jetonomy_composer_toolbar |
templates/partials/composer.php:49 | |
jetonomy_content_moderated |
action, type, id, moderator_id | includes/moderation/class-moderation-service.php apply_object_status() - single choke-point; REST mod controller, admin AJAX content handler, abilities, and space-mod all funnel through here. Canonical action vocabulary: approve|spam|trash|hold. |
jetonomy_email_verified |
user_id | includes/api/class-auth-controller.php |
jetonomy_fanout_post_subscribers |
int $post_id, int $space_id | includes/notifications/class-notifier.php:226 |
jetonomy_fanout_reply_subscribers |
int $reply_id, int $post_id | includes/notifications/class-notifier.php:227 |
jetonomy_flag_created |
flag_id | includes/models/class-flag.php |
jetonomy_flag_resolved |
flag_id, action | includes/models/class-flag.php |
jetonomy_header_nav_items |
user_id | templates/header.php |
jetonomy_idea_status_changed |
includes/models/class-post.php | |
jetonomy_join_request_approved |
includes/models/class-join-request.php:92 | |
jetonomy_join_request_created |
request_id | includes/models/class-join-request.php |
jetonomy_join_request_denied |
includes/models/class-join-request.php:115 | |
jetonomy_member_card_after |
$member, $space | templates/views/space-members.php |
jetonomy_membership_activated |
user_id, level_id, adapter | includes/integrations/ |
jetonomy_membership_deactivated |
user_id, level_id, adapter | includes/integrations/ |
jetonomy_new_post_fields |
post_id | templates/compose.php |
jetonomy_new_space_fields |
none | templates/views/new-space.php |
jetonomy_notification_created |
notification_id, user_id, type, object_type, object_id, message, link | includes/notifications/class-notifier.php, includes/class-mentions.php |
jetonomy_post_actions |
post_id | templates/post.php |
jetonomy_post_card_after_badges |
$post, $space | templates/partials/post-card.php |
jetonomy_post_created |
includes/models/class-post.php | |
jetonomy_post_deleted |
post_id | includes/models/class-post.php |
jetonomy_post_merged |
primary_id, secondary_id | includes/models/class-post.php |
jetonomy_post_meta_fields |
post_id | templates/post-meta.php |
jetonomy_post_publish_transition |
post_id, delta, created_at | includes/models/class-post.php (Post::create when created publish; Post::update on publish transitions) |
jetonomy_post_updated |
post_id | includes/models/class-post.php |
jetonomy_posts_retyped_migration |
total | includes/db/migrations/class-migration_1_9_3.php |
jetonomy_pro_first_reaction |
object_type, object_id, reactor_id | CONSUMED by Notifier::on_first_reaction (fired by Pro reactions on 0->1) |
jetonomy_profile_after_stats |
user_id | templates/profile.php |
jetonomy_profile_display_fields |
user_id | templates/profile.php |
jetonomy_profile_edit_fields |
user_id | templates/profile-edit.php |
jetonomy_purge_orphan_space |
$space_id (int) | includes/class-space-backfill.php (Space_Backfill::run_batch) |
jetonomy_purge_orphan_user |
$user_id (int) | includes/class-privacy-backfill.php (Privacy_Backfill::run_batch) |
jetonomy_reply_accepted |
reply_id | includes/models/class-reply.php |
jetonomy_reply_actions |
reply_id | templates/reply.php |
jetonomy_reply_created |
includes/models/class-reply.php | |
jetonomy_reply_deleted |
reply_id | includes/models/class-reply.php |
jetonomy_reply_publish_transition |
reply_id, delta, created_at | includes/models/class-reply.php (Reply::create when created publish; Reply::update on publish transitions) |
jetonomy_reply_split |
new_post_id, reply_ids | includes/models/class-reply.php |
jetonomy_reply_unaccepted |
includes/api/class-replies-controller.php:652 | |
jetonomy_reply_updated |
reply_id | includes/models/class-reply.php |
jetonomy_reputation_changed |
user_id, points, reason | includes/trust/class-reputation-calculator.php |
jetonomy_scheduled_post_published |
post_id | includes/class-cron.php |
jetonomy_search_filters |
none | templates/search.php |
jetonomy_sidebar_about_after_meta |
space_id | templates/sidebar.php |
jetonomy_sidebar_after |
none | templates/sidebar.php |
jetonomy_sidebar_after_about |
none | templates/sidebar.php |
jetonomy_sidebar_after_managed_by |
templates/partials/sidebar.php:212 | |
jetonomy_sidebar_after_popular_tags |
templates/partials/sidebar.php:387 | |
jetonomy_sidebar_after_top_members |
templates/partials/sidebar.php:345 | |
jetonomy_sidebar_after_trending |
templates/partials/sidebar.php:289 | |
jetonomy_sidebar_before |
none | templates/sidebar.php |
jetonomy_sidebar_before_about |
templates/partials/sidebar.php:102 | |
jetonomy_sidebar_before_managed_by |
templates/partials/sidebar.php:188 | |
jetonomy_sidebar_before_popular_tags |
templates/partials/sidebar.php:356 | |
jetonomy_sidebar_before_top_members |
templates/partials/sidebar.php:300 | |
jetonomy_sidebar_before_trending |
templates/partials/sidebar.php:235 | |
jetonomy_sitemap_prime_spaces |
$space_ids (int[]) | includes/seo/class-sitemap-emitter.php (Sitemap_Emitter::emit) |
jetonomy_space_card_after |
$space | templates/views/home.php, templates/views/category.php |
jetonomy_space_display_fields |
space | templates/views/space.php |
jetonomy_space_edit_fields |
space | templates/views/space-edit.php |
jetonomy_space_member_joined |
includes/models/class-space-member.php:69 | |
jetonomy_space_member_left |
includes/models/class-space-member.php:116 | |
jetonomy_space_member_role_changed |
space_id, user_id, new_role, old_role | includes/models/class-space-member.php (set_role) |
jetonomy_space_posts_retyped |
space_id, post_type, updated | includes/models/class-space.php |
jetonomy_space_purge_batch |
array $args | includes/class-space-purge.php:58 |
jetonomy_space_purged |
$space_id (int), $removed (array<string,int> rows removed per table.column:ref) | includes/class-space-purge.php (Space_Purge::purge) |
jetonomy_space_transferred |
space_id, from_user_id, to_user_id | includes/class-privacy.php |
jetonomy_trust_evaluation |
cron-only | includes/class-cron.php |
jetonomy_trust_level_changed |
user_id, old_level, new_level | includes/class-cron.php |
jetonomy_user_blocked |
$blocker_id, $blocked_id | includes/models/class-blocked-user.php (BlockedUser::block) |
jetonomy_user_joined_space |
user_id, space_id | includes/models/class-space-member.php |
jetonomy_user_left_space |
int $space_id, int $user_id | includes/models/class-space-member.php:107 |
jetonomy_user_pending_verification |
user_id | includes/api/class-auth-controller.php |
jetonomy_user_registered |
user_id | includes/api/class-auth-controller.php |
jetonomy_user_unblocked |
$blocker_id, $blocked_id | includes/models/class-blocked-user.php (BlockedUser::unblock) |
jetonomy_verification_reminder_sent |
user_id, user | includes/notifications/class-verification-reminder.php |
jetonomy_vote_cast |
includes/models/class-vote.php | |
jetonomy_vote_retracted |
includes/models/class-vote.php |
Filters (119)
| Hook | Arguments | Fired from |
|---|---|---|
jetonomy_admin_footer_text |
text | includes/admin/class-admin.php |
jetonomy_admin_menu_icon |
icon | includes/admin/class-admin.php |
jetonomy_admin_menu_label |
label | includes/admin/class-admin.php |
jetonomy_after_post_content |
'' (html), $post | templates/views/single-post.php |
jetonomy_after_reply_content |
$html, $reply | templates/partials/reply-card.php |
jetonomy_allow_self_upvote |
allowed, user_id, type, id | includes/api/class-votes-controller.php - whether a member may upvote their own content (default true). Return false to block self-upvote for a stricter reputation economy. Self-downvote is always blocked. |
jetonomy_app_config |
$data, $request | includes/api/class-app-config-controller.php |
jetonomy_app_connect_bridge |
$info (array{owner, connect_url, connect_schemes}) | includes/integrations/class-app-connect.php (App_Connect::bridge_info) |
jetonomy_app_connect_schemes |
$schemes (string[], default ["jetonomyapp"]) | includes/integrations/class-app-connect.php (App_Connect::schemes) |
jetonomy_attachment_card |
$card (string HTML), $attachment (array), $object_type (string), $object_id (int) | includes/class-attachments.php (Attachments::render) |
jetonomy_attachments_class |
$class (string, default 'jt-attachments') | includes/class-attachments.php (Attachments::render) |
jetonomy_author_can_reveal |
$can_reveal (bool, default false), $object, $viewer_id | includes/class-author.php (Author::for_display) |
jetonomy_before_create_post |
data | includes/models/class-post.php |
jetonomy_before_create_reply |
data | includes/models/class-reply.php |
jetonomy_before_delete_post |
post_id | includes/models/class-post.php |
jetonomy_before_delete_reply |
reply_id | includes/models/class-reply.php |
jetonomy_before_join_space |
user_id, space_id | includes/models/class-space-member.php |
jetonomy_before_set_role |
proceed(bool), user_id, space_id, new_role | includes/models/class-space-member.php (set_role) |
jetonomy_before_vote |
user_id, object_type, object_id, vote_value | includes/models/class-vote.php |
jetonomy_blocked_user_ids |
$ids (int[]), $viewer_id (int) | includes/models/class-blocked-user.php (BlockedUser::blocked_ids) |
jetonomy_can_create_space_frontend |
$can (bool), $user_id (int, 0 when logged out) | includes/permissions/class-capabilities.php (Capabilities::can_create_space_frontend) |
jetonomy_check_content |
content, type | includes/moderation/class-content-checker.php |
jetonomy_client_ip |
ip, remote_addr | includes/functions.php Jetonomy\client_ip() - final resolved client IP; override for proxy setups the default trusted-proxy logic doesn't cover. |
jetonomy_companions |
includes/integrations/class-companion-registry.php | |
jetonomy_compose_label |
string $label, string $space_type | includes/functions.php (Jetonomy\compose_label) |
jetonomy_cron_batch_size |
includes/class-cron.php:121 | |
jetonomy_delete_account_network_wide |
$network_wide (bool, default false), $user_id | includes/api/class-users-controller.php (Users_Controller::delete_wp_account) |
jetonomy_display_name_choices |
string[] $choices, WP_User $user | includes/functions.php:296 |
jetonomy_disposable_email_domains |
domains | includes/api/class-auth-controller.php |
jetonomy_dynamic_css |
$css, $settings | includes/class-template-loader.php |
jetonomy_email_accent_color |
color | includes/notifications/class-notifier.php |
jetonomy_email_body |
body, template | includes/notifications/class-notifier.php |
jetonomy_email_headers |
$headers, $type, $user, $object_type, $object_id | includes/notifications/class-notifier.php |
jetonomy_email_html |
html, template | includes/notifications/class-notifier.php |
jetonomy_email_logo_url |
url | includes/notifications/class-notifier.php |
jetonomy_email_subject |
subject, template | includes/notifications/class-notifier.php |
jetonomy_email_template_context |
context, template | includes/notifications/class-notifier.php |
jetonomy_email_template_path |
path, template | includes/class-template-loader.php |
jetonomy_erase_batch_size |
$size (int, default 1000) | includes/class-privacy.php (Privacy::erase_data) |
jetonomy_footer_text |
text | templates/footer.php |
jetonomy_header_logo |
url | templates/header.php |
jetonomy_home_welcome_heading |
templates/views/home.php | |
jetonomy_home_welcome_subheading |
templates/views/home.php | |
jetonomy_import_batch_seconds |
$seconds (float, default 15.0) | includes/import/class-importer.php (Importer::run_batch) |
jetonomy_import_space_visibility |
access, source, forum | includes/import/ |
jetonomy_import_wpforo_guest_group |
guest_group | includes/import/class-wpforo-importer.php |
jetonomy_importers |
importers | includes/import/class-import-manager.php |
jetonomy_journey_strict_input |
$strict (bool, default true), $input (array), $allowed (string[]) | includes/cli/journeys/class-journey-input.php (Journey_Input::unknown_keys) |
jetonomy_leaderboard_items |
includes/api/class-leaderboards-controller.php:176 | |
jetonomy_link_preview_cache_ttl |
ttl | includes/api/class-posts-controller.php |
jetonomy_link_preview_data |
data, url | includes/api/class-posts-controller.php |
jetonomy_link_preview_providers |
providers | includes/api/class-posts-controller.php |
jetonomy_link_preview_user_agent |
ua | includes/api/class-posts-controller.php |
jetonomy_max_space_pins |
includes/api/class-posts-controller.php:905 | |
jetonomy_membership_adapter_labels |
$labels (array<string,string>, adapter id => display name) | includes/adapters/class-adapter-registry.php (Adapter_Registry::membership_labels) |
jetonomy_membership_upgrade_url |
$url (string, "" when none resolved), $level_id (string), $adapter_id (string, "" when unknown) | includes/adapters/class-adapter-registry.php (Adapter_Registry::membership_level_url) |
jetonomy_moderation_flag_resolution |
flag_status, action, type, id, user_id | includes/moderation/class-moderation-service.php apply_object_status() - filters the status applied to an object's pending flags when content is moderated directly (default approve=dismissed, spam/trash=valid, hold=''). Return '' to leave flags pending. |
jetonomy_moderation_per_page |
templates/views/moderation.php:54 | |
jetonomy_new_post_submit_action |
url | includes/blocks/ |
jetonomy_notification_deep_link |
string $url, string $object_type, int $object_id | includes/functions.php:235 |
jetonomy_notification_email_headers |
headers | includes/notifications/class-notifier.php |
jetonomy_notification_should_send |
bool $should_send | includes/notifications/class-notifier.php:1155; includes/models/class-notification.php:44; includes/class-mentions.php:149 |
jetonomy_oembed_response |
response, post | includes/api/class-oembed-controller.php |
jetonomy_orphan_purge_batch_seconds |
$seconds (float, default 15.0) | includes/class-privacy-backfill.php (Privacy_Backfill::run_batch) |
jetonomy_orphan_space_purge_batch_seconds |
$seconds (float, default 15) | includes/class-space-backfill.php (Space_Backfill::run_batch) |
jetonomy_post_list_results_for_space |
$results, $space_id, $user_id, $is_privileged, $sort, $offset | includes/models/class-post.php (Post::list_by_space_visible) |
jetonomy_post_response |
response, post | includes/api/class-posts-controller.php |
jetonomy_posts_query_args |
includes/models/class-post.php | |
jetonomy_privacy_orphan_columns |
$columns (array<int,array{table:string,column:string,where?:string}>) | includes/class-privacy-backfill.php (Privacy_Backfill::columns) |
jetonomy_profile_response |
response, user | includes/api/class-users-controller.php |
jetonomy_profile_tabs |
$tabs, $user, $is_own | templates/views/user-profile.php |
jetonomy_profile_url |
url, user_id | includes/ |
jetonomy_replies_query_args |
includes/models/class-reply.php | |
jetonomy_reputation_points_for |
$points, $action | includes/trust/class-reputation.php (Reputation::points_for) |
jetonomy_reputation_points_map |
includes/trust/class-reputation.php:75 | |
jetonomy_reputation_pre_change |
includes/trust/class-reputation.php:210 | |
jetonomy_reserved_display_names |
string[] $reserved, string $normalized | includes/functions.php:297 |
jetonomy_resolve_mention_handles |
array $map, string[] $handles | includes/class-mentions.php:100 |
jetonomy_rest_attachment_data |
$data (array), $object_type (string), $object_id (int) | includes/models/class-attachment.php (Attachment::for_rest) |
jetonomy_rest_prepare_notification |
response, notification | includes/api/class-notifications-controller.php |
jetonomy_rest_prepare_post |
response, post | includes/api/class-posts-controller.php |
jetonomy_rest_prepare_reply |
response, reply | includes/api/class-replies-controller.php |
jetonomy_rest_prepare_space |
response, space | includes/api/class-spaces-controller.php |
jetonomy_rest_prepare_user |
response, user | includes/api/class-users-controller.php |
jetonomy_schema |
array|null $schema, string $route | includes/seo/class-schema-markup.php:102 |
jetonomy_search_query_args |
args | includes/api/class-search-controller.php |
jetonomy_seo_meta |
includes/class-template-loader.php | |
jetonomy_show_community_nav |
show | templates/ |
jetonomy_show_sidebar |
show | templates/ |
jetonomy_show_sidebar_about |
templates/partials/sidebar.php:104 | |
jetonomy_show_sidebar_managed_by |
templates/partials/sidebar.php:190 | |
jetonomy_show_sidebar_popular_tags |
templates/partials/sidebar.php:358 | |
jetonomy_show_sidebar_top_members |
templates/partials/sidebar.php:302 | |
jetonomy_show_sidebar_trending |
templates/partials/sidebar.php:237 | |
jetonomy_sidebar_auth_card |
html | templates/sidebar.php |
jetonomy_sitemap_changefreq |
$changefreq (string), $type (string), $row (array), $space_id (int) | includes/seo/class-sitemap-emitter.php (Sitemap_Emitter::emit) |
jetonomy_sitemap_exclude_space |
$exclude (bool, default false), $space_id (int) | includes/seo/class-sitemap-emitter.php (Sitemap_Emitter::emit) |
jetonomy_sitemap_priority |
$priority (float), $type (string), $row (array), $space_id (int) | includes/seo/class-sitemap-emitter.php (Sitemap_Emitter::emit) |
jetonomy_space_feed_posts |
posts, space | includes/class-feed.php (Feed::render) |
jetonomy_space_label |
string $label, bool $plural, bool $lower | includes/functions.php:58 |
jetonomy_space_listing_visibility_sql |
result, user_id, alias | includes/models/class-space.php |
jetonomy_space_members_per_page |
templates/views/space-members.php:29 | |
jetonomy_space_pending_requests_shown |
templates/views/space-members.php | |
jetonomy_space_relations |
$relations (array<int,array{table,column,ref,where,self}>) | includes/class-space-purge.php (Space_Purge::relations) |
jetonomy_space_role_permissions |
permissions, role | includes/permissions/class-permission-engine.php |
jetonomy_space_tabs |
$tabs, $space, $show_members | templates/views/space.php |
jetonomy_spaces_query_args |
includes/models/class-space.php | |
jetonomy_template_map |
map | includes/class-template-loader.php |
jetonomy_theme_dark_tokens |
tokens | includes/integrations/class-theme-integration.php |
jetonomy_theme_light_tokens |
tokens | includes/integrations/class-theme-integration.php |
jetonomy_trust_level_label |
label, level | includes/trust/class-trust-levels.php |
jetonomy_trust_level_pre_change |
includes/class-cli.php | |
jetonomy_trusted_proxies |
proxies | includes/functions.php Jetonomy\client_ip() - site owner declares trusted reverse-proxy / CDN IPs so X-Forwarded-For is honoured for IP-bans + rate limiting. Empty by default (XFF ignored; REMOTE_ADDR used). |
jetonomy_upload_allowed_types |
$ext_to_mime | includes/api/class-media-controller.php (Media_Controller::validate_upload + upload_image) |
jetonomy_upload_max_size |
$bytes | includes/api/class-media-controller.php (Media_Controller::validate_upload) |
jetonomy_use_frontend_space_edit |
use_frontend | includes/admin/ |
jetonomy_user_display_name |
string $name, WP_User $user | includes/functions.php:294 |
jetonomy_user_handle |
string $handle, WP_User $user | includes/functions.php:359 |
jetonomy_users_query_args |
includes/api/class-leaderboards-controller.php |