original_string: public function delete_instance($instance) {
          global $DB;
  
          $name = $this->get_name();
          if ($instance->enrol !== $name) {
              throw new coding_exception('invalid enrol instance!');
          }
  
          //first unenrol all users
          $participants = $DB->get_recordset('user_enrolments', array('enrolid'=>$instance->id));
          foreach ($participants as $participant) {
              $this->unenrol_user($instance, $participant->userid);
          }
          $participants->close();
  
          // now clean up all remainders that were not removed correctly
          if ($gms = $DB->get_records('groups_members', array('itemid' => $instance->id, 'component' => 'enrol_' . $name))) {
              foreach ($gms as $gm) {
                  groups_remove_member($gm->groupid, $gm->userid);
              }
          }
          $DB->delete_records('role_assignments', array('itemid'=>$instance->id, 'component'=>'enrol_'.$name));
          $DB->delete_records('user_enrolments', array('enrolid'=>$instance->id));
  
          // finally drop the enrol row
          $DB->delete_records('enrol', array('id'=>$instance->id));
  
          $context = context_course::instance($instance->courseid);
          \core\event\enrol_instance_deleted::create_from_record($instance)->trigger();
  
          // Invalidate all enrol caches.
          $context->mark_dirty();
      }
code: public function delete_instance($instance) {
          global $DB;
  
          $name = $this->get_name();
          if ($instance->enrol !== $name) {
              throw new coding_exception('invalid enrol instance!');
          }
  
          //first unenrol all users
          $participants = $DB->get_recordset('user_enrolments', array('enrolid'=>$instance->id));
          foreach ($participants as $participant) {
              $this->unenrol_user($instance, $participant->userid);
          }
          $participants->close();
  
          // now clean up all remainders that were not removed correctly
          if ($gms = $DB->get_records('groups_members', array('itemid' => $instance->id, 'component' => 'enrol_' . $name))) {
              foreach ($gms as $gm) {
                  groups_remove_member($gm->groupid, $gm->userid);
              }
          }
          $DB->delete_records('role_assignments', array('itemid'=>$instance->id, 'component'=>'enrol_'.$name));
          $DB->delete_records('user_enrolments', array('enrolid'=>$instance->id));
  
          // finally drop the enrol row
          $DB->delete_records('enrol', array('id'=>$instance->id));
  
          $context = context_course::instance($instance->courseid);
          \core\event\enrol_instance_deleted::create_from_record($instance)->trigger();
  
          // Invalidate all enrol caches.
          $context->mark_dirty();
      }
code_tokens: public function delete_instance ( $ instance ) { global $ DB ; $ name = $ this -> get_name ( ) ; if ( $ instance -> enrol !== $ name ) { throw new coding_exception ( 'invalid enrol instance!' ) ; } //first unenrol all users $ participants = $ DB -> get_recordset ( 'user_enrolments' , array ( 'enrolid' => $ instance -> id ) ) ; foreach ( $ participants as $ participant ) { $ this -> unenrol_user ( $ instance , $ participant -> userid ) ; } $ participants -> close ( ) ; // now clean up all remainders that were not removed correctly if ( $ gms = $ DB -> get_records ( 'groups_members' , array ( 'itemid' => $ instance -> id , 'component' => 'enrol_' . $ name ) ) ) { foreach ( $ gms as $ gm ) { groups_remove_member ( $ gm -> groupid , $ gm -> userid ) ; } } $ DB -> delete_records ( 'role_assignments' , array ( 'itemid' => $ instance -> id , 'component' => 'enrol_' . $ name ) ) ; $ DB -> delete_records ( 'user_enrolments' , array ( 'enrolid' => $ instance -> id ) ) ; // finally drop the enrol row $ DB -> delete_records ( 'enrol' , array ( 'id' => $ instance -> id ) ) ; $ context = context_course :: instance ( $ instance -> courseid ) ; \ core \ event \ enrol_instance_deleted :: create_from_record ( $ instance ) -> trigger ( ) ; // Invalidate all enrol caches. $ context -> mark_dirty ( ) ; }
docstring: Delete course enrol plugin instance, unenrol all users.
  @param object $instance
  @return void
docstring_tokens: Delete course enrol plugin instance unenrol all users .