jobs) || !isset($result->contracts) || !isset($result->workingTimes)) { email(MAIL_ADMIN, '[ERROR] Erreur "API" Digital Recruiter : DRUpdate', 'Les variables obligatoires ne sont pas présentes.'); die(); } foreach ($result->jobs as $k => $job) { $wpdb->replace( 'wp_digitalrecruiter_jobs', array( 'id' => $k, 'name' => $job, ), array( '%d', '%s', ) ); } foreach ($result->contracts as $k => $v) { $wpdb->replace( 'wp_digitalrecruiter_contracts', array( 'id' => $k, 'name' => $v, ), array( '%d', '%s', ) ); } foreach ($result->workingTimes as $k => $v) { $wpdb->replace( 'wp_digitalrecruiter_workingtimes', array( 'id' => $k, 'name' => $v, ), array( '%d', '%s', ) ); } } function DRGetDailyJobs($offset, $total) { global $wpdb; if ($total === 0) $wpdb->query("TRUNCATE TABLE `wp_digitalrecruiter_dailyjobs`"); $reset = ($total === 0 ? 1 : 0); $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, "https://recrutement.ldc.fr/fr/careers-sites/job-ads-more/28691/0/$offset/0/0?reset=$reset"); $result = curl_exec($ch); if (!curl_errno($ch)) { $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); if ($http_code !== 200) { email(MAIL_ADMIN, '[ERROR] Erreur "API" Digital Recruiter : DRGetDailyJobs', 'Code HTTP de l\'erreur : ' . $http_code); die(); } } else { email(MAIL_ADMIN, '[ERROR] Erreur "API" Digital Recruiter : DRGetDailyJobs', 'Erreur cURL'); die(); } curl_close($ch); $result = json_decode($result); if ($total === 0) { if (!isset($result->jobAds) || !isset($result->joined) || !isset($result->total)) { email(MAIL_ADMIN, '[ERROR] Erreur "API" Digital Recruiter : DRGetDailyJobs', 'Les variables obligatoires ne sont pas présentes (1).'); die(); } } else { if (!isset($result->jobAds) || !isset($result->joined)) { email(MAIL_ADMIN, '[ERROR] Erreur "API" Digital Recruiter : DRGetDailyJobs', 'Les variables obligatoires ne sont pas présentes (2).'); die(); } } foreach ($result->jobAds as $job) { $wpdb->insert( 'wp_digitalrecruiter_dailyjobs', array( 'title' => $job->title, 'url' => $result->joined->apply_url->{$job->id}->{$job->address_id}, 'contract_id' => $job->contract_type_id, 'workingtime_id' => $job->working_time, 'job_id' => $job->referentiel_id ), array( '%s', '%s', '%d', '%d', '%d', ) ); } if ($total === 0) { if ($result->total > $offset) { return DRGetDailyJobs($offset + 20, $result->total); } } else { if ($total > $offset) { return DRGetDailyJobs($offset + 20, $total); } } } function DRMailAlert() { global $wpdb; //Récupère les informations des personnes enregistrés pour l'alerte $alertData = $wpdb->get_results("SELECT * FROM wp_digitalrecruiter_jobalert"); foreach ($alertData as $alert) { $filters = []; if ($alert->contract_id !== NULL) $filters[] = "contract_id = " . $alert->contract_id; if ($alert->workingtime_id !== NULL) $filters[] = "workingtime_id = " . $alert->workingtime_id; if ($alert->job_id !== NULL) $filters[] = "job_id = " . $alert->job_id; if (!empty($filters)) { $jobs = $wpdb->get_results("SELECT * FROM wp_digitalrecruiter_dailyjobs WHERE " . implode(" AND ", $filters)); } else { $jobs = $wpdb->get_results("SELECT * FROM wp_digitalrecruiter_dailyjobs"); } //Envoi du mail s'il y a des annonces correspondantes if (count($jobs) > 0) { $body = ""; $body .= "
"; $body .= ""; $body .= "Bonjour,
"; $body .= "Vous vous êtes inscrits pour recevoir des alertes aux annonces LDC correspondantes a votre profil.
"; $body .= "De nouveaux résultats (" . count($jobs) . ") sont disponibles :
"; $body .= "Merci
"; $body .= "