/** * Generate a HTML version of the message that will be sent through an email. * * @param string $subject The reason of the message that will be sent. * @param string $message Body of the message that will be sent. * @param array $data_set Optional parameter to add more information to the notification. * @return string The message formatted in a HTML template. */ private static function prettify_mail($subject = '', $message = '', $data_set = array()) { $prettify_type = isset($data_set['PrettifyType']) ? $data_set['PrettifyType'] : 'simple'; $template_name = 'notification-' . $prettify_type; $user = wp_get_current_user(); $display_name = ''; if ($user instanceof WP_User && isset($user->user_login) && !empty($user->user_login)) { $display_name = sprintf('User: %s (%s)', $user->display_name, $user->user_login); } // Format list of items when the event has multiple entries. if (strpos($message, 'multiple') !== false) { $message_parts = SucuriScanAPI::parse_multiple_entries($message); if (is_array($message_parts)) { $message = $prettify_type == 'pretty' ? $message_parts[0] . '<ul>' : $message_parts[0]; unset($message_parts[0]); foreach ($message_parts as $msg_part) { if ($prettify_type == 'pretty') { $message .= sprintf("<li>%s</li>\n", $msg_part); } else { $message .= sprintf("- %s\n", $msg_part); } } $message .= $prettify_type == 'pretty' ? '</ul>' : ''; } } $mail_variables = array('TemplateTitle' => 'Sucuri Alert', 'Subject' => $subject, 'Website' => self::get_option('siteurl'), 'RemoteAddress' => self::get_remote_addr(), 'Message' => $message, 'User' => $display_name, 'Time' => SucuriScan::current_datetime()); foreach ($data_set as $var_key => $var_value) { $mail_variables[$var_key] = $var_value; } return SucuriScanTemplate::get_section($template_name, $mail_variables); }