Как добавить переносы строк в $email['body'] при использовании хука auto_core_update_email

23 февр. 2018 г., 10:58:32
Просмотры: 14.9K
Голосов: 2

Я использую хук auto_core_update_email для изменения автоматического письма об обновлении в WordPress. Однако я не могу понять, как добавить переносы строк в тело письма. Вот мой код:

function example_filter_auto_update_email($email) {
    $email['to'] = array('example@example.com', 'test@example.com');
    $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);

Я также пробовал использовать: <br />, \r\n, а также %0D%0A, как показано выше. Однако в каждом случае строка просто выводится в моем почтовом клиенте в таком виде:

Hello%0D%0ALorem Ipsum%0D%0AMany thanks%0D%0AWordPress

Как я могу получить переносы строк в письмах автообновления? Если это важно, письма отправляются через SMTP.

Большое спасибо!

0
Все ответы на вопрос 2
0

Не используйте одинарные кавычки с escape-последовательностями, такими как \r, \n и т.д. Используйте двойные кавычки:

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

Смотрите Строки в двойных кавычках в PHP.

23 февр. 2018 г. 12:33:08
2

Помимо использования "\n", вы также можете использовать константу конца строки в PHP: PHP_EOL

    $email['body'] = 'Привет,%0D%0A' . PHP_EOL
  . 'Lorem ipsum.%0D%0A' . PHP_EOL
  . 'Спасибо,%0D%0A' . PHP_EOL
  . 'WordPress';
23 февр. 2018 г. 16:04:58
Комментарии

имейте в виду, что PHP_EOL !== "\n" в зависимости от платформы, с которой отправляется письмо и на которой оно читается. Скорее всего, это не имеет значения в современном почтовом ПО, но стоит держать в уме.

Mark Kaplun Mark Kaplun
23 февр. 2018 г. 16:24:47

да, вероятно, для email лучше придерживаться "\n".

majick majick
24 февр. 2018 г. 01:33:17