diff --git a/public/communication/classes/hook_listener.php b/public/communication/classes/hook_listener.php index 82a25d19bb9..f359a8427b2 100644 --- a/public/communication/classes/hook_listener.php +++ b/public/communication/classes/hook_listener.php @@ -442,9 +442,10 @@ class hook_listener { courseid: $course->id, context: $coursecontext, ); - if ($communication->get_processor() !== null) { + $processor = $communication->get_processor(); + if ($processor?->supports_room_user_features()) { $communication->get_room_user_provider()->remove_members_from_room(userids: [$user->id]); - $communication->get_processor()->delete_instance_user_mapping(userids: [$user->id]); + $processor->delete_instance_user_mapping(userids: [$user->id]); } } else { // If group mode is set then handle the group communication rooms. @@ -454,9 +455,10 @@ class hook_listener { groupid: $coursegroup->id, context: $coursecontext, ); - if ($communication->get_processor() !== null) { + $processor = $communication->get_processor(); + if ($processor?->supports_room_user_features()) { $communication->get_room_user_provider()->remove_members_from_room(userids: [$user->id]); - $communication->get_processor()->delete_instance_user_mapping(userids: [$user->id]); + $processor->delete_instance_user_mapping(userids: [$user->id]); } }