Если ваша функция display_message()
что-то повторяет, вам нужно использовать буферизацию вывода, чтобы захватить результат и добавить его в переменную $c
. В противном случае это будет отражено сразу.
Редактировать: С буферизацией вывода:
ob_start();
display_message($message);
$c .= ob_get_contents(); // adding output to the variable
ob_end_clean();
Возможно, лучшим вариантом будет display_message()
вернуть строку и добавить эту строку в $c
.
Исходя из ваших правок, я бы просто изменил функцию на:
function display_message( $message = false ) {
if( is_wp_error( $message ) ) {
return '<div class="errorMessage"><p>' . $message->get_error_message() . '</p></div>';
}
elseif ($message != '') {
return '<div class="successMessage"><p>' . $message . '</p></div>';
}
return NULL;
}
и сделайте:
$c .= display_message($message);