Skip to main content

Débogage & Maintenance

Logs WordPress

Toutes les étapes clés de l'intégration sont tracées via error_log(). Les logs sont visibles dans le fichier d'erreur PHP du serveur (généralement /var/log/php/error.log ou dans le debug.log WordPress si WP_DEBUG_LOG est activé).

Import des offres

Message logSignification
Erreur API: <message>La requête HTTP vers GetJobOfferList a échoué (réseau, timeout…)
Debug: new_job_ids = [...]Liste des PositionID reçus — affiché avant chaque phase de suppression
Warning: _position_id vide pour post ID XUn post job_offer en base n'a pas de meta _position_id — ne sera pas supprimé
Vérification de l'ID X dans new_job_idsTrace de la comparaison pour chaque offre existante
Post supprimé : XPost WordPress supprimé car absent de l'API

Candidatures

Message logSignification
Formulaire : demande_offreDéclenchement du hook pour une candidature sur offre
Formulaire : candidature_spontaneeDéclenchement du hook pour une candidature spontanée
selected_offer : <valeur>Valeur brute reçue du champ Elementor
JobID extrait : XPost ID WordPress résolu depuis selected_offer
PositionID récupéré : XID HRMaps correspondant au post WP
Le fichier CV est manquant ou invalide.Champ cv absent ou vide — l'envoi est annulé
Fichier encodé en Base64, taille: X caractèresCV encodé avec succès, taille de la chaîne base64
Fichier téléchargé temporairement: <path>Fallback download_url() utilisé
Erreur lors du téléchargement: <message>Échec du fallback — envoi annulé
Succès API : Candidature envoyée avec succèsRéponse HTTP 200 de HRMaps
Erreur API (Code X) : <body>HRMaps a retourné une erreur

Activer les logs WordPress

Pour activer WP_DEBUG_LOG et écrire les error_log() dans wp-content/debug.log :

// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false); // Ne pas afficher les erreurs en front

Erreurs courantes

L'import ne se déclenche pas automatiquement

Cause probable : WP-Cron ne se déclenche qu'au chargement d'une page WordPress.

Solution : Vérifier que le cron est bien planifié depuis l'admin ou via WP-CLI :

wp cron event list

Si import_jobs_event n't apparaît pas :

wp cron event schedule import_jobs_event now hourly

Les offres ne sont pas supprimées alors qu'elles ont disparu de HRMaps

Cause probable : Le post WP n'a pas de meta _position_id (post créé manuellement ou meta corrompue).

Diagnostic : Chercher dans les logs Warning: _position_id vide pour post ID X.

Solution : Supprimer manuellement le post depuis l'admin WP, ou ajouter la meta manquante.


Le CV n'est pas transmis à HRMaps

Causes possibles :

  • Le champ upload Elementor n'a pas cv dans son ID
  • Le fichier uploadé a été supprimé avant l'exécution du hook
  • L'URL ne peut pas être résolue en chemin local (CDN externe, par exemple)

Diagnostic : Chercher Le fichier CV est manquant ou invalide. ou Le fichier CV n'existe pas au chemin: dans les logs.


La candidature est envoyée mais HRMaps retourne une erreur

Diagnostic : Chercher Erreur API (Code X) dans les logs. Le corps de la réponse HRMaps contient généralement un message explicite.

Causes fréquentes :

  • PositionID null ou invalide (offre supprimée entre l'affichage et la soumission)
  • CV trop volumineux (limite HRMaps à vérifier)
  • FileType non reconnu

Points d'attention & améliorations suggérées

#PointImpactSuggestion
1Fichiers temporaires non supprimésAccumulation disqueAjouter @unlink($temp_file) après encodage base64
2Suppression définitive des offresIrréversibleEnvisager un statut draft plutôt que suppression directe, ou archiver dans une table custom
3_start_date tronquée à 9 car.Date potentiellement incorrecteVérifier le format retourné par l'API et ajuster le substr si nécessaire
4Gender: 1 en durDonnées incorrectes potentiellesÀ aligner avec HRMaps si le champ devient obligatoire
5WP-Cron dépendant du traficSync retardéeConfigurer un cron système (curl wp-cron.php)
6Aucune mise à jour des offres existantesDonnées potentiellement obsolètesImplémenter un update_post_meta si l'offre existe déjà (titre, dates, etc.)
7Typo _adressConfusion maintenanceDocumenter comme intentionnelle, ne pas corriger sans migration complète