Solid Security
List of Solid Security Pro Action Hooks
Coming soon: Solid Security is becoming Kadence Security. You may see both names used while we update the product, documentation, and customer experience.
Action hooks trigger custom functions at specific points in Solid Security Pro’s workflows—for example, after a site scan completes or when a user fails a login. Use these actions to integrate external systems, automate responses, or extend behavior without modifying plugin code.
Usage example:
add_action( 'itsec_new_banned_ip', function ( $ip, $context ) {
// Send to SIEM, Slack, or trigger a firewall rule.
}, 10, 2 );
Action Hooks
it_libraries_loaded
Summary: Action fires in the it libraries workflow (loaded).
Defined in: lib/updater/load.php:45, lib/icon-fonts/load.php:47
do_action( 'it_libraries_loaded' );
ithemes_updater_register
Summary: Action fires for updater register.
$this
Defined in: lib/updater/settings.php:83
do_action( 'ithemes_updater_register', $this );
ithemes_updater_settings_page_index
Summary: Action fires in the updater settings workflow (page index).
Defined in: lib/updater/admin.php:211
do_action( 'ithemes_updater_settings_page_index' );
itsec-file-change-end-hash-comparisons
Summary: Action fires in the file change workflow (end hash comparisons).
Defined in: core/modules/file-change/scanner.php:749
do_action( 'itsec-file-change-end-hash-comparisons' );
itsec-file-change-end-scan
Summary: Action fires in the file change workflow (end scan).
Defined in: core/modules/file-change/lib/chunk-scanner.php:87
do_action( 'itsec-file-change-end-scan' );
itsec-file-change-start-hash-comparisons
Summary: Action fires in the file change workflow (start hash comparisons).
Defined in: core/modules/file-change/scanner.php:676
do_action( 'itsec-file-change-start-hash-comparisons' );
itsec-file-change-start-scan
Summary: Action fires in the file change workflow (start scan).
Defined in: core/modules/file-change/lib/chunk-scanner.php:85
do_action( 'itsec-file-change-start-scan' );
itsec-handle-failed-login
Summary: Action fires in the handle failed workflow (login).
$username$details
Defined in: core/lib.php:652
do_action( 'itsec-handle-failed-login', $username, $details );
itsec-lib-clear-caches
Summary: Action fires in the lib clear workflow (caches).
Defined in: core/lib.php:49
do_action( 'itsec-lib-clear-caches' );
itsec-logs-page-init
Summary: Action fires in the logs page workflow (init).
Defined in: core/admin-pages/page-logs.php:22
do_action( 'itsec-logs-page-init' );
itsec-logs-page-register-widget
Summary: Action fires in the logs page workflow (register widget).
$this
Defined in: core/admin-pages/sidebar-widget.php:118
do_action( 'itsec-logs-page-register-widget', $this );
itsec-logs-page-register-widgets
Summary: Action fires in the logs page workflow (register widgets).
Defined in: core/admin-pages/page-logs.php:23
do_action( 'itsec-logs-page-register-widgets' );
itsec-page-ajax
Summary: Action fires for page ajax.
Defined in: core/admin-pages/init.php:148
do_action( 'itsec-page-ajax' );
itsec-page-show
Summary: Action fires for page show.
$url
Defined in: core/admin-pages/init.php:142
do_action( 'itsec-page-show', $url );
itsec-register-modules
Summary: Action fires for register modules.
Defined in: core/modules.php:829
do_action( 'itsec-register-modules' );
itsec-security-check-after-default-checks
Summary: Action fires in the security check workflow (after default checks).
self::$feedbackself::$available_modules
Defined in: core/modules/security-check/scanner.php:101
do_action( 'itsec-security-check-after-default-checks', self::$feedback, self::$available_modules );
itsec-security-check-before-default-checks
Summary: Action fires in the security check workflow (before default checks).
self::$feedbackself::$available_modules
Defined in: core/modules/security-check/scanner.php:49
do_action( 'itsec-security-check-before-default-checks', self::$feedback, self::$available_modules );
itsec-settings-page-init
Summary: Action fires in the settings page workflow (init).
Defined in: core/admin-pages/page-settings.php:46
do_action( 'itsec-settings-page-init' );
itsec-settings-page-register-module
Summary: Action fires in the settings page workflow (register module).
$this
Defined in: core/deprecated/module-settings.php:172
do_action( 'itsec-settings-page-register-module', $this );
itsec-settings-page-register-widget
Summary: Action fires in the settings page workflow (register widget).
$this
Defined in: core/admin-pages/sidebar-widget.php:117
do_action( 'itsec-settings-page-register-widget', $this );
itsec-settings-updated
Summary: Action fires for settings updated.
$this->get_id()
Defined in: core/lib/settings.php:299
do_action( 'itsec-settings-updated', $this->get_id() );
itsec-two-factor-successful-authentication
Summary: Action fires in the two factor workflow (successful authentication).
$user_id$provider_class$post_data
Defined in: core/modules/two-factor/class-itsec-two-factor-interstitial.php:214
do_action( 'itsec-two-factor-successful-authentication', $user_id, $provider_class, $post_data );
itsec_after_import
Summary: Fires after an import completes.
$data(array)
Defined in: pro/import-export/importer.php:92
do_action( 'itsec_after_import', $data );
itsec_before_import
Summary: Fires before the import starts.
$data(array)
Defined in: pro/import-export/importer.php:58
do_action( 'itsec_before_import', $data );
itsec_change_admin_user_id
Summary: Fires when the admin user with id of #1 has been changed.
$new_user(int) — The new user's ID.$user(WP_User) — The old user object.
Defined in: core/modules/admin-user/active.php:108
do_action( 'itsec_change_admin_user_id', $new_user, $user );
itsec_create_user_group
Summary: Fires when a user group is created.
$user_group(User_Group)$args(array)
Defined in: core/modules/user-groups/Repository/DB_Repository.php:78, core/modules/user-groups/Repository/In_Memory_Repository.php:52
do_action( 'itsec_create_user_group', $user_group, $args );
itsec_custom_login_slug
Summary: Action fires in the custom login workflow (slug).
Defined in: core/modules/hide-backend/class-itsec-hide-backend.php:130
do_action( 'itsec_custom_login_slug' );
itsec_dashboard_enqueue_scripts
Summary: Action fires in the dashboard enqueue workflow (scripts).
Defined in: core/admin-pages/page-dashboard.php:93
do_action( 'itsec_dashboard_enqueue_scripts' );
itsec_debug_module_request_{$module}
Summary: Fires when an ajax request is being made to a module. At some point this will probably be replaced by a more thought-out framework, but this hook will probably power it. The dynamic portion of this hook, {$module}, refers to the module name. For example, 'notification-center'.
$data(array)
Defined in: core/admin-pages/page-debug.php:78
do_action( "itsec_debug_module_request_{$module}", $_POST['data'] );
itsec_debug_page
Summary: Action fires for debug page.
Defined in: core/admin-pages/page-debug.php:210
do_action( 'itsec_debug_page' );
itsec_debug_page_enqueue
Summary: Action fires in the debug page workflow (enqueue).
Defined in: core/admin-pages/page-debug.php:37
do_action( 'itsec_debug_page_enqueue' );
itsec_encryption_rotate_user_keys
Summary: Fires when an encryption key is being rotated.
$rotator(User_Key_Rotator)$result(Result)
Defined in: core/lib/class-itsec-lib-encryption.php:235
do_action( 'itsec_encryption_rotate_user_keys', $rotator, $result );
itsec_enqueue_profile
Summary: Fires when scripts are enqueued for the User Profile JS code.
$user(WP_User)
Defined in: core/modules/core/class-itsec-core-active.php:319, core/admin-pages/init.php:227
do_action( 'itsec_enqueue_profile', wp_get_current_user() );
do_action( 'itsec_enqueue_profile', $user );
itsec_failed_recaptcha
Summary: Fires when a user fails the reCAPTCHA test.
$error(WP_Error)$args(array)
Defined in: pro/recaptcha/class-itsec-recaptcha.php:483
do_action( 'itsec_failed_recaptcha', $error, $args );
itsec_fingerprint_created
Summary: Fires when a fingerprint is created.
$this(ITSEC_Fingerprint)
Defined in: core/lib/fingerprinting/class-itsec-fingerprint.php:485
do_action( 'itsec_fingerprint_created', $this );
itsec_fingerprint_{$action}
Summary: Fires when the fingerprint is saved.
$this(ITSEC_Fingerprint)$action(string)
Defined in: core/lib/fingerprinting/class-itsec-fingerprint.php:489, core/lib/fingerprinting/class-itsec-fingerprint.php:556
do_action( "itsec_fingerprint_{$action}", $this, $action );
do_action_ref_array( "itsec_fingerprint_{$action}", $args );
itsec_firewall_deleted_rule
Summary: Fires when a firewall rule is deleted.
$rule(Rule)
Defined in: core/modules/firewall/Rules/Repository.php:149
do_action( 'itsec_firewall_deleted_rule', $rule );
itsec_firewall_saved_rule
Summary: Fires when a firewall rule is saved.
$rule(Rule)
Defined in: core/modules/firewall/Rules/Repository.php:118
do_action( 'itsec_firewall_saved_rule', $rule );
itsec_initialize_login_interstitial_session_from_global_state
Summary: Action fires in the initialize login workflow (interstitial session from global state).
$this
Defined in: core/lib/login-interstitial/class-itsec-login-interstitial-session.php:451
do_action( 'itsec_initialize_login_interstitial_session_from_global_state', $this );
itsec_initialized
Summary: Action fires on initialized.
Defined in: core/core.php:255
do_action( 'itsec_initialized' );
itsec_install_schema
Summary: Fires when the DB schema is installed or updated.
$wp_error(WP_Error)
Defined in: core/lib/schema.php:290
do_action( 'itsec_install_schema', $wp_error );
itsec_lib_delete_file
Summary: Fires when Solid Security removes a managed file.
$file(string)
Defined in: core/lib/class-itsec-lib-file.php:279
do_action( 'itsec_lib_delete_file', $file );
itsec_lib_write_to_file
Summary: Fires when Solid Security writes to a managed file.
$file(string) — The path to the file.$contents(string) — The contents written.
Defined in: core/lib/class-itsec-lib-file.php:223
do_action( 'itsec_lib_write_to_file', $file, $contents );
itsec_load_file_change_scanner
Summary: Action fires in the load file workflow (change scanner).
Defined in: core/modules/file-change/scanner.php:19
do_action( 'itsec_load_file_change_scanner' );
itsec_lockout_template_before_actions
Summary: Action fires in the lockout template workflow (before actions).
$context
Defined in: core/templates/lockout/lockout.php:30
do_action( 'itsec_lockout_template_before_actions', $context );
itsec_log_add
Summary: Action fires for log add.
$data$id$log_type
Defined in: core/lib/log.php:110
do_action( 'itsec_log_add', $data, $id, $log_type );
itsec_login_interstitial_async_action_confirmation_before_confirm
Summary: Action fires in the login interstitial workflow (async action confirmation before confirm).
$session$action
Defined in: core/lib/class-itsec-lib-login-interstitial.php:837
do_action( 'itsec_login_interstitial_async_action_confirmation_before_confirm', $session, $action );
itsec_login_interstitial_init
Summary: Fires when the Login Interstitial framework is initialized.
$this
Defined in: core/lib/class-itsec-lib-login-interstitial.php:51
do_action( 'itsec_login_interstitial_init', $this );
itsec_login_interstitial_initialize_same_browser
Summary: Fires when the login interstitial initializes the Same Browser API for async actions.
$session(ITSEC_Login_Interstitial_Session)
Defined in: core/lib/class-itsec-lib-login-interstitial.php:239
do_action( 'itsec_login_interstitial_initialize_same_browser', $session );
itsec_login_interstitial_logged_in
Summary: Fires when a user is re-logged back in after submitting an interstitial.
$user(WP_User)
Defined in: core/lib/class-itsec-lib-login-interstitial.php:936
do_action( 'itsec_login_interstitial_logged_in', $user );
itsec_login_with_fingerprint
Summary: Fires when a user logs in after the fingerprint has been determined.
$fingerprint(ITSEC_Fingerprint)$user(WP_User)
Defined in: pro/fingerprinting/class-itsec-fingerprinting.php:179
do_action( 'itsec_login_with_fingerprint', $fingerprint, $user );
itsec_modules_do_plugin_activation
Summary: Action fires in the modules do workflow (plugin activation).
Defined in: core/modules.php:877
do_action( 'itsec_modules_do_plugin_activation' );
itsec_modules_do_plugin_deactivation
Summary: Action fires in the modules do workflow (plugin deactivation).
Defined in: core/modules.php:886
do_action( 'itsec_modules_do_plugin_deactivation' );
itsec_modules_do_plugin_uninstall
Summary: Action fires in the modules do workflow (plugin uninstall).
Defined in: core/modules.php:895
do_action( 'itsec_modules_do_plugin_uninstall' );
itsec_modules_do_plugin_upgrade
Summary: Action fires in the modules do workflow (plugin upgrade).
$old_version$new_version
Defined in: core/modules.php:907
do_action( 'itsec_modules_do_plugin_upgrade', $old_version, $new_version );
itsec_new_banned_ip
Summary: Fires when a new IP has been banned. This is primarily used by the Ban Users module.
$ip(string) — The IP address.$context(LockoutContext|null) — The lockout context that caused the ban.
Defined in: core/lockout.php:1117
do_action( 'itsec_new_banned_ip', $ip, $context );
itsec_notification_center_continue_upgrade
Summary: Action fires in the notification center workflow (continue upgrade).
$this->old_version
Defined in: core/modules/notification-center/setup.php:152
do_action( 'itsec_notification_center_continue_upgrade', $this->old_version );
itsec_notification_center_notification_disabled
Summary: Action fires in the notification center workflow (notification disabled).
$slug
Defined in: core/modules/notification-center/settings.php:64
do_action( 'itsec_notification_center_notification_disabled', $slug );
itsec_notification_center_notification_enabled
Summary: Action fires in the notification center workflow (notification enabled).
$slug
Defined in: core/modules/notification-center/settings.php:61
do_action( 'itsec_notification_center_notification_enabled', $slug );
itsec_notification_center_{$slug}_notification_disabled
Summary: Action fires in the notification center workflow ({$slug} notification disabled).
$slug
Defined in: core/modules/notification-center/settings.php:63
do_action( "itsec_notification_center_{$slug}_notification_disabled", $slug );
itsec_notification_center_{$slug}_notification_enabled
Summary: Action fires in the notification center workflow ({$slug} notification enabled).
$slug
Defined in: core/modules/notification-center/settings.php:60
do_action( "itsec_notification_center_{$slug}_notification_enabled", $slug );
itsec_password_requirements_change_form
Summary: Action fires in the password requirements workflow (change form).
$user
Defined in: core/modules/password-requirements/class-itsec-password-requirements.php:423
do_action( 'itsec_password_requirements_change_form', $user );
itsec_passwordless_login_enqueue_profile_scripts
Summary: Action fires in the passwordless login workflow (enqueue profile scripts).
$user
Defined in: pro/passwordless-login/class-passwordless-login.php:138
do_action( 'itsec_passwordless_login_enqueue_profile_scripts', $user );
itsec_passwordless_login_initialize_interstitial
Summary: Fires when the Passwordless Login interstitial session is initialized.
$session(ITSEC_Login_Interstitial_Session)$args(array)
Defined in: pro/passwordless-login/class-passwordless-login-utilities.php:408
do_action( 'itsec_passwordless_login_initialize_interstitial', $session, $args );
itsec_prepare_dashboard_response
Summary: Fires when the response for a Security Dashboard is being prepared for the REST API.
$response(WP_REST_Response)$item(WP_Post)$request(WP_REST_Request)
Defined in: core/modules/dashboard/rest/class-itsec-rest-dashboard-dashboards-controller.php:309
do_action( 'itsec_prepare_dashboard_response', $response, $item, $request );
itsec_recaptcha_api_ready
Summary: Fires when the Recaptcha API is ready to be used.
Defined in: pro/recaptcha/API.php:32
do_action( 'itsec_recaptcha_api_ready' );
itsec_register_highlighted_logs
Summary: Action fires in the register highlighted workflow (logs).
Defined in: core/lib/class-itsec-lib-highlighted-logs.php:169
do_action( 'itsec_register_highlighted_logs' );
itsec_register_password_requirements
Summary: Fires when password requirements should be registered.
Defined in: core/lib/class-itsec-lib-password-requirements.php:27
do_action( 'itsec_register_password_requirements' );
itsec_register_tools
Summary: Fires when tools should be registered.
$registry(Tools_Registry)
Defined in: core/lib/tools/Tools_Runner.php:35
do_action( 'itsec_register_tools', $this->registry );
itsec_register_user_group_settings
Summary: Action fires in the register user workflow (group settings).
$this->settings_registry
Defined in: core/modules/user-groups/Module/Module.php:79
do_action( 'itsec_register_user_group_settings', $this->settings_registry );
itsec_requirements_error
Summary: Fires when a requirements error is encountered.
$error(WP_Error)
Defined in: core/lib.php:2632
do_action( 'itsec_requirements_error', $error );
itsec_scheduled_{$job->get_id()}
Summary: Fires when a scheduled job should be executed.
$job(ITSEC_Job)
Defined in: core/lib/class-itsec-scheduler.php:388
do_action( "itsec_scheduled_{$job->get_id()}", $job );
itsec_scheduler_register_events
Summary: Register scheduled events. Events should be registered in response to a user action, for example activating a module or changing a setting. Occasionally, Solid Security will manually ask for all events to be scheduled.
$this(ITSEC_Scheduler)
Defined in: core/lib/class-itsec-scheduler.php:224
do_action( 'itsec_scheduler_register_events', $this );
itsec_security_digest_attach_additional_info
Summary: Fires when additional info should be attached to the Security Digest.
$mail(ITSEC_Mail)$data_proxy(ITSEC_Notify_Data_Proxy)$last_sent(int)
Defined in: core/notify.php:181
do_action( 'itsec_security_digest_attach_additional_info', $mail, $data_proxy, $last_sent );
itsec_security_digest_before
Summary: Fires before the main content of the Security Digest is added.
$mail(ITSEC_Mail)$data_proxy(ITSEC_Notify_Data_Proxy)$last_sent(int)
Defined in: core/notify.php:144
do_action( 'itsec_security_digest_before', $mail, $data_proxy, $last_sent );
itsec_site_scanner_scan_complete
Summary: Fires after a site scan has completed.
$scan(Scan)$site_id(int)$cached(bool)
Defined in: core/modules/site-scanner/api.php:87
do_action( 'itsec_site_scanner_scan_complete', $scan, $site_id, $cached );
itsec_software_vulnerabilities_changed
Summary: Fires when the detected software vulnerabilities have changed.
$vulnerabilities(array) — The new vulnerabilities set.$existing(array) — The existing vulnerabilities.
Defined in: core/modules/site-scanner/class-itsec-site-scanner.php:179
do_action( 'itsec_software_vulnerabilities_changed', $vulnerabilities, $existing );
itsec_two_factor_interstitial_after_auth_page
Summary: Action fires in the two factor workflow (interstitial after auth page).
$provider$session$args
Defined in: core/modules/two-factor/class-itsec-two-factor-interstitial.php:71
do_action( 'itsec_two_factor_interstitial_after_auth_page', $provider, $session, $args );
itsec_two_factor_interstitial_pre_render
Summary: Action fires in the two factor workflow (interstitial pre render).
$session$provider
Defined in: core/modules/two-factor/class-itsec-two-factor-interstitial.php:106
do_action( 'itsec_two_factor_interstitial_pre_render', $session, $provider );
itsec_two_factor_override
Summary: Action fires in the two factor workflow (override).
$usercompact( 'override_expires' )
Defined in: core/modules/two-factor/sync-verbs/itsec-override-two-factor-user.php:50
do_action( 'itsec_two_factor_override', $user, compact( 'override_expires' ) );
itsec_update_user_group
Summary: Fires when a user group is updated.
$user_group(User_Group)$args(array)
Defined in: core/modules/user-groups/Repository/DB_Repository.php:88, core/modules/user-groups/Repository/In_Memory_Repository.php:61
do_action( 'itsec_update_user_group', $user_group, $args );
itsec_user_action_{$action}
Summary: Fires when a user action should be processed. The dynamic portion of this hook $action refers to the action slug that should be applied.
$user(WP_User)$actioned_by(WP_User)$args(mixed)
Defined in: core/lib/User_Actions_Background_Process.php:58
do_action( "itsec_user_action_{$action}", $user, $actioned_by, $args );
itsec_validate_password
Summary: Fires when modules should validate a password according to their rules.
$error(WP_Error)$user(WP_User|stdClass)$new_password(string)$args(array)
Defined in: core/lib/class-itsec-lib-password-requirements.php:202
do_action( 'itsec_validate_password', $error, $user, $new_password, $args );
itsec_vulnerability_not_seen
Summary: Fires if a vulnerability was not seen in the latest Site Scan.
$vulnerability(Vulnerability)
Defined in: core/modules/site-scanner/class-itsec-site-scanner.php:162, core/modules/site-scanner/class-itsec-site-scanner.php:256, core/modules/site-scanner/class-itsec-site-scanner.php:298, core/modules/site-scanner/class-itsec-site-scanner.php:333, core/modules/site-scanner/class-itsec-site-scanner.php:371
do_action( 'itsec_vulnerability_not_seen', $vulnerability );
itsec_vulnerability_was_seen
Summary: Fires when a vulnerability has been seen.
$model(Vulnerability)$issue(Vulnerability_Issue)
Defined in: core/modules/site-scanner/class-itsec-site-scanner.php:119, core/modules/site-scanner/class-itsec-site-scanner.php:221
do_action( 'itsec_vulnerability_was_seen', $model, $issue );
do_action( 'itsec_vulnerability_was_seen', $vulnerability, $vulnerability->as_issue() );