コース登録(学生ロール)時のwelcomeメール

コース登録(学生ロール)時のwelcomeメール

by 修子 千秋 -
Number of replies: 2

いつもお世話になっております。

ユーザ(登録メソッドは手動)を学生ロールでコース登録した時にWelcomeメールをユーザに自動配信したいのですが、実現されている方、方法など差支えのない範囲でご教授願えませんでしょうか。
環境は下記です。

Moodle3.9
PHP7.4
Ubuntu20

https://moodle.org/mod/forum/discuss.php?d=108292

https://moodle.org/plugins/enrol_notificationeabc

上記はどちらもチェックはしましたが、ちょっと情報が古いかなと思い試していません。
もし試された方いらっしゃいましたら結果を教えていただけると幸いです。

Dialogueプラグインを使った方法が検索でひっかかりますが、メールではないので適用外と考えています。

よろしくお願いいたします。

Average of ratings: -
In reply to 修子 千秋

Re: コース登録(学生ロール)時のwelcomeメール

by Mitsuhiro Yoshida -
Picture of Developers Picture of Particularly helpful Moodlers Picture of Translators

以下のプログラム修正をお試しになってはいかがでしょうか。

修正対象プログラム:
enrol/manual/ajax.php

修正箇所:
42行目

[ 修正前 ]
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
$context = context_course::instance($course->id, MUST_EXIST);

if ($course->id == SITEID) {

[ 修正後 ]
$course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
$context = context_course::instance($course->id, MUST_EXIST);

$a = new stdClass();
$a->coursename = format_string($course->fullname, true, array('context'=>$context));
$a->profileurl = "$CFG->wwwroot/user/view.php?id=$user->id&course=$course->id";

if ($course->id == SITEID) {

-----------

修正対象プログラム:
enrol/manual/ajax.php

修正箇所:
166行目

[ 修正前 ]
        $plugin = $plugins[$instance->enrol];
        if ($plugin->allow_enrol($instance) && has_capability('enrol/'.$plugin->get_name().':enrol', $context)) {
            foreach ($users as $user) {
                $plugin->enrol_user($instance, $user->id, $roleid, $timestart, $timeend, null, $recovergrades);
            }
            $outcome->count += count($users);

[ 修正後 ]
        $plugin = $plugins[$instance->enrol];
        if ($plugin->allow_enrol($instance) && has_capability('enrol/'.$plugin->get_name().':enrol', $context)) {
            foreach ($users as $user) {
                $plugin->enrol_user($instance, $user->id, $roleid, $timestart, $timeend, null, $recovergrades);
                $subject = get_string('welcometocourse', 'enrol_self', $a->coursename);
                $fullmessage = get_string('welcometocoursetext', 'enrol_self', $a);
                $supportuser = core_user::get_support_user();
                email_to_user($user,$supportuser,$subject,$fullmessage);
           }
            $outcome->count += count($users);

                                    
In reply to Mitsuhiro Yoshida

Re: コース登録(学生ロール)時のwelcomeメール

by 修子 千秋 -
Yoshida様

有用な情報ありがとうございます。
うまくメール送信できそうです、$aの中身を増やして本文をenrol_manual独自のものを作成するなど、もう少し色々やってみようと思います。

この度はとても助かりました、ありがとうございました。