diff --git a/campaign.php b/campaign.php deleted file mode 100644 index 70c1cdd6..00000000 --- a/campaign.php +++ /dev/null @@ -1,247 +0,0 @@ - - - -
- -
-
-
-
- - - -
CAMPAIGN
-
-
- -
-
- -
-
-
- -
-
-
DETAILS
-
-
()
-
-
-
- -
-
-
Sent
-

-
-
- -
-
-
Opened
-

-
-
- -
-
-
Clicked
-

-
-
- -
-
-
Failed
-

-
-
- -
- - $sb, 'o' => $o))); - - $sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM campaign_messages - LEFT JOIN contacts ON contact_id = message_contact_id - LEFT JOIN clients ON primary_contact = contact_id - WHERE (contact_name LIKE '%$q%' OR contact_email LIKE '%$q%' OR client_name LIKE '%$q%') - AND message_campaign_id = $campaign_id - AND campaign_messages.company_id = $session_company_id - ORDER BY $sb $o LIMIT $record_from, $record_to" - ); - - $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); - $total_found_rows = $num_rows[0]; - $total_pages = ceil($total_found_rows / 10); - -?> - -
-
-

Messages

-
-
-
- -
-
-
- -
- -
-
-
-
-
-
-
-
-
- - "> - - - - - - - - - - - - - - - - - - - - - - - -
Client NameContact NameEmailSentOpenedIP
-
- -
-
- - - - \ No newline at end of file diff --git a/campaign_add_modal.php b/campaign_add_modal.php deleted file mode 100644 index a0858e7e..00000000 --- a/campaign_add_modal.php +++ /dev/null @@ -1,152 +0,0 @@ - \ No newline at end of file diff --git a/campaign_edit_modal.php b/campaign_edit_modal.php deleted file mode 100644 index 9d7e2b6d..00000000 --- a/campaign_edit_modal.php +++ /dev/null @@ -1,155 +0,0 @@ - \ No newline at end of file diff --git a/campaign_test_modal.php b/campaign_test_modal.php deleted file mode 100644 index 4e0316aa..00000000 --- a/campaign_test_modal.php +++ /dev/null @@ -1,42 +0,0 @@ - \ No newline at end of file diff --git a/campaign_track.php b/campaign_track.php deleted file mode 100644 index 35579dd7..00000000 --- a/campaign_track.php +++ /dev/null @@ -1,37 +0,0 @@ - \ No newline at end of file diff --git a/campaigns.php b/campaigns.php deleted file mode 100644 index 7e922b81..00000000 --- a/campaigns.php +++ /dev/null @@ -1,230 +0,0 @@ - $sb, 'o' => $o))); - - $sql = mysqli_query($mysqli,"SELECT SQL_CALC_FOUND_ROWS * FROM campaigns - WHERE (campaign_name LIKE '%$q%' OR campaign_subject LIKE '%$q%' OR campaign_status LIKE '%$q%') - AND DATE(campaign_created_at) BETWEEN '$dtf' AND '$dtt' - AND company_id = $session_company_id - ORDER BY $sb $o LIMIT $record_from, $record_to" - ); - - $num_rows = mysqli_fetch_row(mysqli_query($mysqli,"SELECT FOUND_ROWS()")); - $total_found_rows = $num_rows[0]; - $total_pages = ceil($total_found_rows / 10); - -?> - -
-
-

Mailing Campaigns

-
- -
-
- -
-
-
-
-
- -
- - -
-
-
-
- -
-
-
" id="advancedFilter"> -
-
-
- - -
-
-
-
- - -
-
-
-
- - -
-
-
-
-
-
-
- - "> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameSubscribersSentOpenedClickedCreatedScheduledStatusAction
- - - - - -
-
- -
-
- - - - - - - -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("$contact_email", "$contact_name"); // Add a recipient - - // Content - $mail->isHTML(true); // Set email format to HTML - - $mail->Subject = "$campaign_subject"; - $mail->Body = "Hello $contact_name,

$campaign_content -

- - -


