Operation Cleanup Round 1 - Remove Mailing list functionality, there are many projects that can handle this

This commit is contained in:
johnnyq
2022-09-17 16:35:11 -04:00
parent 55567df92e
commit 14953fe171
12 changed files with 16 additions and 1260 deletions

227
post.php
View File

@@ -699,8 +699,6 @@ if(isset($_GET['delete_company'])){
mysqli_query($mysqli,"DELETE FROM assets WHERE company_id = $company_id");
mysqli_query($mysqli,"DELETE FROM calendars WHERE company_id = $company_id");
mysqli_query($mysqli,"DELETE FROM notifications WHERE company_id = $company_id");
mysqli_query($mysqli,"DELETE FROM campaigns WHERE company_id = $company_id");
mysqli_query($mysqli,"DELETE FROM campaign_messages WHERE company_id = $company_id");
mysqli_query($mysqli,"DELETE FROM categories WHERE company_id = $company_id");
mysqli_query($mysqli,"DELETE FROM certificates WHERE company_id = $company_id");
@@ -1913,231 +1911,6 @@ if(isset($_GET['export_client_vendors_csv'])){
exit;
}
// Campaigns
if(isset($_POST['add_campaign'])){
$name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name'])));
$subject = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['subject'])));
$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,"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', company_id = $session_company_id");
$campaign_id = mysqli_insert_id($mysqli);
//Create Recipient List based off tags selected
if(isset($_POST['tags'])){
foreach($_POST['tags'] as $tag){
$tag = intval($tag);
$sql = mysqli_query($mysqli,"SELECT * FROM clients
LEFT JOIN contacts ON contacts.contact_id = clients.primary_contact
LEFT JOIN client_tags ON clients.client_id = client_tags.client_id
WHERE client_tags.tag_id = $tag
AND clients.company_id = $session_company_id
");
while($row = mysqli_fetch_array($sql)){
$client_id = $row['client_id'];
$client_name = $row['client_name'];
$contact_id = $row['contact_id'];
$contact_name = $row['contact_name'];
$contact_email = $row['contact_email'];
//Check to see if the email has already been added if so don't add it
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT(message_id) AS count FROM campaign_messages WHERE message_contact_id = $contact_id AND message_campaign_id = $campaign_id"));
$count = $row['count'];
if($count == 0){
//Generate Unique hash
$message_hash = keygen();
mysqli_query($mysqli,"INSERT INTO campaign_messages SET message_hash = '$message_hash', message_client_tag_id = $tag, message_contact_id = $contact_id, message_campaign_id = $campaign_id, company_id = $session_company_id");
}
}
}
}
//Logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Create', log_description = '$session_name created mail campaign $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_message'] = "Campaign <strong>$name</strong> created";
//header("Location: campaign_details.php?campaign_id=$campaign_id");
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if(isset($_POST['edit_campaign'])){
$campaign_id = intval($_POST['campaign_id']);
$name = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['name'])));
$subject = trim(strip_tags(mysqli_real_escape_string($mysqli,$_POST['subject'])));
$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 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' WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
//Create Recipient List based off tags selected
if(isset($_POST['tags'])){
foreach($_POST['tags'] as $tag){
$tag = intval($tag);
$sql = mysqli_query($mysqli,"SELECT * FROM clients
LEFT JOIN contacts ON contacts.contact_id = clients.primary_contact
LEFT JOIN client_tags ON clients.client_id = client_tags.client_id
WHERE client_tags.tag_id = $tag
AND clients.company_id = $session_company_id
");
while($row = mysqli_fetch_array($sql)){
$client_id = $row['client_id'];
$client_name = $row['client_name'];
$contact_id = $row['contact_id'];
$contact_name = $row['contact_name'];
$contact_email = $row['contact_email'];
//Check to see if the email has already been added if so don't add it
$row = mysqli_fetch_assoc(mysqli_query($mysqli,"SELECT COUNT(message_id) AS count FROM campaign_messages WHERE message_contact_id = $contact_id AND message_campaign_id = $campaign_id"));
$count = $row['count'];
if($count == 0){
//Generate Unique hash
$message_hash = keygen();
mysqli_query($mysqli,"INSERT INTO campaign_messages SET message_hash = '$message_hash', message_client_tag_id = $tag, message_contact_id = $contact_id, message_campaign_id = $campaign_id, 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_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_message'] = "Campaign <strong>$name</strong> modified";
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', 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_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']);
//Get Campaign Name
$sql = mysqli_query($mysqli,"SELECT * FROM campaigns WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
$row = mysqli_fetch_array($sql);
$campaign_name = $row['campaign_name'];
mysqli_query($mysqli,"UPDATE campaigns SET campaign_archived_at = NOW() WHERE campaign_id = $campaign_id");
//logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Archive', log_description = '$session_name archived mail campaign $campaign_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Campaign <strong>$campaign_name</strong> archived";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if(isset($_GET['delete_campaign'])){
$campaign_id = intval($_GET['delete_campaign']);
//Get Campaign Name
$sql = mysqli_query($mysqli,"SELECT * FROM campaigns WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
$row = mysqli_fetch_array($sql);
$campaign_name = $row['campaign_name'];
//Delete Campaign
mysqli_query($mysqli,"DELETE FROM campaigns WHERE campaign_id = $campaign_id AND company_id = $session_company_id");
//Delete Messages Related to the Campaign
mysqli_query($mysqli,"DELETE FROM campaign_messages WHERE message_campaign_id = $campaign_id AND company_id = $session_company_id");
//logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Delete', log_description = '$session_name deleted mail campaign $campaign_name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_type'] = "error";
$_SESSION['alert_message'] = "Campaign <strong>$campaign_name</strong> deleted";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
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");
$row = mysqli_fetch_array($sql);
$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'];
$mail = new PHPMailer(true);
//Mail Server Settings
//$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 = $config_smtp_encryption; // Enable TLS encryption, `ssl` also accepted
$mail->Port = $config_smtp_port; // TCP port to connect to
//Recipients
$mail->setFrom("$campaign_from_email", "$campaign_from_name");
$mail->addAddress("$email_to", "$name_to"); // Add a recipient
// Content
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = "[Test] $campaign_subject";
$mail->Body = "Hi $name_to,<br><br>$campaign_content";
$mail->send();
echo 'Message has been sent';
//logging
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Campaign', log_action = 'Test', log_description = 'Sent a test campaign named $campaign_name to $email_to', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_user_id = $session_user_id, company_id = $session_company_id");
$_SESSION['alert_message'] = "Test email to <strong>$email_to</strong> for <strong>$campaign_name</strong> sent successfully";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
// Products
if(isset($_POST['add_product'])){