%d ', $user_id, $user_id, esc_attr__( 'Copy ID', 'user-id' ) ); } return $val; } /** * Make User ID column sortable. * * @param array $columns Sortable columns. * @return array */ public function make_user_id_column_sortable( $columns ) { $columns['user_id'] = 'ID'; return $columns; } /** * Handle sorting behavior for User ID. * * @param WP_User_Query $query The current user query object. */ public function handle_user_id_column_sorting( $query ) { if ( ! is_admin() || ! function_exists( 'get_current_screen' ) ) { return; } $screen = get_current_screen(); // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( $screen && 'users' === $screen->id && isset( $_GET['orderby'] ) && 'ID' === $_GET['orderby'] ) { $query->set( 'orderby', 'ID' ); } } /** * Display User ID on profile edit pages. * * @param WP_User $user The WP_User object. */ public function display_user_id_on_profile( $user ) { ?>

esc_html__( 'Copied!', 'user-id' ) ) ); } /** * Add Settings page. */ public function add_settings_page() { add_options_page( esc_html__( 'User ID Settings', 'user-id' ), esc_html__( 'User ID', 'user-id' ), 'manage_options', 'user-id-settings', array( $this, 'render_settings_page' ) ); } /** * Register plugin settings. */ public function register_settings() { register_setting( 'user_id_options_group', 'user_id_support_mode', array( 'type' => 'boolean', 'sanitize_callback' => 'absint', 'default' => 0, ) ); add_settings_section( 'user_id_main_section', esc_html__( 'Main Settings', 'user-id' ), null, 'user-id-settings' ); add_settings_field( 'user_id_support_mode', esc_html__( 'Enable Support Mode', 'user-id' ), array( $this, 'render_support_mode_field' ), 'user-id-settings', 'user_id_main_section' ); } /** * Render Support Mode field. */ public function render_support_mode_field() { $value = get_option( 'user_id_support_mode', 0 ); ?>

ID ); $edit_url = get_edit_user_link( $current_user->ID ); // If we are looking at a specific user in the admin, use that user instead // phpcs:ignore WordPress.Security.NonceVerification.Recommended if ( is_admin() && isset( $_GET['user_id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended $viewed_user_id = intval( $_GET['user_id'] ); $user_obj = get_userdata( $viewed_user_id ); if ( $user_obj ) { $current_user = $user_obj; $debug_url = admin_url( 'tools.php?page=user-id-debug&user_id=' . $current_user->ID ); $edit_url = get_edit_user_link( $current_user->ID ); } } $wp_admin_bar->add_node( array( 'id' => 'user-id-support', 'title' => '' . esc_html__( 'User Debug', 'user-id' ) . '', 'href' => $debug_url, 'meta' => array( 'class' => 'user-id-support-menu', ), ) ); $wp_admin_bar->add_node( array( 'id' => 'user-id-support-id', 'parent' => 'user-id-support', /* translators: %d: User ID */ 'title' => sprintf( esc_html__( 'User ID: %d', 'user-id' ), $current_user->ID ), ) ); $roles = implode( ', ', $current_user->roles ); $wp_admin_bar->add_node( array( 'id' => 'user-id-support-role', 'parent' => 'user-id-support', /* translators: %s: User Roles */ 'title' => sprintf( esc_html__( 'Role(s): %s', 'user-id' ), $roles ?: 'None' ), ) ); $wp_admin_bar->add_node( array( 'id' => 'user-id-support-debug', 'parent' => 'user-id-support', 'title' => esc_html__( 'User Debug Page', 'user-id' ), 'href' => $debug_url, ) ); $wp_admin_bar->add_node( array( 'id' => 'user-id-support-edit', 'parent' => 'user-id-support', 'title' => esc_html__( 'Edit User', 'user-id' ), 'href' => $edit_url, ) ); } } new User_ID_Admin();