show_choose_audience = FALSE;
$this->title = $title;
$this->content = $content;
}
public function choose_audience() {
return FALSE;
}
public function confirm() {
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
$aContents = oos_get_content();
$mail_result = $dbconn->Execute("SELECT COUNT(*) AS total FROM " . $oostable['newsletter_recipients'] . " WHERE status = '1'");
$mail = $mail_result->fields;
$confirm_string = '
' . "\n" .
' ' . "\n" .
' ' . sprintf(TEXT_COUNT_CUSTOMERS, $mail['total']) . ' | ' . "\n" .
'
' . "\n" .
' ' . "\n" .
' | ' . "\n" .
'
' . "\n" .
' ' . "\n" .
' ' . $this->title . ' | ' . "\n" .
'
' . "\n" .
' ' . "\n" .
' | ' . "\n" .
'
' . "\n" .
' ' . "\n" .
' ' . nl2br($this->content) . ' | ' . "\n" .
'
' . "\n" .
' ' . "\n" .
' | ' . "\n" .
'
' . "\n" .
' ' . "\n" .
' ' . oos_button(IMAGE_SEND) . ' ' . oos_button(BUTTON_CANCEL) . ' | ' . "\n" .
'
' . "\n" .
'
';
return $confirm_string;
}
public function send($newsletter_id) {
// (Re)create it, if it's gone missing
if ( !is_object( $mail ) || !is_a( $mail, 'PHPMailer' ) ) {
require_once MYOOS_INCLUDE_PATH . '/includes/lib/phpmailer/class.phpmailer.php';
require_once MYOOS_INCLUDE_PATH . '/includes/lib/phpmailer/class.smtp.php';
// Instantiate a new mail object
$mail = new PHPMailer( true );
}
// Empty out the values that may be set
$oEmail->ClearAllRecipients();
$oEmail->ClearAttachments();
$oEmail->ClearCustomHeaders();
$oEmail->ClearReplyTos();
/*
$sLang = ...;
$oEmail->PluginDir = OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/';
$oEmail->SetLanguage( $sLang, OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/language/' );
*/
$oEmail->CharSet = CHARSET;
$oEmail->IsMail();
$oEmail->From = STORE_OWNER_EMAIL_ADDRESS;
$oEmail->FromName = STORE_OWNER;
$oEmail->Mailer = EMAIL_TRANSPORT;
// Add smtp values if needed
if ( EMAIL_TRANSPORT == 'smtp' ) {
$oEmail->IsSMTP(); // set mailer to use SMTP
$oEmail->SMTPAuth = OOS_SMTPAUTH; // turn on SMTP authentication
$oEmail->Username = OOS_SMTPUSER; // SMTP username
$oEmail->Password = OOS_SMTPPASS; // SMTP password
$oEmail->Host = OOS_SMTPHOST; // specify main and backup server
} else
// Set sendmail path
if ( EMAIL_TRANSPORT == 'sendmail' ) {
if (!oos_empty(OOS_SENDMAIL)) {
$oEmail->Sendmail = OOS_SENDMAIL;
$oEmail->IsSendmail();
}
}
$oEmail->Subject = $this->title;
// Get database information
$dbconn =& oosDBGetConn();
$oostable =& oosDBGetTables();
$sql = "SELECT customers_gender, customers_firstname, customers_lastname, customers_email_address
FROM " . $oostable['newsletter_recipients'] . "
WHERE status = '1'";
$mail_result = $dbconn->Execute($sql);
while ($mail = $mail_result->fields) {
$oEmail->Body = $this->content;
$oEmail->AddAddress($mail['customers_email_address'], $mail['customers_firstname'] . ' ' . $mail['customers_lastname']);
$oEmail->Send();
// Clear all addresses and attachments for next loop
$oEmail->ClearAddresses();
$oEmail->ClearAttachments();
// Move that ADOdb pointer!
$mail_result->MoveNext();
}
$newsletter_id = oos_db_prepare_input($newsletter_id);
$dbconn->Execute("UPDATE " . $oostable['newsletters'] . " SET date_sent = now(), status = '1' WHERE newsletters_id = '" . oos_db_input($newsletter_id) . "'");
}
}