__( 'Online Members', 'wpforo' ), 'count' => 15, 'display_avatar' => true, 'groupids' => WPF()->usergroup->get_visible_usergroup_ids(), 'refresh_interval' => 0, ] ); if( is_string( $instance['groupids'] ) && wpforo_is_json( $instance['groupids'] ) ) { $instance['groupids'] = json_decode( $instance['groupids'], true ); } if( is_array( $instance['groupids'] ) ) { $instance['groupids'] = array_filter( array_map( 'intval', $instance['groupids'] ) ); } // wpForo OnlineMembers widget logic $data = [ 'boardid' => 0, 'action' => 'wpforo_load_ajax_widget_OnlineMembers', 'instance' => $instance, ]; if( WPF()->board->get_current( 'boardid' ) !== 0 ) $data['referer'] = home_url(); // We need to use the OnlineMembers widget class to get the HTML // To avoid duplicating logic, we can try to instantiate it or use its methods if possible. // However, the widget class is designed to be used as a WP_Widget. // Let's manually implement the HTML generation logic here, similar to get_widget() in OnlineMembers.php $online_members = WPF()->member->get_online_members( $instance['count'], $instance['groupids'] ); $html = ''; if( ! empty( $online_members ) ) { $html .= '