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 .= ""; $body .= "

Merci

"; $body .= "

"; $body .= "

Se désinscrire des alertes

"; $body .= ""; email($alert->email, "[LDC] Poste(s) correspondant(s) à vos critères de recherche", $body); } } } function email($email, $subject, $message) { $headers[] = 'From: Groupe LDC '; wp_mail($email, $subject, $message, $headers); }