Estoy ejecutando Moodle y tengo un maestro que recibe un correo electrónico de notificación cada vez que un estudiante se inscribe en un curso (a través de la inscripción de PayPal).
El contenido del correo electrónico proviene de lang/en/enrol.php:
$string['enrolmentnewuser'] = '{$a->user} has enrolled in course "{$a->course}";Lo que estoy tratando de hacer es incluir la dirección de correo electrónico del estudiante en esto, para que el maestro haga referencia.
Esto es lo que he intentado:
$string['enrolmentnewuser'] = '{$a->user} has enrolled in course "{$a->course}". Student\'s email address: {$a->email}';Para que esta variable $a->email esté disponible, ingresé a la función que obtiene el contenido del correo electrónico: enrol/flatfile/lib.php::process_records()
Dentro de process_records(), agregué lo siguiente:
$a->email = $user->email;Pongo esto directamente después de estas líneas:
$a = new stdClass(); $a->course = format_string($course->fullname, true, array('context' => $context)); $a->user = fullname($user);y antes de esta línea, que obtiene el contenido del correo electrónico:
$eventdata->fullmessage = get_string('enrolmentnewuser', 'enrol', $a);Pensaría que el objeto $a ahora contendría mi nueva propiedad 'correo electrónico', a la que se podría acceder en la cadena 'registronuevousuario'.
He borrado el caché después de mis actualizaciones.
Desafortunadamente, este es el correo electrónico que el maestro está recibiendo ahora:
El estudiante se ha inscrito en el curso "Curso de prueba". Dirección de correo electrónico del estudiante: {$a->email}
Parece que $a->email no está intercambiando la propiedad real en el mensaje. Por mi vida, no he podido averiguar por qué no funciona. Ha sido difícil depurar, ya que tengo que seguir inscribiéndome y desinscribiéndome en el curso de prueba, lo cual es frustrante.
¿Alguien tiene alguna idea de por qué esto está imprimiendo el nombre de la propiedad $a->email literalmente, en lugar de la propiedad real?
En su caso, debe agregar la siguiente línea al archivo enrol/paypal/ipn.php también.
$a->email = $user->email;poner esto directamente después de estas líneas:
$a->course = format_string($course->fullname, true, array('context' => $coursecontext)); $a->user = fullname($user);