2017-04-11 48 views

回答

1

您的問題是1中的2。您在詢問如何識別未在一段時間內登錄的用戶以及如何向他們發送電子郵件。我將相應地分開回答。所有這些都可以通過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); 
+0

您應該使用Moodle的數據操作API(https://開頭的文檔。 moodle.org/dev/Data_manipulation_API)來訪問數據庫,而不是上面給出的功能。例如'$ userObj = $ DB-> get_record('user',array('id'=> $ userID));' –

+0

這很整潔,我沒有意識到。感謝分享,我會研究並更新我的文章!我從來沒有使用Moodle,但爲此研究讓我感興趣。 –

相關問題