Le WordPress d'aujourd'hui, décodé pour les développeurs

Tips

Anticiper l’échéance d’un contrat de maintenance BTP avec un rappel automatique

Le 1er juillet reste une bonne date pour vérifier ses automatisations avant la pause estivale : voici comment programmer un rappel avant l'échéance d'un contrat d'entretien.

Par Clément Hadrot • 1 juillet 2025 • 2 min de lecture • Aucun commentaire
Anticiper l'échéance d'un contrat de maintenance BTP avec un rappel automatique

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

L'essentiel à retenir : Vérification quotidienne des dates d'échéance via wp-cron ; Email de rappel envoyé à un seuil de jours configurable ; Statut du contrat mis à jour automatiquement après relance

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.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi