mirror of https://github.com/itflow-org/itflow
Finished Campaign Test Email and some other fixups
This commit is contained in:
parent
d03ef74e4d
commit
ba75378f9b
|
|
@ -76,7 +76,7 @@
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-clock"></i></span>
|
||||
</div>
|
||||
<input type="datetime-local" class="form-control" name="scheduled_time" placeholder="Schedule Date and Time">
|
||||
<input type="datetime-local" class="form-control" name="scheduled_at" placeholder="Schedule Date and Time">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-clock"></i></span>
|
||||
</div>
|
||||
<input type="datetime-local" class="form-control" name="scheduled_time" placeholder="Schedule Date and Time" value="<?php echo $campaign_scheduled_at; ?>">
|
||||
<input type="datetime-local" class="form-control" name="scheduled_at" placeholder="Schedule Date and Time" value="<?php echo $campaign_scheduled_at; ?>">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<div class="modal-dialog">
|
||||
<div class="modal-content bg-dark">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title"><i class="fa fa-fw fa-envelope"></i> <?php echo $campaign_name; ?></h5>
|
||||
<h5 class="modal-title"><i class="fa fa-fw fa-envelope"></i> <?php echo $campaign_name; ?> - Send a test email</h5>
|
||||
<button type="button" class="close text-white" data-dismiss="modal">
|
||||
<span>×</span>
|
||||
</button>
|
||||
|
|
@ -11,20 +11,30 @@
|
|||
<input type="hidden" name="campaign_id" value="<?php echo $campaign_id; ?>">
|
||||
<div class="modal-body bg-white">
|
||||
|
||||
<div class="form-group">
|
||||
<label>Name</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-user"></i></span>
|
||||
</div>
|
||||
<input type="text" class="form-control" name="name_to" placeholder="Name of the Person">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label>Email <strong class="text-danger">*</strong></label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-envelope"></i></span>
|
||||
</div>
|
||||
<input type="email" class="form-control" name="email" placeholder="Send test email to" required>
|
||||
<input type="email" class="form-control" name="email_to" placeholder="Send test email to" required>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer bg-white">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
|
||||
<button type="submit" name="campaign_test" class="btn btn-primary">Send</button>
|
||||
<button type="submit" name="test_campaign" class="btn btn-primary">Send</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -158,9 +158,9 @@
|
|||
<thead class="text-dark <?php if($num_rows[0] == 0){ echo "d-none"; } ?>">
|
||||
<tr>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_name&o=<?php echo $disp; ?>">Name</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Sent</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Opened</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Clicked</a></th>
|
||||
<th class="text-center">Sent</th>
|
||||
<th class="text-center">Opened</th>
|
||||
<th class="text-center">Clicked</th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_created_at&o=<?php echo $disp; ?>">Created</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_scheduled_at&o=<?php echo $disp; ?>">Scheduled</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sb; ?>&sb=campaign_status&o=<?php echo $disp; ?>">Status</a></th>
|
||||
|
|
@ -174,6 +174,8 @@
|
|||
$campaign_id = $row['campaign_id'];
|
||||
$campaign_name = $row['campaign_name'];
|
||||
$campaign_subject = $row['campaign_subject'];
|
||||
$campaign_from_name = $row['campaign_from_name'];
|
||||
$campaign_from_email = $row['campaign_from_email'];
|
||||
$campaign_content = $row['campaign_content'];
|
||||
$campaign_status = $row['campaign_status'];
|
||||
$campaign_scheduled_at = $row['campaign_scheduled_at'];
|
||||
|
|
@ -193,24 +195,24 @@
|
|||
}
|
||||
|
||||
//Get Stat Counts
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_sent_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$sent_count = mysqli_num_rows($sql);
|
||||
$sql_sent = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_sent_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$sent_count = mysqli_num_rows($sql_sent);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_opened_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$open_count = mysqli_num_rows($sql);
|
||||
$sql_open = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_opened_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$open_count = mysqli_num_rows($sql_open);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_clicked_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$click_count = mysqli_num_rows($sql);
|
||||
$sql_click = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_clicked_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$click_count = mysqli_num_rows($sql_click);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_bounced_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$fail_count = mysqli_num_rows($sql);
|
||||
$sql_fail = mysqli_query($mysqli,"SELECT message_id FROM campaign_messages WHERE message_bounced_at IS NOT NULL AND message_campaign_id = $campaign_id");
|
||||
$fail_count = mysqli_num_rows($sql_fail);
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<td><a href="campaign.php?campaign_id=<?php echo $campaign_id; ?>"><?php echo $campaign_name; ?></a></td>
|
||||
<td class="text-success"><?php echo $sent_count; ?></td>
|
||||
<td class="text-secondary"><?php echo $open_count; ?></td>
|
||||
<td class="text-info"><?php echo $click_count; ?></td>
|
||||
<td class="text-success text-center"><?php echo $sent_count; ?></td>
|
||||
<td class="text-secondary text-center"><?php echo $open_count; ?></td>
|
||||
<td class="text-info text-center"><?php echo $click_count; ?></td>
|
||||
<td><?php echo $campaign_created_at; ?></td>
|
||||
<td><?php echo $campaign_scheduled_at; ?></td>
|
||||
<td>
|
||||
|
|
@ -226,8 +228,10 @@
|
|||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#campaignTestModal<?php echo $campaign_id; ?>">Test</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<?php if($campaign_status == 'Draft' OR $campaign_status == 'Queued'){ ?>
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#campaignEditModal<?php echo $campaign_id; ?>">Edit</a>
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#campaignCopyModal<?php echo $campaign_id; ?>">Copy</a>
|
||||
<?php } ?>
|
||||
<a class="dropdown-item" href="post.php?copy_campaign=<?php echo $campaign_id; ?>">Copy</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item text-danger" href="post.php?delete_campaign=<?php echo $campaign_id; ?>">Delete</a>
|
||||
</div>
|
||||
|
|
|
|||
101
post.php
101
post.php
|
|
@ -1650,9 +1650,9 @@ if(isset($_POST['add_campaign'])){
|
|||
$from_email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['from_email'])));
|
||||
$content = trim(mysqli_real_escape_string($mysqli,$_POST['content']));
|
||||
$status = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['status'])));
|
||||
$scheduled_time = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['scheduled_time'])));
|
||||
$scheduled_at = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['scheduled_at'])));
|
||||
|
||||
mysqli_query($mysqli,"INSERT INTO campaigns SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = '$status', campaign_scheduled_at = '$scheduled_time', campaign_created_at = NOW(), company_id = $session_company_id");
|
||||
mysqli_query($mysqli,"INSERT INTO campaigns SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = '$status', campaign_scheduled_at = '$scheduled_at', campaign_created_at = NOW(), company_id = $session_company_id");
|
||||
|
||||
$campaign_id = mysqli_insert_id($mysqli);
|
||||
|
||||
|
|
@ -1704,8 +1704,10 @@ if(isset($_POST['edit_campaign'])){
|
|||
$from_name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['from_name'])));
|
||||
$from_email = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['from_email'])));
|
||||
$content = trim(mysqli_real_escape_string($mysqli,$_POST['content']));
|
||||
$status = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['status'])));
|
||||
$scheduled_at = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['scheduled_at'])));
|
||||
|
||||
mysqli_query($mysqli,"UPDATE campaigns SET SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_updated_at = NOW() WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
|
||||
mysqli_query($mysqli,"UPDATE campaigns SET SET campaign_name = '$name', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = 'Draft', campaign_scheduled_at = '$scheduled_at', campaign_updated_at = NOW() WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Modify', log_description = '$session_name modified mail campaign $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
|
||||
|
|
@ -1715,6 +1717,34 @@ if(isset($_POST['edit_campaign'])){
|
|||
header("Location: " . $_SERVER["HTTP_REFERER"]);
|
||||
}
|
||||
|
||||
if(isset($_GET['copy_campaign'])){
|
||||
|
||||
$campaign_id = intval($_GET['copy_campaign']);
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT * FROM campaigns WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
|
||||
|
||||
$row = mysqli_fetch_array($sql);
|
||||
|
||||
$name = $row['campaign_name'];
|
||||
$subject = $row['campaign_subject'];
|
||||
$from_name = $row['campaign_from_name'];
|
||||
$from_email = $row['campaign_from_email'];
|
||||
$content = $row['campaign_content'];
|
||||
$status = $row['campaign_status'];
|
||||
$scheduled_at = $row['campaign_scheduled_at'];
|
||||
|
||||
mysqli_query($mysqli,"INSERT INTO campaigns SET campaign_name = '$name (COPY)', campaign_subject = '$subject', campaign_from_name = '$from_name', campaign_from_email = '$from_email', campaign_content = '$content', campaign_status = 'Draft', campaign_scheduled_at = '$scheduled_at', campaign_created_at = NOW(), company_id = $session_company_id");
|
||||
|
||||
$new_campaign_id = mysqli_insert_id($mysqli);
|
||||
|
||||
//Logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Copy', log_description = '$session_name copied mail campaign $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_created_at = NOW(), log_user_id = $session_user_id, company_id = $session_company_id");
|
||||
|
||||
$_SESSION['alert_message'] = "Campaign <strong>$campaign_name</strong> copied";
|
||||
|
||||
header("Location: " . $_SERVER["HTTP_REFERER"]);
|
||||
}
|
||||
|
||||
if(isset($_GET['archive_campaign'])){
|
||||
$campaign_id = intval($_GET['archive_campaign']);
|
||||
|
||||
|
|
@ -1756,8 +1786,10 @@ if(isset($_GET['delete_campaign'])){
|
|||
header("Location: " . $_SERVER["HTTP_REFERER"]);
|
||||
}
|
||||
|
||||
if(isset($_GET['send_campaign'])){
|
||||
$campaign_id = intval($_GET['send_campaign']);
|
||||
if(isset($_POST['test_campaign'])){
|
||||
$campaign_id = intval($_POST['campaign_id']);
|
||||
$name_to = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name_to'])));
|
||||
$email_to = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['email_to'])));
|
||||
|
||||
$sql = mysqli_query($mysqli,"SELECT * FROM campaigns WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
|
||||
|
||||
|
|
@ -1768,51 +1800,36 @@ if(isset($_GET['send_campaign'])){
|
|||
$campaign_from_name = $row['campaign_from_name'];
|
||||
$campaign_from_email = $row['campaign_from_email'];
|
||||
$campaign_content = $row['campaign_content'];
|
||||
$campaign_status = $row['campaign_status'];
|
||||
$campaign_scheduled_at = $row['campaign_scheduled_at'];
|
||||
$campaign_created_at = $row['campaign_created_at'];
|
||||
|
||||
$contact_name = "";
|
||||
$emailsArray = [""];
|
||||
$mail = new PHPMailer(true);
|
||||
|
||||
foreach($emailsArray as $contact_email){
|
||||
//Mail Server Settings
|
||||
|
||||
$mail = new PHPMailer(true);
|
||||
$mail->SMTPDebug = 2; // Enable verbose debug output
|
||||
$mail->isSMTP(); // Set mailer to use SMTP
|
||||
$mail->Host = $config_smtp_host; // Specify main and backup SMTP servers
|
||||
$mail->SMTPAuth = true; // Enable SMTP authentication
|
||||
$mail->Username = $config_smtp_username; // SMTP username
|
||||
$mail->Password = $config_smtp_password; // SMTP password
|
||||
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
|
||||
$mail->Port = $config_smtp_port; // TCP port to connect to
|
||||
|
||||
try{
|
||||
//Recipients
|
||||
$mail->setFrom("$campaign_from_email", "$campaign_from_name");
|
||||
$mail->addAddress("$email_to", "$name_to"); // Add a recipient
|
||||
|
||||
//Mail Server Settings
|
||||
// Content
|
||||
$mail->isHTML(true); // Set email format to HTML
|
||||
$mail->Subject = "[Test] $campaign_subject";
|
||||
$mail->Body = "Hi $name_to,<br><br>$campaign_content";
|
||||
|
||||
//$mail->SMTPDebug = 2; // Enable verbose debug output
|
||||
$mail->isSMTP(); // Set mailer to use SMTP
|
||||
$mail->Host = $config_smtp_host; // Specify main and backup SMTP servers
|
||||
$mail->SMTPAuth = true; // Enable SMTP authentication
|
||||
$mail->Username = $config_smtp_username; // SMTP username
|
||||
$mail->Password = $config_smtp_password; // SMTP password
|
||||
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
|
||||
$mail->Port = $config_smtp_port; // TCP port to connect to
|
||||
$mail->send();
|
||||
echo 'Message has been sent';
|
||||
|
||||
|
||||
//logging
|
||||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Test', log_description = '$session_name sent a test campaign named $campaign_name to $email_to', log_created_at = NOW(), company_id = $session_company_id, log_user_id = $session_user_id");
|
||||
|
||||
//Recipients
|
||||
$mail->setFrom("$campaign_from_email", "$campaign_from_name");
|
||||
$mail->addAddress("$contact_email", "$contact_name"); // Add a recipient
|
||||
|
||||
// Content
|
||||
$mail->isHTML(true); // Set email format to HTML
|
||||
$mail->Subject = "$campaign_subject";
|
||||
$mail->Body = "Hi $contact_name,<br><br>$campaign_content";
|
||||
|
||||
$mail->send();
|
||||
echo 'Message has been sent';
|
||||
|
||||
}catch (Exception $e){
|
||||
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
|
||||
}
|
||||
}
|
||||
|
||||
//Logging of email sent
|
||||
//mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Calendar Event', log_action = 'Emailed', log_description = 'Emailed $client_name to email $client_email - $title', log_created_at = NOW(), log_client_id = $client, company_id = $session_company_id, log_user_id = $session_user_id");
|
||||
$_SESSION['alert_message'] = "Test email to <strong>$email_to</strong> for <strong>$campaign_name</strong> sent successfully";
|
||||
|
||||
header("Location: " . $_SERVER["HTTP_REFERER"]);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue