我有2个courses
,其中包含不同的活动,users
enrolled
为delete
。
在完全mdl_course_completions
某个用户之后,用户课程完成的数据仍在表mdl_course_completions
中。
用户不会参加课程,不会保留成绩,只保留完成数据。
我不希望每次都从table
中的database
{{1}}手动删除用户。
代码中是否有解决方法?
答案 0 :(得分:1)
您是否通过SQL查询直接删除用户?我建议始终使用核心方法(即调用调用delete_user($ user)的脚本),以便插件能够从各自的表中删除任何剩余数据。
根据您删除用户和Moodle版本的方式,以下内容可能有用:
如果您的意思是通过前端删除用户,那么您可以挂钩核心事件API以运行其他清理任务
具体来说,您可以使用'user_deleted'事件。您需要设置一个观察器来设置自定义脚本的回调,即
$observers = array(
array(
'eventname' => '\core\event\user_deleted',
'includefile' => '/path/to/file',
'callback' => 'delete_cleanup',
),
);