/** * Send an email notification to a user * * @static * @since 1.1.0 * @param string $user_id User object_id * @param string $subject Email subject line * @param string $message Email body */ public static function notify_user($user_id, $subject, $message, $short_text = null) { $error = new argent_error(); if (!class_exists('PHPMailer')) { $error->add('1042', 'PHPMailer is not available', NULL, 'argent_notification'); } if ($error->has_errors()) { return $error; } $mail = new PHPMailer(); $mail->AddReplyTo(NOTIFICATION_FROM_MAIL, NOTIFICATION_FROM_NAME); $mail->SetFrom(NOTIFICATION_FROM_MAIL, NOTIFICATION_FROM_NAME); $user_data = argent_uauth::user_get_data($user_id); if (argent_error::check($user_data)) { return $user_data; } $mail->AddAddress($user_data['email'], $user_data['display_name']); $mail->Subject = $subject; $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test $merge_fields = array('user_name' => $user_data['display_name'], 'email' => $user_data['email'], 'body' => $message, 'subject' => $subject, 'intro' => $short_text); $message_body = self::merge_template(ABSOLUTE_PATH . 'argent/html_email_templates/basic.html', $merge_fields); if (argent_error::check($message_body)) { return $message_body; } $mail->MsgHTML($message_body); if (!$mail->Send()) { $error->add('1040', 'Error sending mail', $mail->ErrorInfo, 'argent_notification'); return $error; } else { return 'Mail sent to ' . $user_data['email']; } }