| Server IP : 35.201.19.92 / Your IP : 216.73.217.65 Web Server : nginx System : Linux pod-200961 6.8.0-1055-gke #61-Ubuntu SMP Tue May 26 22:57:42 UTC 2026 x86_64 User : fpm200098 ( 200098) PHP Version : 8.2.33 Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /nas/content/live/questfamilyday/wp-content/plugins/fast-user-switching/ |
Upload File : |
<?php
add_action( 'admin_menu', 'tikemp_add_admin_menu' );
add_action( 'admin_init', 'tikemp_settings_init' );
function tikemp_add_admin_menu( ) {
add_options_page( 'Fast user switching', 'Fast user switching', 'manage_options', 'fast_user_switching', 'tikemp_options_page' );
}
function tikemp_settings_init( ) {
register_setting( 'pluginPage', 'fus_settings', 'tikemp_settings_filter' );
add_settings_section(
'tikemp_pluginPage_section',
__( '', 'fast-user-switching' ),
'tikemp_settings_section_callback',
'pluginPage'
);
add_settings_field(
'fus_name',
__( 'Show first name and surname', 'fast-user-switching' ),
'tikemp_name_render',
'pluginPage',
'tikemp_pluginPage_section'
);
add_settings_field(
'fus_role',
__( 'Show role (access level)', 'fast-user-switching' ),
'tikemp_role_render',
'pluginPage',
'tikemp_pluginPage_section'
);
add_settings_field(
'fus_username',
__( 'Show user name', 'fast-user-switching' ),
'tikemp_username_render',
'pluginPage',
'tikemp_pluginPage_section'
);
add_settings_field(
'fus_showdate',
__( 'Show last switched date','fast-user-switching' ),
'tikemp_lastSwitchedDate_render',
'pluginPage',
'tikemp_pluginPage_section'
);
if ( is_plugin_active( 'woocommerce/woocommerce.php' ) ){
add_settings_field(
'fus_woo',
__( 'Empty WooCommerce cart item during switching','fast-user-switching' ),
'tikemp_woocom_render',
'pluginPage',
'tikemp_pluginPage_section'
);
add_settings_field(
'fus_showon_woo_order',
__( 'Switch user from order details page','fast-user-switching' ),
'tikemp_wooorder_render',
'pluginPage',
'tikemp_pluginPage_section'
);
}
}
function tikemp_role_select_repeater(){
$roles = wp_roles()->role_names;
$options = get_option( 'fus_settings', [] );
$fus_roles = isset($options['fus_roles']) ? $options['fus_roles'] : [];
if( empty($fus_roles) ){
$fus_roles[] = 'administrator';
}
$fus_roles = array_unique($fus_roles);
echo '<table class="form-table" id="role-select">';
?>
<tr class="role-selector hidden">
<th scope="row"><?= __('Enable User Switching For','fast-user-switching'); ?></th>
<td>
<select name="fus_settings[fus_roles][]" >
<?php
foreach ($roles as $rkey => $rval) {
?>
<option value="<?= $rkey; ?>"><?= $rval; ?></option>
<?php
}
?>
</select>
<strong><?= __('Roles','fast-user-switching'); ?></strong>
<button type="button" class="remove-this-row"><span class="dashicons dashicons-no-alt"></span></button>
</td>
</tr>
<?php
foreach ($fus_roles as $key => $value) :
?>
<tr class="role-selector">
<th scope="row"><?= __('Enable User Switching For','fast-user-switching'); ?></th>
<td>
<select name="fus_settings[fus_roles][]" >
<?php
foreach ($roles as $rkey => $rval) {
?>
<option value="<?= $rkey; ?>" <?php selected( $value, $rkey, true ); disabled( $value,'administrator',true);?>><?= $rval; ?></option>
<?php
}
?>
</select>
<strong><?= __('Roles','fast-user-switching'); ?></strong>
<?php if ( $value != 'administrator' ): ?>
<button type="button" class="remove-this-row"><span class="dashicons dashicons-no-alt"></span></button>
<?php endif; ?>
</td>
</tr>
<?php
endforeach;
echo '</table>';
}
function tikemp_name_render( ) {
$options = get_option( 'fus_settings', []);
$fus_name = isset($options['fus_name']) ? $options['fus_name'] : 0;
?>
<input type='checkbox' name='fus_settings[fus_name]' <?php checked( $fus_name, 1 ); ?> value='1'>
<?php
}
function tikemp_role_render( ) {
$options = get_option( 'fus_settings', []);
$fus_role = isset($options['fus_role']) ? $options['fus_role'] : 0;
?>
<input type='checkbox' name='fus_settings[fus_role]' <?php checked( $fus_role, 1 ); ?> value='1'>
<?php
}
function tikemp_username_render( ) {
$options = get_option( 'fus_settings', []);
$fus_username = isset($options['fus_username']) ? $options['fus_username'] : 0;
?>
<input type='checkbox' name='fus_settings[fus_username]' <?php checked( $fus_username , 1 ); ?> value='1'>
<?php
}
function tikemp_lastSwitchedDate_render(){
$options = get_option( 'fus_settings', []);
$fus_showdate = isset($options['fus_showdate']) ? $options['fus_showdate'] : 0;
?>
<input type='checkbox' name='fus_settings[fus_showdate]' <?php checked( $fus_showdate, 1 ); ?> value='1'>
<?php
}
function tikemp_woocom_render(){
$options = get_option( 'fus_settings', []);
$fus_woo = isset($options['fus_woo']) ? $options['fus_woo'] : 0;
?>
<input type='checkbox' name='fus_settings[fus_woo]' <?php checked( $fus_woo, 1 ); ?> value='1'>
<?php
}
function tikemp_wooorder_render(){
$options = get_option( 'fus_settings', []);
$fus_showon_woo_order = isset($options['fus_showon_woo_order']) ? $options['fus_showon_woo_order'] : 0;
?>
<input type='checkbox' name='fus_settings[fus_showon_woo_order]' <?php checked( $fus_showon_woo_order, 1 ); ?> value='1'>
<?php
}
function tikemp_settings_section_callback( ) {
}
function tikemp_options_page( ) {
?>
<form action='options.php' method='post' id='tikemp_settings_page'>
<h2>Fast user switching</h2>
<?php
settings_fields( 'pluginPage' );
do_settings_sections( 'pluginPage' );
echo '<hr/>';
echo '<h2>'.__('Role Assign','fast-user-switching').'</h2>';
tikemp_role_select_repeater();
submit_button();
tikemp_admin_scripts();
?>
</form>
<?php
}
function tikemp_settings_filter($opt){
if ( empty($opt) ){
$opt['fus_username'] = 1;
add_settings_error('pluginPage','error',__('You must have to enable at least one option!','fast-user-switching'),'error');
}
$recent_users = get_option( 'tikemp_recent_imp_users', [] );
foreach ($recent_users as $key => $value) {
$user = explode('&', $value);
$user_id = $user[0];
if ( count($user) == 4 ){
$last_date = end($user);
}
$new_display_format = tikemp_updateUserInfo($user_id,$opt);
$recent_users[$key] = $new_display_format.'&'.$last_date;
}
update_option('tikemp_recent_imp_users',$recent_users);
return $opt;
}
function tikemp_updateUserInfo($user_id,$fus_settings){
$user = get_userdata( $user_id );
$roles = tikemp_get_readable_rolename(array_shift($user->roles));
if ( isset($fus_settings['fus_name']) ){
$name_display = $user->first_name.' '.$user->last_name;
}else {
$name_display = ' ';
}
if ( isset($fus_settings['fus_role']) ){
$role_display = $roles;
} else {
$role_display = '';
}
if ( isset($fus_settings['fus_username']) ){
$role_display .= ' - '.$user->user_login;
}
$keep = $user->data->ID.'&'.$name_display.'&'.$role_display;
return $keep;
}
function tikemp_admin_scripts(){
?>
<style>
button.remove-this-row{
width: 30px;
height: 22px;
background-color: #ce3030;
border: 0 none;
color: #fff;
font-size: 21px;
line-height: 14px;
padding: 0;
border-radius: 2px;
cursor: pointer;
}
</style>
<script>
jQuery(document).ready(function($) {
$('table#role-select').append('<button type="button" class="button button-default add-new-roles" >Add new</button>');
$('.form-table').on('click','.remove-this-row', function(){
$(this).parent().parent().remove();
});
$('table#role-select').on('click','.add-new-roles',function(){
cont = $('tr.role-selector').html();
$('table#role-select tbody').append('<tr>'+cont+'</tr>');
});
});
</script>
<?php
}