Documentation
SwitchGuard
Developer Reference

Developer Reference


Constants

ConstantValueDescription
SWITCHGUARD_VERSION1.0.0Plugin version
SWITCHGUARD_PLUGIN_FILE__FILE__Plugin file path
SWITCHGUARD_PLUGIN_DIRplugin_dir_path()Plugin directory
SWITCHGUARD_PLUGIN_URLplugin_dir_url()Plugin URL

Filters

FilterArgumentsDescription
switchguard_can_switch$can (bool), $switcher_id (int), $target_id (int)Override permission check
switchguard_redirect_url$url (string), $target_user (WP_User)Override post-switch redirect URL
switchguard_cookie_ttl$ttl (int)Override cookie expiry in seconds (default: 172800)

Actions

ActionArgumentsDescription
switchguard_switched$target_user (WP_User), $original_user (WP_User)Fires immediately after switching to a user
switchguard_switched_back$original_user (WP_User), $previous_user (WP_User)Fires after switching back
switchguard_switched_off$previous_user (WP_User)Fires after Switch Off

Options Schema

Option KeyTypeDefaultDescription
switchguard_settings[enable_user_switching]string yes/nonoMaster toggle
switchguard_settings[block_admin_targets]string yes/nonoPrevent switching to admins
switchguard_settings[order_screen_enabled]string yes/noyesWC order screen button
switchguard_settings[profile_screen_enabled]string yes/noyesProfile page switch box

PHP API

// Check if current user can switch to a target user
$can = SwitchGuard_Core::instance()->can_switch_to_user( $target_user_id );
 
// Initiate a switch programmatically
SwitchGuard_Core::instance()->handle_switch_to( $target_user_id );
 
// Switch back to origin
SwitchGuard_Core::instance()->handle_switch_back();
 
// Check if currently switched
$switched = SwitchGuard_Core::instance()->is_switched();