Developer Reference
Constants
| Constant | Value | Description |
|---|---|---|
SWITCHUSER_VERSION | 1.0.0 | Plugin version |
SWITCHUSER_PLUGIN_FILE | __FILE__ | Plugin file path |
SWITCHUSER_PLUGIN_DIR | plugin_dir_path() | Plugin directory |
SWITCHUSER_PLUGIN_URL | plugin_dir_url() | Plugin URL |
Filters
| Filter | Arguments | Description |
|---|---|---|
switchuser_can_switch | $can (bool), $switcher_id (int), $target_id (int) | Override permission check |
switchuser_redirect_url | $url (string), $target_user (WP_User) | Override post-switch redirect URL |
switchuser_cookie_ttl | $ttl (int) | Override cookie expiry in seconds (default: 172800) |
Actions
| Action | Arguments | Description |
|---|---|---|
switchuser_switched | $target_user (WP_User), $original_user (WP_User) | Fires immediately after switching to a user |
switchuser_switched_back | $original_user (WP_User), $previous_user (WP_User) | Fires after switching back |
switchuser_switched_off | $previous_user (WP_User) | Fires after Switch Off |
Options Schema
| Option Key | Type | Default | Description |
|---|---|---|---|
switchuser_settings[enable_user_switching] | string yes/no | no | Master toggle |
switchuser_settings[block_admin_targets] | string yes/no | no | Prevent switching to admins |
switchuser_settings[order_screen_enabled] | string yes/no | yes | WC order screen button |
switchuser_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 = SwitchUser_Core::instance()->can_switch_to_user( $target_user_id );
// Initiate a switch programmatically
SwitchUser_Core::instance()->handle_switch_to( $target_user_id );
// Switch back to origin
SwitchUser_Core::instance()->handle_switch_back();
// Check if currently switched
$switched = SwitchUser_Core::instance()->is_switched();