Developer Reference
Constants
| Constant | Value | Description |
|---|---|---|
SWITCHGUARD_VERSION | 1.0.0 | Plugin version |
SWITCHGUARD_PLUGIN_FILE | __FILE__ | Plugin file path |
SWITCHGUARD_PLUGIN_DIR | plugin_dir_path() | Plugin directory |
SWITCHGUARD_PLUGIN_URL | plugin_dir_url() | Plugin URL |
Filters
| Filter | Arguments | Description |
|---|---|---|
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
| Action | Arguments | Description |
|---|---|---|
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 Key | Type | Default | Description |
|---|---|---|---|
switchguard_settings[enable_user_switching] | string yes/no | no | Master toggle |
switchguard_settings[block_admin_targets] | string yes/no | no | Prevent switching to admins |
switchguard_settings[order_screen_enabled] | string yes/no | yes | WC order screen button |
switchguard_settings[profile_screen_enabled] | string yes/no | yes | Profile 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();