Moodle中已删除的用户仍会出现在课程完成表中

时间:2015-11-03 17:18:01

标签: php mysql moodle

我有2个courses,其中包含不同的活动,users enrolleddelete

在完全mdl_course_completions某个用户之后,用户课程完成的数据仍在表mdl_course_completions中。

用户不会参加课程,不会保留成绩,只保留完成数据。

我不希望每次都从table中的database {{1}}手动删除用户。 代码中是否有解决方法?

1 个答案:

答案 0 :(得分:1)

您是否通过SQL查询直接删除用户?我建议始终使用核心方法(即调用调用delete_user($ user)的脚本),以便插件能够从各自的表中删除任何剩余数据。

根据您删除用户和Moodle版本的方式,以下内容可能有用:

如果您的意思是通过前端删除用户,那么您可以挂钩核心事件API以运行其他清理任务

Events API documentation

具体来说,您可以使用'user_deleted'事件。您需要设置一个观察器来设置自定义脚本的回调,即

$observers = array(

    array(
        'eventname'   => '\core\event\user_deleted',
        'includefile' => '/path/to/file',
        'callback'    => 'delete_cleanup',
    ),

);

More information on event observers