Come aggiungere interruzioni di riga a $email['body'] utilizzando l'hook auto_core_update_email

23 feb 2018, 10:58:32
Visualizzazioni: 14.9K
Voti: 2

Sto utilizzando l'hook auto_core_update_email per modificare l'email di aggiornamento automatico inviata da WordPress. Tuttavia non riesco a capire come aggiungere interruzioni di riga al corpo dell'email. Ecco il mio codice:

function example_filter_auto_update_email($email) {
    $email['to'] = array('example@example.com', 'test@example.com');
    $email['subject'] = 'Aggiornamento Automatico';
    $email['body'] = 'Ciao,%0D%0A'
      . 'Lorem ipsum.%0D%0A'
      . 'Grazie mille,%0D%0A'
      . 'WordPress';

    return $email;
}

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

Ho anche provato a usare: <br />, \r\n, oltre a %0D%0A, come mostrato sopra. Tuttavia, in ogni caso la stringa viene semplicemente stampata nel mio client email in questo modo:

Ciao%0D%0ALorem Ipsum%0D%0AGrazie mille%0D%0AWordPress

Come posso ottenere delle interruzioni di riga nelle mie email di aggiornamento automatico? Se può aiutare, le email vengono inviate via SMTP.

Grazie mille!

0
Tutte le risposte alla domanda 2
0

Non utilizzare apici singoli con sequenze di escape come \r, \n e così via. Usa i doppi apici:

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

Vedi Stringhe con doppi apici in PHP.

23 feb 2018 12:33:08
2

Oltre a usare "\n", potresti anche utilizzare la costante di fine riga di PHP: PHP_EOL

    $email['body'] = 'Ciao,%0D%0A' . PHP_EOL
  . 'Lorem ipsum.%0D%0A' . PHP_EOL
  . 'Grazie mille,%0D%0A' . PHP_EOL
  . 'WordPress';
23 feb 2018 16:04:58
Commenti

tieni presente che PHP_EOL !== "\n" a seconda della piattaforma da cui viene inviata l'email e quella su cui viene letta. Molto probabilmente non ha impatto nei software email moderni, ma vale la pena tenerlo a mente.

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

sì, probabilmente è meglio usare "\n" per le email in questo caso.

majick majick
24 feb 2018 01:33:17