Электронная почта для зачисления в Moodle для учителей — Добавьте адрес электронной почты студента

#php #moodle

Вопрос:

Я запускаю Moodle, и у меня есть учитель, который получает уведомление по электронной почте в любое время, когда студент записывается на курс (через регистрацию PayPal).

Содержимое электронной почты поступает от lang/en/enrol.php:

 $string['enrolmentnewuser'] = '{$a->user} has enrolled in course "{$a->course}";
 

Что я пытаюсь сделать, так это включить в это адрес электронной почты ученика, чтобы учитель мог на него ссылаться.

Вот что я попробовал:

 $string['enrolmentnewuser'] = '{$a->user} has enrolled in course "{$a->course}". Student's email address: {$a->email}';
 

Чтобы сделать доступной эту переменную $a->email, я вошел в функцию, которая получает содержимое электронной почты: enrol/flatfile/lib.php::process_records()

Внутри process_records () я добавил следующее:

 $a->email = $user->email;
 

Я помещаю это прямо после этих строк:

 $a = new stdClass();
$a->course = format_string($course->fullname, true, array('context' => $context));
$a->user = fullname($user);
 

и перед этой строкой, которая получает содержимое электронной почты:

 $eventdata->fullmessage = get_string('enrolmentnewuser', 'enrol', $a);
 

Я бы подумал, что объект $a теперь будет содержать мое новое свойство «электронная почта», которое будет доступно в строке «пользователь для зачисления».

Я очистил кэш после обновлений.

К сожалению, это электронное письмо, которое сейчас получает учитель:

Студент поступил на курс «Тестовый курс». Адрес электронной почты студента: {$a->электронная почта}

Похоже, что электронное письмо $a->не заменяет фактическое свойство в сообщении. Хоть убей, я так и не смог понять, почему это не работает. Это было трудно отладить, так как я должен продолжать регистрироваться и не регистрироваться на тестовом курсе, что расстраивает.

У кого-нибудь есть какое-либо представление о том, почему это печатает имя свойства $a — >email буквально, а не фактическое свойство?

Ответ №1:

В вашем случае вам нужно добавить нижеприведенную строку в enrol/paypal/ipn.php файл также.

  $a->email = $user->email;
 

поставьте это сразу после этих строк:

  $a->course = format_string($course->fullname, true, array('context' => $coursecontext));
 $a->user = fullname($user);