Cómo añadir saltos de línea a $email['body'] usando el hook auto_core_update_email

23 feb 2018, 10:58:32
Vistas: 14.9K
Votos: 2

Estoy usando el hook auto_core_update_email para modificar el correo de actualización automática enviado por WordPress. Sin embargo, no puedo encontrar la manera de añadir saltos de línea al cuerpo del correo. Aquí está mi código:

function example_filter_auto_update_email($email) {
    $email['to'] = array('example@example.com', 'test@example.com');
    $email['subject'] = 'Actualización Automática';
    $email['body'] = 'Hola,%0D%0A'
      . 'Lorem ipsum.%0D%0A'
      . 'Muchas gracias,%0D%0A'
      . 'WordPress';

    return $email;
}

add_filter('auto_core_update_email', 'example_filter_auto_update_email', 1);

También he intentado usar: <br />, \r\n, así como %0D%0A, como se ve arriba. Sin embargo, en cada caso el texto aparece en mi cliente de correo de esta manera:

Hola%0D%0ALorem Ipsum%0D%0AMuchas gracias%0D%0AWordPress

¿Cómo puedo conseguir que se muestren los saltos de línea en mis correos de actualización automática? Si ayuda, los correos se envían por SMTP.

¡Muchas gracias!

0
Todas las respuestas a la pregunta 2
0

No utilices comillas simples con secuencias de escape como \r, \n y similares. Usa comillas dobles:

$a = 'Hello, ' . "\n";
$b = "Good Bye, \n";

Consulta Cadenas entre comillas dobles en PHP.

23 feb 2018 12:33:08
2

Además de usar "\n", también puedes usar la constante de fin de línea de PHP: PHP_EOL

    $email['body'] = 'Hola,%0D%0A' . PHP_EOL
  . 'Lorem ipsum.%0D%0A' . PHP_EOL
  . 'Muchas gracias,%0D%0A' . PHP_EOL
  . 'WordPress';
23 feb 2018 16:04:58
Comentarios

ten en cuenta que PHP_EOL !== "\n" dependiendo de la plataforma desde la que se envía el correo y en la que se está leyendo. Lo más probable es que no tenga impacto en software de correo moderno, pero vale la pena tenerlo presente.

Mark Kaplun Mark Kaplun
23 feb 2018 16:24:47

sí, probablemente sea mejor usar "\n" para correos electrónicos entonces.

majick majick
24 feb 2018 01:33:17