2023-01-23 11:03:31 +01:00

410 lines
16 KiB
PHP

<?php
/* ----------------------------------------------------------------------
MyOOS [Shopsystem]
https://www.oos-shop.de
Copyright (c) 2003 - 2019 by the MyOOS Development Team.
----------------------------------------------------------------------
Based on:
File: gv_mail.php,v 1.3.2.4 2003/05/12 22:54:01 wilt
----------------------------------------------------------------------
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2002 osCommerce
----------------------------------------------------------------------
Released under the GNU General Public License
---------------------------------------------------------------------- */
define('OOS_VALID_MOD', 'yes');
require 'includes/main.php';
require 'includes/functions/function_coupon.php';
require 'includes/classes/class_currencies.php';
require_once MYOOS_INCLUDE_PATH . '/includes/lib/htmlpurifier/library/HTMLPurifier.auto.php';
$currencies = new currencies();
$action = (isset($_GET['action']) ? $_GET['action'] : '');
if ( ($action == 'send_email_to_user') && ($_POST['customers_email_address'] || $_POST['email_to']) && (!$_POST['back_x']) ) {
switch ($_POST['customers_email_address']) {
case '***':
$customerstable = $oostable['customers'];
$mail_result = $dbconn->Execute("SELECT customers_firstname, customers_lastname, customers_email_address FROM $customerstable");
$mail_sent_to = TEXT_ALL_CUSTOMERS;
break;
/* todo Newsletter
case '**D':
$customerstable = $oostable['customers'];
$mail_result = $dbconn->Execute("SELECT customers_firstname, customers_lastname, customers_email_address FROM $customerstable WHERE customers_newsletter = '1'");
$mail_sent_to = TEXT_NEWSLETTER_CUSTOMERS;
break;
*/
default:
$customers_email_address = oos_db_prepare_input($_POST['customers_email_address']);
$customerstable = $oostable['customers'];
$mail_result = $dbconn->Execute("SELECT customers_firstname, customers_lastname, customers_email_address FROM $customerstable WHERE customers_email_address = '" . oos_db_input($customers_email_address) . "'");
$mail_sent_to = oos_db_prepare_input($_POST['customers_email_address']);
if ( (isset($_POST['email_to'])) && (!empty($_POST['email_to'])) ) {
$mail_sent_to = oos_db_prepare_input($_POST['email_to']);
}
break;
}
if ( ($action == 'send_email_to_user') && ($_POST['customers_email_address']) && (!$_POST['back_x']) ) {
while ($mail = $mail_result->fields) {
$id1 = oos_create_coupon_code($mail['customers_email_address']);
$message = oos_db_prepare_input($_POST['message']);
$message .= "\n\n" . TEXT_GV_WORTH . $currencies->format($_POST['amount']) . "\n\n";
$message .= TEXT_TO_REDEEM;
$message .= TEXT_WHICH_IS . $id1 . TEXT_IN_CASE . "\n\n";
$message .= OOS_HTTPS_SERVER . OOS_SHOP . 'index.php?content=' . $aCatalog['gv_redeem'] . '&gv_no=' . $id1 . "\n\n";
$message .= TEXT_OR_VISIT . OOS_HTTPS_SERVER . OOS_SHOP . TEXT_ENTER_CODE;
//Let's build a message object using the email class
$send_mail = new PHPMailer();
/*
$send_mail->PluginDir = OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/';
$sLang = (isset($_SESSION['iso_639_1']) ? $_SESSION['iso_639_1'] : 'en');
$send_mail->SetLanguage( $sLang, OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/language/' );
*/
$send_mail->CharSet = CHARSET;
$send_mail->IsMail();
$send_mail->From = $from_mail ? $from_mail : STORE_OWNER_EMAIL_ADDRESS;
$send_mail->FromName = $from_name ? $from_name : STORE_OWNER;
$send_mail->Mailer = EMAIL_TRANSPORT;
// Add smtp values if needed
if ( EMAIL_TRANSPORT == 'smtp' ) {
$send_mail->IsSMTP(); // set mailer to use SMTP
$send_mail->SMTPAuth = OOS_SMTPAUTH; // turn on SMTP authentication
$send_mail->Username = OOS_SMTPUSER; // SMTP username
$send_mail->Password = OOS_SMTPPASS; // SMTP password
$send_mail->Host = OOS_SMTPHOST; // specify main and backup server
} else
// Set sendmail path
if ( EMAIL_TRANSPORT == 'sendmail' ) {
if (!oos_empty(OOS_SENDMAIL)) {
$send_mail->Sendmail = OOS_SENDMAIL;
$send_mail->IsSendmail();
}
}
$send_mail->Subject = $subject;
$send_mail->Body = $message;
$send_mail->AddAddress($mail['customers_email_address'], $mail['customers_firstname'] . ' ' . $mail['customers_lastname']);
$send_mail->Send();
$send_mail->ClearAddresses();
$send_mail->ClearAttachments();
// Now create the coupon main and email entry
$couponstable = $oostable['coupons'];
$insert_result = $dbconn->Execute("INSERT INTO $couponstable (coupon_code, coupon_type, coupon_amount, date_created) VALUES ('" . $id1 . "', 'G', '" . oos_db_input($_POST['amount']) . "', now())");
$insert_id = $dbconn->Insert_ID();
$coupon_email_tracktable = $oostable['coupon_email_track'];
$insert_result = $dbconn->Execute("INSERT INTO $coupon_email_tracktable (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) VALUES ('" . $insert_id ."', '0', 'Admin', '" . $mail['customers_email_address'] . "', now() )");
// Move that ADOdb pointer!
$mail_result->MoveNext();
}
} elseif (isset($_POST['email_to']) && (!$_POST['back_x'])) {
$id1 = oos_create_coupon_code($_POST['email_to']);
$message = oos_db_prepare_input($_POST['message']);
$message .= "\n\n" . TEXT_GV_WORTH . $currencies->format($_POST['amount']) . "\n\n";
$message .= TEXT_TO_REDEEM;
$message .= TEXT_WHICH_IS . $id1 . TEXT_IN_CASE . "\n\n";
$message .= OOS_HTTPS_SERVER . OOS_SHOP . 'index.php?content=' . $aCatalog['gv_redeem'] . '&gv_no=' . $id1 . "\n\n";
$message .= TEXT_OR_VISIT . OOS_HTTPS_SERVER . OOS_SHOP . TEXT_ENTER_CODE;
//Let's build a message object using the email class
$send_mail = new PHPMailer();
$send_mail->PluginDir = OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/';
$sLang = (isset($_SESSION['iso_639_1']) ? $_SESSION['iso_639_1'] : 'en');
$send_mail->SetLanguage( $sLang, OOS_ABSOLUTE_PATH . 'includes/lib/phpmailer/language/' );
$send_mail->CharSet = CHARSET;
$send_mail->IsMail();
$send_mail->From = $from_mail ? $from_mail : STORE_OWNER_EMAIL_ADDRESS;
$send_mail->FromName = $from_name ? $from_name : STORE_OWNER;
$send_mail->Mailer = EMAIL_TRANSPORT;
// Add smtp values if needed
if ( EMAIL_TRANSPORT == 'smtp' ) {
$send_mail->IsSMTP(); // set mailer to use SMTP
$send_mail->SMTPAuth = OOS_SMTPAUTH; // turn on SMTP authentication
$send_mail->Username = OOS_SMTPUSER; // SMTP username
$send_mail->Password = OOS_SMTPPASS; // SMTP password
$send_mail->Host = OOS_SMTPHOST; // specify main and backup server
} else
// Set sendmail path
if ( EMAIL_TRANSPORT == 'sendmail' ) {
if (!oos_empty(OOS_SENDMAIL)) {
$send_mail->Sendmail = OOS_SENDMAIL;
$send_mail->IsSendmail();
}
}
$send_mail->Subject = $subject;
$send_mail->Body = $message;
$send_mail->AddAddress($_POST['email_to'], 'Friend');
$send_mail->Send();
$send_mail->ClearAddresses();
$send_mail->ClearAttachments();
// Now create the coupon email entry
$couponstable = $oostable['coupons'];
$insert_result = $dbconn->Execute("INSERT INTO $couponstable (coupon_code, coupon_type, coupon_amount, date_created) VALUES ('" . oos_db_input($id1) . "', 'G', '" . oos_db_input($_POST['amount']) . "', now())");
$insert_id = $dbconn->Insert_ID();
$coupon_email_tracktable = $oostable['coupon_email_track'];
$insert_result = $dbconn->Execute("INSERT INTO $coupon_email_tracktable (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) VALUES ('" . $insert_id ."', '0', 'Admin', '" . oos_db_input($_POST['email_to']) . "', now() )");
}
oos_redirect_admin(oos_href_link_admin($aContents['gv_mail'], 'mail_sent_to=' . urlencode($mail_sent_to)));
}
if ( ($action == 'preview') && (!$_POST['customers_email_address']) && (!$_POST['email_to']) ) {
$messageStack->add(ERROR_NO_CUSTOMER_SELECTED, 'error');
}
if ( ($action == 'preview') && (!$_POST['amount']) ) {
$messageStack->add(ERROR_NO_AMOUNT_SELECTED, 'error');
}
if (isset($_GET['mail_sent_to'])) {
$messageStack->add(sprintf(NOTICE_EMAIL_SENT_TO, $_GET['mail_sent_to']), 'notice');
}
require 'includes/header.php';
?>
<div class="wrapper">
<!-- Header //-->
<header class="topnavbar-wrapper">
<!-- Top Navbar //-->
<?php require 'includes/menue.php'; ?>
</header>
<!-- END Header //-->
<aside class="aside">
<!-- Sidebar //-->
<div class="aside-inner">
<?php require 'includes/blocks.php'; ?>
</div>
<!-- END Sidebar (left) //-->
</aside>
<!-- Main section //-->
<section>
<!-- Page content //-->
<div class="content-wrapper">
<!-- Breadcrumbs //-->
<div class="content-heading">
<div class="col-lg-12">
<h2><?php echo HEADING_TITLE; ?></h2>
<ol class="breadcrumb">
<li class="breadcrumb-item">
<?php echo '<a href="' . oos_href_link_admin($aContents['default']) . '">' . HEADER_TITLE_TOP . '</a>'; ?>
</li>
<li class="breadcrumb-item">
<?php echo '<a href="' . oos_href_link_admin($aContents['coupon_admin'], 'selected_box=gv_admin') . '">' . BOX_HEADING_GV_ADMIN . '</a>'; ?>
</li>
<li class="breadcrumb-item active">
<strong><?php echo HEADING_TITLE; ?></strong>
</li>
</ol>
</div>
</div>
<!-- END Breadcrumbs //-->
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-lg-12">
<!-- body_text //-->
<div class="table-responsive">
<table class="table w-100">
<?php
if ( ($action == 'preview') && ($_POST['customers_email_address'] || $_POST['email_to']) ) {
switch ($_POST['customers_email_address']) {
case '***':
$mail_sent_to = TEXT_ALL_CUSTOMERS;
break;
case '**D':
$mail_sent_to = TEXT_NEWSLETTER_CUSTOMERS;
break;
default:
$mail_sent_to = oos_db_prepare_input($_POST['customers_email_address']);
if ( (isset($_POST['email_to'])) && (!empty($_POST['email_to'])) ) {
$mail_sent_to = oos_db_prepare_input($_POST['email_to']);
}
break;
}
?>
<tr><?php echo oos_draw_form('id', 'mail', $aContents['gv_mail'], 'action=send_email_to_user', 'post', FALSE); ?>
<td><table border="0" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td></td>
</tr>
<tr>
<td class="smallText"><b><?php echo TEXT_CUSTOMER; ?></b><br /><?php echo $mail_sent_to; ?></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td class="smallText"><b><?php echo TEXT_FROM_NAME; ?></b><br /><?php echo htmlspecialchars(stripslashes($_POST['from_name'])); ?></td>
</tr>
<tr>
<td class="smallText"><b><?php echo TEXT_FROM_MAIL; ?></b><br /><?php echo htmlspecialchars(stripslashes($_POST['from_mail'])); ?></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td class="smallText"><b><?php echo TEXT_SUBJECT; ?></b><br /><?php echo htmlspecialchars(stripslashes($_POST['subject'])); ?></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td class="smallText"><b><?php echo TEXT_AMOUNT; ?></b><br /><?php echo nl2br(htmlspecialchars(stripslashes($_POST['amount']))); ?></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td class="smallText"><b><?php echo TEXT_MESSAGE; ?></b><br /><?php echo nl2br(htmlspecialchars(stripslashes($_POST['message']))); ?></td>
</tr>
<tr>
<td></td>
</tr>
<tr>
<td>
<?php
/* Re-Post all POST'ed variables */
reset($_POST);
foreach ($_POST as $key => $value) {
if (!is_array($_POST[$key])) {
echo oos_draw_hidden_field($key, htmlspecialchars(stripslashes($value)));
}
}
?>
<table border="0" width="100%" cellpadding="0" cellspacing="2">
<tr>
<td><?php echo oos_submit_button('back', IMAGE_BACK, 'name="back"'); ?></td>
<td class="text-right"><?php echo '<a class="btn btn-sm btn-primary mb-20" href="' . oos_href_link_admin($aContents['gv_mail']) . '" role="button"><strong>' . BUTTON_CANCEL . '</strong></a>' . oos_submit_button(IMAGE_SEND_EMAIL); ?></td>
</tr>
</table></td>
</tr>
</table></td>
</form></tr>
<?php
} else {
?>
<tr><?php echo oos_draw_form('id', 'mail', $aContents['gv_mail'], 'action=preview', 'post', FALSE); ?>
<td><table border="0" cellpadding="0" cellspacing="2">
<tr>
<td colspan="2"></td>
</tr>
<?php
$customers = array();
$customers[] = array('id' => '', 'text' => TEXT_SELECT_CUSTOMER);
$customers[] = array('id' => '***', 'text' => TEXT_ALL_CUSTOMERS);
$customers[] = array('id' => '**D', 'text' => TEXT_NEWSLETTER_CUSTOMERS);
$customerstable = $oostable['customers'];
$mail_result = $dbconn->Execute("SELECT customers_email_address, customers_firstname, customers_lastname FROM $customerstable ORDER BY customers_lastname");
while($customers_values = $mail_result->fields) {
$customers[] = array('id' => $customers_values['customers_email_address'],
'text' => $customers_values['customers_lastname'] . ', ' . $customers_values['customers_firstname'] . ' (' . $customers_values['customers_email_address'] . ')');
// Move that ADOdb pointer!
$mail_result->MoveNext();
}
?>
<tr>
<td class="main"><?php echo TEXT_CUSTOMER; ?></td>
<td><?php echo oos_draw_pull_down_menu('customers_email_address', $customers, $_GET['customer']);?></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_TO; ?></td>
<td><?php echo oos_draw_input_field('email_to'); ?></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_FROM_NAME; ?></td>
<td><?php echo oos_draw_input_field('from_name', STORE_OWNER); ?></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_FROM_MAIL; ?></td>
<td><?php echo oos_draw_input_field('from_mail',STORE_OWNER_EMAIL_ADDRESS); ?></td></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td class="main"><?php echo TEXT_SUBJECT; ?></td>
<td><?php echo oos_draw_input_field('subject'); ?></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td valign="top" class="main"><?php echo TEXT_AMOUNT; ?></td>
<td><?php echo oos_draw_input_field('amount'); ?></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td valign="top" class="main"><?php echo TEXT_MESSAGE; ?></td>
<td><?php echo oos_draw_textarea_field('message', 'soft', '60', '15'); ?></td>
</tr>
<tr>
<td colspan="2"></td>
</tr>
<tr>
<td colspan="2" align="right"><?php echo oos_submit_button(IMAGE_SEND_EMAIL); ?></td>
</tr>
</table></td>
</form></tr>
<?php
}
?>
</table>
</div>
<!-- body_text_eof //-->
</div>
</div>
</div>
</div>
</section>
<!-- Page footer //-->
<footer>
<span>&copy; 2019 - <a href="https://www.oos-shop.de" target="_blank" rel="noopener">MyOOS [Shopsystem]</a></span>
</footer>
</div>
<?php
require 'includes/bottom.php';
require 'includes/nice_exit.php';
?>