Example #1
0
 /**
  * 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);
 }