get_all(); // Log the start of the script error_log('Cron job started: ' . date('Y-m-d H:i:s')); // $config = MkdConfig::get_instance()->get_config(); // $apikey = $config['gohighlevel_key']; foreach ($loctions as $key => $location) { # code... $apikey = $location->apikey; $curlOptions1 = [ CURLOPT_URL => "https://rest.gohighlevel.com/v1/locations", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Accept: application/json", "Authorization: Bearer " . $apikey, "Version: 2021-04-15" ], ]; // Initialize cURL session $ch1 = curl_init(); // Set cURL options curl_setopt_array($ch1, $curlOptions1); // Execute cURL session and get the result $response1 = curl_exec($ch1); if (curl_errno($ch1)) { error_log('Curl error ' . curl_error($ch1)); } else { // Log the webhook response error_log(' response ' . $response1); $response1 = json_decode($response1); $currentTimestamp = time(); $previousDayStartTimestamp2 = strtotime('yesterday', strtotime(date('Y-m-d', $currentTimestamp))) * 1000; // Set up cURL options $curlOptions = [ CURLOPT_URL => "https://rest.gohighlevel.com/v1/contacts?startAfter=" . $previousDayStartTimestamp2, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Accept: application/json", "Authorization: Bearer " . $apikey, "Version: 2021-04-15" ], ]; // Initialize cURL session $ch = curl_init(); // Set cURL options curl_setopt_array($ch, $curlOptions); // Execute cURL session and get the result $response = curl_exec($ch); // Check for cURL errors if (curl_errno($ch)) { error_log('Curl error ' . curl_error($ch)); } else { // Log the webhook response // error_log(' response ' . $response); $response = json_decode($response); $con_count = count($response->contacts); // error_log(' con ' . $con_count); } // Close cURL session curl_close($ch); // foreach ($response->contacts as $con) { // error_log(' response ' . json_encode($res)); // if ($app->status == "booked") { // $con_count[] = $con; // } // Log the webhook response // } // Set up cURL options // foreach ($response1 as $res1) { // error_log(' response ' . json_encode($res1)); $curlOptions2 = [ CURLOPT_URL => "https://rest.gohighlevel.com/v1/users?locationId={$response1->locations[0]->id}", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Accept: application/json", "Authorization: Bearer " . $apikey, "Version: 2021-04-15" ], ]; // Initialize cURL session $ch2 = curl_init(); // Set cURL options curl_setopt_array($ch2, $curlOptions2); // Execute cURL session and get the result $response2 = curl_exec($ch2); if (curl_errno($ch2)) { error_log('Curl error ' . curl_error($ch2)); } else { $currentTimestamp = time(); // Calculate start timestamp for the previous day $previousDayStartTimestamp = strtotime('yesterday', strtotime(date('Y-m-d', $currentTimestamp))) * 1000; // Calculate end timestamp for the previous day $previousDayEndTimestamp = $previousDayStartTimestamp + (24 * 60 * 60 * 1000) - 1; // error_log(' startOfYesterdayTimestamp ' . $previousDayStartTimestamp); // error_log(' endOfYesterdayTimestamp ' . $previousDayEndTimestamp); $response2 = json_decode($response2); $app_count = []; foreach ($response2->users as $res2) { $curlOptions3 = [ CURLOPT_URL => "https://rest.gohighlevel.com/v1/appointments?userId=" . $res2->id . "&startDate=" . $previousDayStartTimestamp . "&endDate=" . $previousDayEndTimestamp, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Accept: application/json", "Authorization: Bearer " . $apikey, "Version: 2021-04-15" ], ]; // Initialize cURL session $ch3 = curl_init(); // Set cURL options curl_setopt_array($ch3, $curlOptions3); // Execute cURL session and get the result $response3 = curl_exec($ch3); $user_app_count = []; if (curl_errno($ch3)) { error_log('Curl error ' . curl_error($ch3)); } else { $response3 = json_decode($response3); foreach ($response3->appointments as $app) { if ($app->status == "booked") { $user_app_count[] = $app; } // Log the webhook response error_log(' response ' . $response3); } $app_count[] = $user_app_count; } curl_close($ch3); } } curl_close($ch2); // Convert to seconds $previousDayStartTimestampInSeconds = $previousDayStartTimestamp / 1000; // Format the timestamp $formattedDate = date('Y-m-d', $previousDayStartTimestampInSeconds); $project = $response1->locations[0]->name; $date = $formattedDate; $new_lead = $con_count; $outbound_dial = 0; $pickup = 0; $conversation = 0; $booked_appointment = count($app_count); $callback_request = 0; $current_date = date('Y-m-d H:i:s'); $data = [ 'project' => $project, 'date' => $date, 'new_lead' => $new_lead, 'outbound_dial' => $outbound_dial, 'pickup' => $pickup, 'conversation' => $conversation, 'booked_appointment' => $booked_appointment, 'callback_request' => $callback_request, 'created_at' => $current_date ]; error_log(' data ' . json_encode($data)); // Insert data into the database using LicenseModel // $reportModel = new ReportModel(); // $reportModel->create($data); } curl_close($ch1); // error_log(' response ' . $response1); } // // Check for cURL errors // if (curl_errno($ch)) { // error_log('Curl error ' . curl_error($ch)); // } else { // // Log the webhook response // // error_log(' response ' . $response); // $response = json_decode($response); // foreach ($response->users as $res) { // error_log(' response ' . json_encode($res)); // // Set up cURL options // $curlOptions2 = [ // CURLOPT_URL => "https://rest.gohighlevel.com/v1/locations/" . $res->roles->locationIds[0], // CURLOPT_RETURNTRANSFER => true, // CURLOPT_ENCODING => "", // CURLOPT_MAXREDIRS => 10, // CURLOPT_TIMEOUT => 30, // CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // CURLOPT_CUSTOMREQUEST => "GET", // CURLOPT_HTTPHEADER => [ // "Accept: application/json", // "Authorization: Bearer " . $apikey, // "Version: 2021-04-15" // ], // ]; // // Initialize cURL session // $ch2 = curl_init(); // // Set cURL options // curl_setopt_array($ch2, $curlOptions2); // // Execute cURL session and get the result // $response2 = curl_exec($ch2); // if (curl_errno($ch2)) { // error_log('Curl error ' . curl_error($ch2)); // } else { // // Log the webhook response // // error_log(' response ' . $response2); // // $response2 = json_decode($response2); // // foreach ($response2 as $res2) { // // error_log(' response ' . json_encode($res2)); // // } // } // curl_close($ch2); // $currentTimestamp = time(); // // Calculate start timestamp for the previous day // $previousDayStartTimestamp = strtotime('yesterday', strtotime(date('Y-m-d', $currentTimestamp))) * 1000; // // Calculate end timestamp for the previous day // $previousDayEndTimestamp = $previousDayStartTimestamp + (24 * 60 * 60 * 1000) - 1; // // error_log(' startOfYesterdayTimestamp ' . $previousDayStartTimestamp); // // error_log(' endOfYesterdayTimestamp ' . $previousDayEndTimestamp); // $curlOptions3 = [ // CURLOPT_URL => "https://rest.gohighlevel.com/v1/appointments?userId=" . $res->id . "&startDate=" . $previousDayStartTimestamp . "&endDate=" . $previousDayEndTimestamp, // CURLOPT_RETURNTRANSFER => true, // CURLOPT_ENCODING => "", // CURLOPT_MAXREDIRS => 10, // CURLOPT_TIMEOUT => 30, // CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // CURLOPT_CUSTOMREQUEST => "GET", // CURLOPT_HTTPHEADER => [ // "Accept: application/json", // "Authorization: Bearer " . $apikey, // "Version: 2021-04-15" // ], // ]; // // Initialize cURL session // $ch3 = curl_init(); // // Set cURL options // curl_setopt_array($ch3, $curlOptions3); // // Execute cURL session and get the result // $response3 = curl_exec($ch3); // $app_count = []; // if (curl_errno($ch3)) { // error_log('Curl error ' . curl_error($ch3)); // } else { // $response3 = json_decode($response3); // foreach ($response3->appointments as $app) { // if ($app->status == "booked") { // $app_count[] = $app; // } // // Log the webhook response // error_log(' response ' . $response3); // } // // $response2 = json_decode($response2); // // foreach ($response2 as $res2) { // // error_log(' response ' . json_encode($res2)); // // } // } // curl_close($ch3); // // $curlOptions4 = [ // // CURLOPT_URL => "https://rest.gohighlevel.com/v1/contacts?startAfter=" . $previousDayStartTimestamp, // // CURLOPT_RETURNTRANSFER => true, // // CURLOPT_ENCODING => "", // // CURLOPT_MAXREDIRS => 10, // // CURLOPT_TIMEOUT => 30, // // CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, // // CURLOPT_CUSTOMREQUEST => "GET", // // CURLOPT_HTTPHEADER => [ // // "Accept: application/json", // // "Authorization: Bearer " . $apikey, // // "Version: 2021-04-15" // // ], // // ]; // // // Initialize cURL session // // $ch4 = curl_init(); // // // Set cURL options // // curl_setopt_array($ch4, $curlOptions4); // // // Execute cURL session and get the result // // $response4 = curl_exec($ch4); // // $con_count = []; // // if (curl_errno($ch4)) { // // error_log('Curl error ' . curl_error($ch4)); // // } else { // // $response4 = json_decode($response4); // // foreach ($response4->contacts as $con) { // // if ($con->status == "booked") { // // $con_count[] = $app; // // } // // // Log the webhook response // // error_log(' response ' . $response4); // // } // // // $response2 = json_decode($response2); // // // foreach ($response2 as $res2) { // // // error_log(' response ' . json_encode($res2)); // // // } // // } // // curl_close($ch4); // // Convert to seconds // $previousDayStartTimestampInSeconds = $previousDayStartTimestamp / 1000; // // Format the timestamp // $formattedDate = date('Y-m-d', $previousDayStartTimestampInSeconds); // $project = ""; // $date = $formattedDate; // $ghl_user_id = $res->id; // $username = $res->name; // $new_lead = 0; // $outbound_dial = 0; // $pickup = 0; // $conversation = 0; // $booked_appointment = count($app_count); // $callback_request = 0; // $current_date = date('Y-m-d H:i:s'); // $data = [ // 'project' => $project, // 'date' => $date, // 'ghl_user_id' => $ghl_user_id, // 'username' => $username, // 'new_lead' => $new_lead, // 'outbound_dial' => $outbound_dial, // 'pickup' => $pickup, // 'conversation' => $conversation, // 'booked_appointment' => $booked_appointment, // 'callback_request' => $callback_request, // 'created_at' => $current_date // ]; // error_log(' data ' . json_encode($data)); // // Insert data into the database using LicenseModel // $reportModel = new ReportModel(); // $reportModel->create($data); // } // } // // Close cURL session // curl_close($ch); // Log the end of the script error_log('Cron job completed: ' . date('Y-m-d H:i:s'));