diff --git a/system/controllers/message.php b/system/controllers/message.php
index 9da65ba6..a4a1a197 100644
--- a/system/controllers/message.php
+++ b/system/controllers/message.php
@@ -95,124 +95,144 @@ EOT;
if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent', 'Sales'])) {
_alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard");
}
- $ui->display('message-bulk.tpl');
- break;
- case 'send_bulk-post':
- // Check user permissions
- if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent', 'Sales'])) {
- _alert(Lang::T('You do not have permission to access this page'), 'danger', "dashboard");
- }
// Get form data
$group = $_POST['group'];
$message = $_POST['message'];
$via = $_POST['via'];
+ $test = isset($_POST['test']) && $_POST['test'] === 'on' ? 'yes' : 'no';
+ $batch = $_POST['batch'];
+ $delay = $_POST['delay'];
// Initialize counters
- $successCount = 0;
- $failCount = 0;
- $successMessages = [];
- $failMessages = [];
+ $totalSMSSent = 0;
+ $totalSMSFailed = 0;
+ $totalWhatsappSent = 0;
+ $totalWhatsappFailed = 0;
+ $batchStatus = [];
- // Check if fields are empty
- if ($group == '' or $message == '' or $via == '') {
- r2(U . 'message/send_bulk', 'e', Lang::T('All fields are required'));
- } else {
- // Get customer details from the database based on the selected group
- if ($group == 'all') {
- $customers = ORM::for_table('tbl_customers')->find_many();
- } elseif ($group == 'new') {
- // Get customers created just a month ago
- $customers = ORM::for_table('tbl_customers')->where_raw("DATE(created_at) >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)")->find_many();
- } elseif ($group == 'expired') {
- // Get expired user recharges where status is 'off'
- $expired = ORM::for_table('tbl_user_recharges')->where('status', 'off')->find_many();
- $customer_ids = [];
- foreach ($expired as $recharge) {
- $customer_ids[] = $recharge->customer_id;
- }
- $customers = ORM::for_table('tbl_customers')->where_in('id', $customer_ids)->find_many();
- } elseif ($group == 'active') {
- // Get active user recharges where status is 'on'
- $active = ORM::for_table('tbl_user_recharges')->where('status', 'on')->find_many();
- $customer_ids = [];
- foreach ($active as $recharge) {
- $customer_ids[] = $recharge->customer_id;
- }
- $customers = ORM::for_table('tbl_customers')->where_in('id', $customer_ids)->find_many();
- }
-
- // Loop through customers and send messages
- foreach ($customers as $customer) {
- // Create a copy of the original message for each customer and save it as currentMessage
- $currentMessage = $message;
-
- // Replace placeholders in the message with actual values for each customer
- $currentMessage = str_replace('[[name]]', $customer['fullname'], $currentMessage);
- $currentMessage = str_replace('[[user_name]]', $customer['username'], $currentMessage);
- $currentMessage = str_replace('[[phone]]', $customer['phonenumber'], $currentMessage);
- $currentMessage = str_replace('[[company_name]]', $config['CompanyName'], $currentMessage);
-
- // Send the message based on the selected method
- if ($via == 'sms' || $via == 'both') {
- $smsSent = Message::sendSMS($customer['phonenumber'], $currentMessage);
- if ($smsSent) {
- $successCount++;
- $successMessages[] = "SMS sent to {$customer['fullname']}: {$customer['phonenumber']}";
- } else {
- $failCount++;
- $failMessages[] = "Failed to send SMS to {$customer['fullname']}: {$customer['phonenumber']}";
- }
- // Introduce a delay of 5 seconds between each SMS
- sleep(5);
- }
-
- if ($via == 'wa' || $via == 'both') {
- $waSent = Message::sendWhatsapp($customer['phonenumber'], $currentMessage);
- if ($waSent) {
- $successCount++;
- $successMessages[] = "WhatsApp message sent to {$customer['fullname']}: {$customer['phonenumber']}";
- } else {
- $failCount++;
- $failMessages[] = "Failed to send WhatsApp message to {$customer['fullname']}: {$customer['phonenumber']}";
- }
- // Introduce a delay of 5 seconds between each WhatsApp message
- sleep(5);
- }
- }
-
- $responseMessage = '';
-
- if ($successCount > 0) {
- $responseMessage .= "Messages Sent Successfully: {$successCount}
";
- $responseMessage .= "
Total SMS Sent: {$totalSMSSent} Total SMS + Failed: {$totalSMSFailed} Total WhatsApp Sent: + {$totalWhatsappSent} Total WhatsApp Failed: + {$totalWhatsappFailed}
+{/if} +Name | +Phone | +Message | +Status | +
---|---|---|---|
{$customer.name} | +{$customer.phone} | +{$customer.message} | +{$customer.status} | +