From 56d9da1590131de69bd1dffcd1614d1d38c00253 Mon Sep 17 00:00:00 2001 From: Joost de Valk Date: Tue, 31 Mar 2026 21:24:03 +0200 Subject: [PATCH 1/2] Replace wp_dropdown_users with AJAX-powered user search Replace the comment notification recipient dropdown with an AJAX search field to prevent high memory usage on sites with many users. Fixes #190 Co-Authored-By: Claude Opus 4.6 (1M context) --- admin/admin.php | 104 ++++++++++++++++++++++++++++++--- admin/assets/js/user-search.js | 75 ++++++++++++++++++++++++ 2 files changed, 170 insertions(+), 9 deletions(-) create mode 100644 admin/assets/js/user-search.js diff --git a/admin/admin.php b/admin/admin.php index c2ee737..89802c7 100644 --- a/admin/admin.php +++ b/admin/admin.php @@ -68,6 +68,8 @@ public function __construct() { \add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_discussion_settings_script' ] ); + \add_action( 'wp_ajax_ch_search_users', [ $this, 'ajax_search_users' ] ); + new Comment_Parent(); } @@ -240,17 +242,71 @@ public function register_meta_boxes(): void { * @return void */ public function meta_box_callback( $post ): void { + $selected_id = (int) \get_post_meta( $post->ID, self::NOTIFICATION_RECIPIENT_KEY, true ); + $selected_name = ''; + + if ( $selected_id > 0 ) { + $user = \get_userdata( $selected_id ); + if ( $user ) { + $selected_name = $user->display_name; + } + } + ?> -