~
$company_name
$company_phone"; - - $mail->send(); - - mysqli_query($mysqli,"UPDATE campaign_messages SET message_sent_at = NOW() WHERE message_id = $message_id"); - - }catch (Exception $e) { - echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; - mysqli_query($mysqli,"UPDATE campaign_messages SET message_bounced_at = NOW() WHERE message_id = $message_id"); - } //End Mail Try - - } - mysqli_query($mysqli,"UPDATE campaigns SET campaign_status = 'Sent' WHERE campaign_id = $campaign_id"); - } -} //End Company Loop through - -?> \ No newline at end of file diff --git a/database_updates.php b/database_updates.php index b0ccf35e..84d29995 100644 --- a/database_updates.php +++ b/database_updates.php @@ -289,14 +289,22 @@ if(LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION){ mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.1.5'"); } - //if(CURRENT_DATABASE_VERSION == '0.1.5'){ + if(CURRENT_DATABASE_VERSION == '0.1.5'){ // Insert queries here required to update to DB version 0.1.6 + // Remove Mailing List Tables + mysqli_query($mysqli, "DROP TABLE campaigns"); + mysqli_query($mysqli, "DROP TABLE campaign_messages"); // Then, update the database to the next sequential version - // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.1.6'"); - //} + mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.1.6'"); + } - // etc + //if(CURRENT_DATABASE_VERSION == '0.1.6'){ + // Insert queries here required to update to DB version 0.1.7 + + // Then, update the database to the next sequential version + // mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.1.7'"); + //} } else{ diff --git a/database_version.php b/database_version.php index 150b3630..49ec8dc6 100644 --- a/database_version.php +++ b/database_version.php @@ -5,4 +5,4 @@ * It is used in conjunction with database_updates.php */ -DEFINE("LATEST_DATABASE_VERSION", "0.1.5"); \ No newline at end of file +DEFINE("LATEST_DATABASE_VERSION", "0.1.6"); \ No newline at end of file diff --git a/db.sql b/db.sql index 27a747ea..e0b2f171 100644 --- a/db.sql +++ b/db.sql @@ -1,8 +1,8 @@ --- MariaDB dump 10.19 Distrib 10.5.16-MariaDB, for debian-linux-gnu (x86_64) +-- MariaDB dump 10.19 Distrib 10.5.17-MariaDB, for debian-linux-gnu (x86_64) -- -- Host: localhost Database: itflow_dev -- ------------------------------------------------------ --- Server version 10.5.16-MariaDB-1:10.5.16+maria~focal +-- Server version 10.5.17-MariaDB-1:10.5.17+maria~ubu2004 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; @@ -152,58 +152,6 @@ CREATE TABLE `calendars` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; /*!40101 SET character_set_client = @saved_cs_client */; --- --- Table structure for table `campaign_messages` --- - -DROP TABLE IF EXISTS `campaign_messages`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `campaign_messages` ( - `message_id` int(11) NOT NULL AUTO_INCREMENT, - `message_hash` varchar(250) NOT NULL, - `message_ip` varchar(200) DEFAULT NULL, - `message_referer` varchar(250) DEFAULT NULL, - `message_user_agent` varchar(250) DEFAULT NULL, - `message_queued_at` datetime DEFAULT NULL, - `message_sent_at` datetime DEFAULT NULL, - `message_delivered_at` datetime DEFAULT NULL, - `message_bounced_at` datetime DEFAULT NULL, - `message_opened_at` datetime DEFAULT NULL, - `message_clicked_at` datetime DEFAULT NULL, - `message_created_at` datetime NOT NULL DEFAULT current_timestamp(), - `message_client_tag_id` int(11) NOT NULL, - `message_contact_id` int(11) NOT NULL, - `message_campaign_id` int(11) NOT NULL, - `company_id` int(11) NOT NULL, - PRIMARY KEY (`message_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `campaigns` --- - -DROP TABLE IF EXISTS `campaigns`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `campaigns` ( - `campaign_id` int(11) NOT NULL AUTO_INCREMENT, - `campaign_name` varchar(255) NOT NULL, - `campaign_subject` varchar(255) NOT NULL, - `campaign_from_name` varchar(200) NOT NULL, - `campaign_from_email` varchar(200) NOT NULL, - `campaign_content` longtext NOT NULL, - `campaign_status` varchar(20) NOT NULL, - `campaign_scheduled_at` datetime DEFAULT NULL, - `campaign_created_at` datetime NOT NULL DEFAULT current_timestamp(), - `campaign_updated_at` datetime DEFAULT NULL ON UPDATE current_timestamp(), - `campaign_archived_at` datetime DEFAULT NULL, - `company_id` int(11) NOT NULL, - PRIMARY KEY (`campaign_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - -- -- Table structure for table `categories` -- @@ -1546,4 +1494,4 @@ CREATE TABLE `vendors` ( /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2022-05-25 15:44:58 +-- Dump completed on 2022-09-17 16:34:13 diff --git a/post.php b/post.php index 22d66434..5ea58bfe 100644 --- a/post.php +++ b/post.php @@ -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 $name 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 $name 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 $campaign_name 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 $campaign_name 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 $campaign_name 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,

$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 $email_to for $campaign_name sent successfully"; - - header("Location: " . $_SERVER["HTTP_REFERER"]); - -} - // Products if(isset($_POST['add_product'])){ diff --git a/side_nav.php b/side_nav.php index f060c82a..2cbceeff 100644 --- a/side_nav.php +++ b/side_nav.php @@ -96,13 +96,6 @@ - -