Le 1er juillet marque, pour beaucoup d’entreprises du bâtiment, la dernière vérification des automatisations avant la pause estivale : contrats d’entretien de chaufferies, de portails automatiques ou d’ascenseurs continuent de courir pendant les congés, et personne ne doit découvrir une échéance dépassée à la rentrée.
Une entreprise du bâtiment qui gère ses contrats de maintenance sous WordPress, via un type de contenu personnalisé, a besoin d’un rappel automatique déclenché suffisamment tôt avant la date de fin de chaque contrat, sans dépendre de la mémoire d’un chargé de compte.
Le socle : une tâche planifiée quotidienne
Le système wp-cron de WordPress, déclenché à chaque visite du site, permet de programmer une vérification régulière des contrats arrivant à échéance, sans installer d’extension de gestion de contrats dédiée pour ce seul besoin.
if ( ! wp_next_scheduled( 'verifier_echeances_contrats' ) ) {
wp_schedule_event( time(), 'daily', 'verifier_echeances_contrats' );
}
add_action( 'verifier_echeances_contrats', 'executer_verification_contrats' );
Identifier les contrats concernés

La fonction exécutée quotidiennement interroge les contrats actifs dont la date de fin tombe dans une fenêtre définie, par exemple trente jours, et déclenche un envoi d’email de rappel pour chacun d’eux.
function executer_verification_contrats() {
$seuil = strtotime( '+30 days' );
$contrats = get_posts( array(
'post_type' => 'contrat_maintenance',
'meta_query' => array(
array(
'key' => 'date_fin_contrat',
'value' => date( 'Ymd', $seuil ),
'compare' => '<=',
'type' => 'DATE',
),
array(
'key' => 'rappel_envoye',
'value' => '1',
'compare' => '!=',
),
),
) );
foreach ( $contrats as $contrat ) {
envoyer_rappel_echeance( $contrat->ID );
update_post_meta( $contrat->ID, 'rappel_envoye', '1' );
}
}
Le champ rappel_envoye évite l’écueil classique d’un rappel envoyé chaque jour pendant tout le mois précédant l’échéance, ce qui finirait par lasser le destinataire au lieu de l’alerter utilement.
Ce que contient l’email de rappel
- Le nom du client et la référence exacte du contrat concerné
- La date précise d’échéance, sans ambiguïté de format
- Un lien direct vers la fiche du contrat dans l’administration
Adapter le seuil selon le type de contrat
Un contrat d’entretien de chaufferie collective mérite un rappel plus précoce qu’un simple contrat d’entretien d’espaces verts, du fait des délais d’intervention souvent plus longs pour planifier une visite technique. Le seuil de rappel gagne donc à être un champ personnalisé propre à chaque contrat, plutôt qu’une constante fixe dans le code.
Un rappel envoyé trop tard ne sert à rien ; un rappel envoyé trop tôt se noie dans les priorités du moment. Le bon seuil se calibre avec les équipes terrain, pas dans le code seul.
Vérifier que wp-cron s’exécute réellement
Sur un site à faible fréquentation, le déclencheur natif de wp-cron, basé sur les visites, peut manquer une journée entière sans passage de visiteur. Une tâche planifiée réelle côté serveur, appelant wp-cli cron event run --due-now, garantit une exécution fiable indépendamment du trafic du site.
Prévoir un second rappel plus tardif
Un seul rappel envoyé trente jours avant l’échéance ne suffit pas toujours si le contact chez le client tarde à répondre. Un second seuil, fixé par exemple à sept jours avant l’échéance, avec un ton plus insistant, complète utilement le dispositif sans multiplier excessivement les sollicitations.
$seuils = array( 30, 7 );
foreach ( $seuils as $jours ) {
$meta_key = 'rappel_envoye_' . $jours . 'j';
// Répéter la logique de vérification pour chaque seuil,
// avec sa propre clé de suivi d'envoi.
}
En résumé
Une tâche planifiée quotidienne, couplée à un champ de suivi d’envoi, suffit à sécuriser le suivi des échéances de contrats de maintenance sans extension dédiée. Le renouvellement automatique du contrat lui-même, avec ses implications contractuelles, reste un processus distinct qui dépasse le simple rappel.