web-dev-qa-db-fra.com

Comment ajouter des sauts de ligne à $ email ['body'] lors de l'utilisation du hook auto_core_update_email

J'utilise le hook auto_core_update_email pour modifier le courrier électronique de mise à jour automatique envoyé par WordPress. Cependant, je ne sais pas comment ajouter des sauts de ligne au corps de l'e-mail. Voici mon code:

function example_filter_auto_update_email($email) {
    $email['to'] = array('[email protected]', '[email protected]');
    $email['subject'] = 'Auto Update';
    $email['body'] = 'Hello,%0D%0A'
      . 'Lorem ipsum.%0D%0A'
      . 'Many thanks,%0D%0A'
      . 'WordPress';

    return $email;
}

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

J'ai aussi essayé d'utiliser: <br />, \r\n, ainsi que %0D%0A, vu ci-dessus. Cependant, dans chaque cas, la chaîne est simplement imprimée dans mon client de messagerie comme ceci:

Bonjour% 0D% 0ALorem Ipsum% 0D% 0AMany merci% 0D% 0AWordPress

Comment puis-je obtenir des sauts de ligne imprimés dans mes courriels de mise à jour automatique? Si cela aide, les courriels sont envoyés par SMTP.

Merci beaucoup!

1
AlastairHoward

N'utilisez pas de guillemets simples avec des séquences d'échappement telles que \r, \n et ainsi de suite. Utilisez des guillemets doubles:

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

Voir Les chaînes entre guillemets dans PHP .

2
Max Yudin

En plus d'utiliser "\n", vous pouvez également utiliser la constante de fin de ligne de PHP: PHP_EOL

    $email['body'] = 'Hello,%0D%0A' . PHP_EOL
  . 'Lorem ipsum.%0D%0A' . PHP_EOL
  . 'Many thanks,%0D%0A' . PHP_EOL
  . 'WordPress';
1
majick