Para efetuar inscrição do aluno no curso a partir da versão 2.x do Moodle, execute os seguintes passos:
1º Passo - Recuperar identificador método de Inscrição do curso
SELECT id FROM mdl_enrol WHERE courseid=? AND enrol='manual'
Passe parâmetro id do curso em courseid=?
2º Passo - Vincular usuário ao método de inscrição
INSERT INTO mdl_user_enrolments (status,enrolid,userid,timestart,timeend,timecreated,timemodified) VALUES (?,?,?,?,?,?,?)
No enrolid passe o valor retornado no 1° passo
3º Passo - Recuperar Id do contexto do curso
SELECT id FROM mdl_context WHERE instanceid=? AND contextlevel=50
Passe parâmetro id do curso em instanceid=?
4º Passo - Efetuar inscrito na tabela que gerencia perfil
INSERT INTO mdl_role_assignments (roleid,contextid,userid,timemodified) VALUES (?,?,?,?)
No contextid passe o valor retornado no 3° passo
Veja também
Tabelas que registram matrícula no curso no Moodle
http://comunidade.badiu.com.br/mod/forum/discuss.php?d=201
Arquitetura do Banco de Dados do Moodle 3 (Palestra no Moodle 11° Moot 2015)
http://www.badiu.net/download/moodlemoot/2015/arquitetura_banco_moodle_3.ppt
Desenvolvimento para Moodle: estrutura do banco de dados e principais API (Palestra no Moodle 7° Moot 2013)
http://www.badiu.net/blogger/moodlesql/desenvolimento_para_moodle.ppt
Comentário no Blog MoodleSQl
http://moodlesql.blogspot.com.br/2010/07/matricular-usuario-no-curso-do-moodle.html?showComment=1317436246579#c1869475564775276003