403Webshell
Server IP : 138.197.176.125  /  Your IP : 216.73.217.55
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux SuiteCRM-8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.3.19
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /mnt/volume_fra1_01/demo74new/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /mnt/volume_fra1_01/demo74new/massMessage_cron.php
<?php
/*+***********************************************************************************
 * The contents of this file are subject to the vtiger CRM Public License Version 1.0
 * ("License"); You may not use this file except in compliance with the License
 * The Original Code is:  vtiger CRM Open Source
 * The Initial Developer of the Original Code is vtiger.
 * Portions created by vtiger are Copyright (C) vtiger.
 * All Rights Reserved.
 *************************************************************************************/

require_once 'config.inc.php';
require_once('include/utils/utils.php');
require_once('include/database/PearDatabase.php');
include_once 'includes/main/WebUI.php';

global $current_user, $adb, $root_directory, $site_URL;

//file_put_contents('test_m_01.txt', print_r($current_user, true), FILE_APPEND);

$current_user = Users::getActiveAdminUser();
$currentDateTime = date("Y-m-d H:i:s"); 
$currentusername = $current_user->first_name.' '.$current_user->last_name;

$isExpired = CTWhatsApp_Record_Model::checkLicenceExpired();
if($isExpired == 'no'){

	$configurationData = Settings_CTWhatsApp_Record_Model::getUserConfigurationDataWithId();
	$botidealtime = $configurationData['botidealtime']; //5

	$whatsappBotQuery = $adb->pquery("SELECT idealdatetime, prequemobilenumber FROM whatsappbot_pre_que");
	$botRows = $adb->num_rows($whatsappBotQuery);
	for ($i=0; $i < $botRows; $i++) { 
		$idealdatetime = $adb->query_result($whatsappBotQuery, $i, 'idealdatetime');
		$prequemobilenumber = $adb->query_result($whatsappBotQuery, $i, 'prequemobilenumber');

		$messageTimeDiffrence = strtotime($currentDateTime) - strtotime($idealdatetime);
		$minutes = floor(($messageTimeDiffrence / 60) % 60); 
		
		if($minutes >= $botidealtime){
			$adb->pquery("DELETE FROM whatsappbot_pre_que WHERE prequemobilenumber = ?", array($prequemobilenumber));
		}
	}

	$getMassBatchConfiguration = Settings_CTWhatsApp_ConfigurationDetail_View::getMassBatchConfigurationData(); //vtiger_ctwhatsappmassbatch DBTable

	if($getMassBatchConfiguration){

		$getLicenseDetail = CTWhatsApp_Record_Model::getWhatsAppLicenseDetail(); //vtiger_ctwhatsapp_license_setting DBTable
		$licenseKey = $getLicenseDetail['licenseKey']; //f92ceb918783be8a2ce4a492e320b8dd

		//$getWhatsappAccount = CTWhatsApp_Record_Model::getWhatsappAccountDetail($licenseKey);// API : {"message":"Valid","type":"premium","scanallowed":"3","curversion":"1.5.1","latestversion":"M.1.6.1"}
		//$oneDayMessages = CTWhatsApp_Record_Model::getOneDaysMessages();


		$batch = $getMassBatchConfiguration['batch'] == '' ? 5 : $getMassBatchConfiguration['batch']; //10
		$timeInterval = $getMassBatchConfiguration['timeInterval'];
		$cronDateTime = $currentDateTime;

		// campaigns 
		$massMessageQuery = $adb->pquery("SELECT vtiger_ctwhatsappmassmessage.massmessageid, vtiger_ctwhatsappmassmessage.massmsgdatetime, vtiger_ctwhatsappmassmessage.templatesid, vtiger_ctwhatsappmassmessage.connectuserid FROM vtiger_ctwhatsappmassmessage INNER JOIN vtiger_ctwhatsappschedulesendmsg ON vtiger_ctwhatsappschedulesendmsg.schedulesendmsgid = vtiger_ctwhatsappmassmessage.massmessageid WHERE vtiger_ctwhatsappschedulesendmsg.status = 0 GROUP BY vtiger_ctwhatsappmassmessage.massmessageid");

		$massMessageRows = $adb->num_rows($massMessageQuery);

		for ($m=0; $m < $massMessageRows; $m++) {
			$massMessageId = $adb->query_result($massMessageQuery, $m, 'massmessageid');
			$massMsgDateTime = $adb->query_result($massMessageQuery, $m, 'massmsgdatetime');
			$templatesid = $adb->query_result($massMessageQuery, $m, 'templatesid'); //0
			$connectuserid = $adb->query_result($massMessageQuery, $m, 'connectuserid');

			// user details
			$configurationData = Settings_CTWhatsApp_Record_Model::getUserConfigurationAllDataWithId($connectuserid); //scanned user data  DBTable vtiger_ctwhatsappusers

			$apiUrl = $configurationData['api_url'];
			$authToken = $configurationData['authtoken'];
			$customfield1 = $configurationData['customfield1'];
			$whatsappScanNo = $configurationData['whatsappno']; //wp scanned number
			$configureUserid = $configurationData['configureUserid']; //customfield5 wp user id
 
			if($massMsgDateTime == ''){
				$msgSentCronDateTime = $cronDateTime;
			}else{
				$msgSentCronDateTime = $massMsgDateTime;
			}
			if(strtotime($currentDateTime) >= strtotime($msgSentCronDateTime)){	
				// total messages use wise
				$getMassRecordQuery = $adb->pquery("SELECT recordid, status, body, schedulesendmsgid FROM vtiger_ctwhatsappschedulesendmsg WHERE status = 0 AND schedulesendmsgid = $massMessageId LIMIT 0,$batch");

				$massRecordCount = $adb->num_rows($getMassRecordQuery);
				for ($i=0; $i < $massRecordCount; $i++) {

					$wptemplateImage = '';
					$moduleRecordid = $adb->query_result($getMassRecordQuery, $i, 'recordid');
					$status = $adb->query_result($getMassRecordQuery, $i, 'status');
					$body = $adb->query_result($getMassRecordQuery, $i, 'body');
					$schedulesendmsgid = $adb->query_result($getMassRecordQuery, $i, 'schedulesendmsgid');


					// all in one message
					$getOneMassMessage = $adb->pquery("SELECT count(recordid) as totalrecord FROM vtiger_ctwhatsappschedulesendmsg WHERE status = 0 AND recordid = ? AND schedulesendmsgid = ?", array($moduleRecordid, $schedulesendmsgid)); //Row-Count

					$getOneMassMessageCount = $adb->query_result($getOneMassMessage, 0, 'totalrecord');
					if($getOneMassMessageCount){

						$adb->pquery("UPDATE vtiger_ctwhatsappschedulesendmsg SET status = 1 WHERE recordid = ? AND schedulesendmsgid = ?", array($moduleRecordid, $schedulesendmsgid));
					

						//check module 
						$setTypeQuery = $adb->pquery("SELECT setype, deleted FROM vtiger_crmentity WHERE crmid = ?", array($moduleRecordid));
						$sourceModule = $adb->query_result($setTypeQuery, 0, 'setype');
						$deleted = $adb->query_result($setTypeQuery, 0, 'deleted');

						// how many modules
						$whatsappModuleFieldsData = CTWhatsApp_Record_Model::getWhatsappAllowModuleFields($sourceModule); // DBTable vtiger_ctwharsappallow_whatsappmodule
						$phoneField = $whatsappModuleFieldsData['phoneField']; // mobile, phone

						if($deleted == 1){
							$adb->pquery("UPDATE vtiger_ctwhatsappschedulesendmsg SET status = 1, send_msg = 1 WHERE recordid = ?", array($moduleRecordid));
						}else{

							// sender data from module
							$recordModelModel = Vtiger_Record_Model::getInstanceById($moduleRecordid, $sourceModule);
							$displaymobileno = preg_replace('/[^A-Za-z0-9]/', '', $recordModelModel->get($phoneField));
							$bodydata = str_replace('\r\n',' ',html_entity_decode($body));
							$msgbody = getMergedDescription($bodydata,$moduleRecordid,$sourceModule);

							//displayname changes Person Name

					        if($moduleRecordid){
			                    $setype = VtigerCRMObject::getSEType($moduleRecordid);
					            $recordModel = Vtiger_Record_Model::getInstanceById($moduleRecordid, $setype);
					            $displayname = $recordModel->get('label');
			                }else{
					        	$displayname = $displaymobileno;
			                }

			                file_put_contents('displaymobileno.txt', print_r($displaymobileno, true), FILE_APPEND);

					        // mobile number sender number
					        $mobileno = CTWhatsApp_Module_Model::getMobileNumber($displaymobileno, $customfield1); // DBTable vtiger_ctwhatsappconfiguration
					          file_put_contents('mobileno.txt', print_r($mobileno, true), FILE_APPEND);
							if($mobileno){

								//imp user 0/1
								$getnumberImportant = CTWhatsApp_Record_Model::getWhatsappNumberImportant($mobileno);
								$checkNumberWhatsAppQuery = CTWhatsApp_Record_Model::getWhatsAppLogData($mobileno, $moduleRecordid, $whatsappScanNo);						
								$numberactive = $checkNumberWhatsAppQuery['numberactive'];
								if($numberactive != 1){
									$whatsappactiveURL = $apiUrl.'/chat/whatsappNumbers/'.$authToken;
							        $postfieldWhatsAppnumber = array('numbers' => array($mobileno));
							        $whatsAppActiveInActive = CTWhatsApp_WhatsappChat_View::callCURL($whatsappactiveURL, $postfieldWhatsAppnumber, $authToken);
						        	$numberactive = $whatsAppActiveInActive[0]['exists'];
								}

								if($templatesid != ''){
					                $whatsappFolderPath = "/modules/CTWhatsApp/CTWhatsAppStorage/";
					                $generateFolders = CTWhatsApp_Record_Model::generateFoldersforUploadMedia($whatsappFolderPath); 
					                $year = $generateFolders['year'];
					                $month = $generateFolders['month'];
					                $week = $generateFolders['week'];
					            }

					            // if media exist [ return URL]
					            if($templatesid){
					                $getMediaUrl = CTWhatsApp_Record_Model::getMediaUrl($templatesid, $whatsappFolderPath, '' , '' ,'', $year, $month, $week); 
					                $simple_text =  $getMediaUrl['simple_text'];
					            }else{
					                $simple_text = 1;
					            }

					           
					            $filetype =  $getMediaUrl['filetype'];
					            $filename =  $getMediaUrl['filename'];
					            $newfileURL =  $getMediaUrl['newfileURL'];
					            $newBodyfileURL =  $getMediaUrl['newBodyfileURL'];
					            $isTemplatesMedia =  $getMediaUrl['isTemplatesMedia'];
					            if($msgbody != ''){
					                $filename = $msgbody;
					            }

					            if($simple_text == 0){
					                if($newBodyfileURL){
					                    // send media documents message api parameters
					                    $sendMediaMessageRequest = CTWhatsApp_Record_Model::sendMediaMessageRequest($apiUrl, $authToken, $mobileno, $filetype, $filename, $newfileURL);
					                    $url = $sendMediaMessageRequest['url'];
					                    $postfields = $sendMediaMessageRequest['postfields'];
					                }
					            }else{
					                $url = $apiUrl.'/message/sendText/'.$authToken;
					                $postfields = array(
					                    'number' => $mobileno,
					                    'text' => $msgbody
					                );
					            }
					            file_put_contents('postfields.txt', print_r($postfields, true), FILE_APPEND);
					            $val = CTWhatsApp_WhatsappChat_View::callCURL($url, $postfields, $authToken);
					            file_put_contents('val.txt', print_r($val, true), FILE_APPEND);
					            $configurationData = Settings_CTWhatsApp_Record_Model::getUserConfigurationDataWithId();
            					$whatsapplog = $configurationData['whatsapplog'];

					            //Check WhatsAppLog Exist or Not
					            $whatsappLogQuery = CTWhatsApp_Record_Model::getWhatsAppLogData($mobileno, $moduleRecordid, $whatsappScanNo);
					           file_put_contents('whatsappLogQuery.txt', print_r($whatsappLogQuery, true), FILE_APPEND);
					            $whatsapplogRows = $whatsappLogQuery['rows'];
					            if($whatsapplogRows == 0){
					                $recordModel = Vtiger_Record_Model::getCleanInstance('WhatsAppLog');
					                $recordModel->set('whatsapplog_sendername', $currentusername);
					                $recordModel->set('messagelog_type', 'Mass Message');

					                if($newfileURL){
					                    $recordModel->set('messagelog_body', $newBodyfileURL);
					                }else{
					                    $recordModel->set('messagelog_body', $msgbody);
					                }
					               
					                $recordModel->set('whatsapplog_contactid', $moduleRecordid);
					                $recordModel->set('whatsapplog_displayname', $displayname);
					                $recordModel->set('whatsapplog_unreadread', 'Unread');
					                $recordModel->set('whatsapplog_important', $getnumberImportant);
					                $recordModel->set('whatsapplog_your_number', $whatsappScanNo);
					                $recordModel->set('assigned_user_id', $currenUserID);
					                $recordModel->set('whatsapplog_quotemessage', $replymessageText);
					                
				                    $recordModel->set('whatsapplog_withccode', $mobileno);
									$recordModel->set('whatsapplog_withoccode', $schedulesendmsgid);
				                    $recordModel->set('whatsapplog_msgid', $val['key']['id']);
					                $recordModel->set('whatsapplog_datetime', $adb->formatDate($currentDateTime, true));
					                
					                if($numberactive == 1){
					                    $recordModel->set('whatsapp_numberactive', 1);   
					                }else{
					                    $recordModel->set('whatsapp_numberactive', 0);
					                }
					                $requestParam = $url.' ';
					                $requestParam .= json_encode($postfields);    
					                if($whatsapplog == 1){
					                    $recordModel->set('whatsapplog_request', $requestParam);
					                    $recordModel->set('whatsapplog_response', json_encode($val));
					                }

					                // if($msgbody != ''){
					                //     if($getWhatsappAccount->type == 'free' && $oneDayMessages < '100'){
					                //         $recordModel->save();
					                //     }else if($getWhatsappAccount->type == 'premium'){
					                //         $recordModel->save();
					                //     }
					                // }
					                $recordModel->save();
					                $whatsAppLogId = $recordModel->getId();
					            }else{
					                $whatsapplogid = $whatsappLogQuery['whatsapplogid'];
					                $recordModel = Vtiger_Record_Model::getInstanceById($whatsapplogid, 'WhatsAppLog');
					                $recordModel->set('mode', 'edit');
					                $recordModel->set('id', $whatsapplogid);
					                $recordModel->set('whatsapplog_sendername', $currentusername);
					                $recordModel->set('whatsapplog_datetime', $adb->formatDate($currentDateTime, true));
					                $recordModel->set('messagelog_type', 'Send');
					                if($newfileURL){
					                    $recordModel->set('messagelog_body', $newBodyfileURL);
					                }else{
					                    $recordModel->set('messagelog_body', $msgbody);
					                }

					                $recordModel->set('whatsapplog_contactid', $moduleRecordid);
					                $recordModel->set('whatsapplog_displayname', $displayname);
					                if($numberactive == 1){
					                    $recordModel->set('whatsapp_numberactive', 1);   
					                }else{
					                    $recordModel->set('whatsapp_numberactive', 0);
					                }
					                
					                
				                    $recordModel->set('whatsapplog_msgid', $val['key']['id']);
				                    $recordModel->set('whatsapplog_withccode', $mobileno);
									$recordModel->set('whatsapplog_withoccode', $schedulesendmsgid);
					                
					                $requestParam = $url.' ';
					                $requestParam .= json_encode($postfields);    
					                if($whatsapplog == 1){
					                    $recordModel->set('whatsapplog_request', $requestParam);
					                    $recordModel->set('whatsapplog_response', json_encode($val));
					                }
					                $recordModel->save();
					                $whatsAppLogId = $recordModel->getId();
					            }

					            //CTWhatsApp Message add
					            $recordWpModel = Vtiger_Record_Model::getCleanInstance('CTWhatsApp');
					            $recordWpModel->set('whatsapp_sendername', $currentusername);
					            $recordWpModel->set('message_type', 'Mass Message');
					            
					            if($newfileURL){
					                if($msgbody != ''){
					                    $recordWpModel->set('message_caption', $msgbody);
					                }
					                $recordWpModel->set('message_body', $newBodyfileURL);
					            }else{
					                $recordWpModel->set('message_body', $msgbody);
					            }

					            $recordWpModel->set('whatsapp_displayname', $displayname);
					            $recordWpModel->set('whatsapp_contactid', $moduleRecordid);
					            $recordWpModel->set('whatsapp_unreadread', 'Unread');
					            $recordWpModel->set('whatsapp_fromno', $whatsappScanNo);
					            $recordWpModel->set('whatsapp_important', $getnumberImportant);
					            $recordWpModel->set('your_number', $whatsappScanNo);
					            $recordWpModel->set('whatsapp_datetime', $adb->formatDate($currentDateTime, true));
					            $recordWpModel->set('assigned_user_id', $currenUserID);
					            $recordWpModel->set('whatsapp_quotemessage', $replymessageText);
					            $recordWpModel->set('whatsapplog_id', $whatsAppLogId);
					             
					            
				                $recordWpModel->set('whatsapp_withccode', $mobileno);
								$recordWpModel->set('whatsapp_withoccode', $schedulesendmsgid);
				                $recordWpModel->set('msgid', $val['key']['id']);

					            $requestParam = $url.' ';
					            $requestParam .= json_encode($postfields);
					            if($whatsapplog == 1){
					                $recordWpModel->set('whatsapp_request', $requestParam);
					                $recordWpModel->set('whatsapp_response', json_encode($val));
					            }

					            // if($msgbody != ''){
					            //     if($getWhatsappAccount->type == 'free' && $oneDayMessages < '100'){
					            //         $recordWpModel->save();
					            //     }else if($getWhatsappAccount->type == 'premium'){
					            //         $recordWpModel->save();
					            //     }
					            // }
					            $recordWpModel->save();
					            $whatsAppModuleId = $recordWpModel->getId();

					            //update record send msg
								$adb->pquery("UPDATE vtiger_ctwhatsappschedulesendmsg SET send_msg  = 1 WHERE recordid = ? AND schedulesendmsgid = ?", array($moduleRecordid, $schedulesendmsgid));

								//get Latest Message in top
					            if($moduleRecordid){ 
					                $query = "UPDATE vtiger_crmentity SET modifiedtime = '". $adb->formatDate($currentDateTime, true)."'  WHERE crmid = ?";
					                $updateQuery = $adb->pquery($query, array($moduleRecordid));
					            }
							}else{
								$whatsappMessageid = '-';
								$whatsAppLogId = '-';
								$recordModel = Vtiger_Record_Model::getCleanInstance('CTWhatsApp');
								$recordModel->set('whatsapp_sendername', $currentusername);
								$recordModel->set('msgid', '-');
								$recordModel->set('message_type', 'Mass Message');
								$recordModel->set('message_body', $msgbody);
								$recordModel->set('whatsapp_contactid', $moduleRecordid);
								$recordModel->set('whatsapp_unreadread', 'Unread');
								$recordModel->set('whatsapp_withccode', $mobileno);
								$recordModel->set('whatsapp_withoccode', $schedulesendmsgid);
								$recordModel->set('whatsapp_fromno', $whatsappScanNo);
								$recordModel->set('your_number', $whatsappScanNo);
								$recordModel->set('assigned_user_id', $currenUserID);
								$recordModel->set('whatsapp_datetime', $adb->formatDate($currentDateTime, true));
								$requestParam = $url.' ';
								$requestParam .= json_encode($postfields);
								$recordModel->set('whatsapp_request', $requestParam);
								$recordModel->set('whatsapp_response', 'Number is not available.');
								$recordModel->set('whatsapplog_id', $whatsAppLogId);
								
								// if($getWhatsappAccount->type == 'free' && $oneDayMessages < '100'){
								// 	$recordModel->save();
								// 	$whatsAppLogId = $recordModel->getId();
								// }else if($getWhatsappAccount->type == 'premium'){
								// 	$recordModel->save();
								// 	$whatsAppLogId = $recordModel->getId();
								// }

								$recordModel->save();

								//update record send msg
								$adb->pquery("UPDATE vtiger_ctwhatsappschedulesendmsg SET send_msg  = 1 WHERE recordid = ? AND schedulesendmsgid = ?", array($moduleRecordid, $schedulesendmsgid));
							}
						}
					}

					echo "run ".$moduleRecordid;echo "<br>";
				}
			}
		}
	}
	echo "exit";
}

Youez - 2016 - github.com/yon3zu
LinuXploit