如何通知用户他们从一开始就连接到课程

How to notify users their connected time to a course since begining

我想知道是否有插件或以某种方式通过电子邮件通知 moodle 用户,如果他们自 xxxx 日期以来没有连接以完成课程。

有没有办法通过 cron 等自动完成此操作?

谢谢。

你的问题是二合一。你问的是如何识别一段时间未登录的用户,以及如何向他们发送电子邮件。我将相应地部分回答。所有这些都可以通过 cron 来完成,但我不使用 Moodle,所以我不知道你可以使用哪些插件。

他是一个查询示例,可以识别 180 天内未登录的用户(但会忽略从未登录过的用户)。

SELECT * FROM mdl_user 
WHERE lastlogin < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 180 DAY))
AND lastlogin != 0
AND lastaccess < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 180 DAY))
AND deleted = 0

现在是电子邮件位。根据 Google,Moodle 使用 PHPMailer 作为其 email_to_user() 函数。在 PHP:

中使用这个的例子
email_to_user($toUser, $fromUser, $subject, $messageText, $messageHtml, '', '', true);

$toUser 和 $fromUser 应该是 Moodle 用户对象,而不是电子邮件地址。遍历您的查询结果以构建这些对象将是所有剩下要做的事情。

最后提示:要根据查询的每个结果获取用户对象,您可以像这样使用 get_record 函数:

$userObj = get_record("user", "id", $userID);