Функция не работает внутри тела почты PHP

Я использую это для отправки основного электронного письма:

// Email details
$name = 'Davo';
$recipient = '[email protected]';
$from = '[email protected]'
$subject = 'Testing';

// All plugins
function the_plugins() {
    $the_plugs = get_option('active_plugins'); 
    foreach($the_plugs as $key => $value) { 
        $string = explode('/',$value); print $string[0] . '<br />';
    }
}

// Message
$body = '<p>Hello' . $name . ',</p>';
$body .= '<p>Your website has these plugins:</p>';
$body .= the_plugins();
$body .= '<p>Have a nice day.</p>';

$headers[]  = 'Content-type:text/html;charset=UTF-8';
$headers[]  = 'From' . $name. ' <' . $from . '>';
$headers[]  = 'Reply-To: ' . $from;
$headers[]  = 'MIME-Version: 1.0';
wp_mail($recipient, $subject, $body, $headers);

Единственное, что не работает, так это то, что функция the_plugins() ничего не показывает в пришедшем электронном письме. Вместо этого он просто пуст в строке, где я ожидаю увидеть список плагинов, и выглядит так:

Hello Davo,
Your website has these plugins:

Have a nice day.

К вашему сведению the_plugins() функция работает. Я могу echo the_plugins(); exit; сразу после функции, и она возвращает список плагинов, так что проблема не в самой функции.

Любые предложения о том, как обойти это?

Возврат строки из функции. И удалите оператор печати.

Shoyeb Sheikh 09.03.2019 04:44

@ShoyebSheikh ты имеешь в виду вот так: return $string = explode('/',$value); print $string[0] . '<br />'; Если я это сделаю, он вернется Array

User_FTW 09.03.2019 04:47

я отправил ответ

Shoyeb Sheikh 09.03.2019 04:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это,

function the_plugins() {
    $the_plugs = get_option('active_plugins'); 
    $plugins = '';
    foreach($the_plugs as $key => $value) { 
        $string = explode('/',$value); 
        $plugins .= $string[0] . '<br />';
    }
   return $plugins;
}

Другие вопросы по теме