#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);