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

Astuces

Alerter un souscripteur avant le renouvellement de son contrat de mutuelle

Un espace adhérent géré sous WordPress peut envoyer une alerte automatique avant l'échéance d'un contrat de mutuelle, sans jamais calculer le nouveau tarif : seule la date compte pour déclencher ce rappel.

Par WordPress Développement • 20 juillet 2023 • 4 min de lecture • Aucun commentaire
Alerter un souscripteur avant le renouvellement de son contrat de mutuelle

Une alerte envoyée soixante jours avant l’échéance d’un contrat n’a rien à voir avec un email de relance commerciale envoyé au hasard : elle repose sur une date exacte, connue et enregistrée depuis la souscription initiale. C’est cette précision qui distingue une automatisation utile d’un rappel générique que l’adhérent finit par ignorer.

Sur un espace adhérent construit sous WordPress, chaque contrat de mutuelle est représenté par un type de contenu contrat_mutuelle, avec un champ date_echeance qui fixe la date de fin de la période d’engagement en cours. Ce champ, déjà présent pour d’autres besoins de gestion, sert de base unique au déclenchement de l’alerte, sans qu’aucun nouveau champ ne soit nécessaire.

Ce que cette alerte fait, et ce qu’elle ne fait pas

Contrairement à un module de gestion contractuelle complet, cette automatisation ne calcule aucun nouveau tarif et ne modifie aucune donnée du contrat. Elle se limite strictement à informer l’adhérent qu’une échéance approche, en laissant le calcul tarifaire et la décision de renouvellement au service concerné, souvent géré par un système métier distinct de WordPress.

Mettre en place la vérification quotidienne

L'essentiel à retenir : L'alerte ne dépend que de la date d'échéance enregistrée sur le contrat ; Le calcul du nouveau tarif reste hors du périmètre de cette automatisation ; Un seul champ de garde évite l'envoi répété de la même alerte
if ( ! wp_next_scheduled( 'wpm_verifier_echeances_mutuelle' ) ) {
    wp_schedule_event( strtotime( 'today 08:00' ), 'daily', 'wpm_verifier_echeances_mutuelle' );
}

add_action( 'wpm_verifier_echeances_mutuelle', 'wpm_alerter_adherents_echeance_proche' );

function wpm_alerter_adherents_echeance_proche() {
    $contrats = get_posts( array(
        'post_type'      => 'contrat_mutuelle',
        'posts_per_page' => -1,
    ) );

    foreach ( $contrats as $contrat ) {
        $echeance = get_post_meta( $contrat->ID, 'date_echeance', true );

        if ( ! $echeance ) {
            continue;
        }

        $jours_restants = (int) ( ( strtotime( $echeance ) - current_time( 'timestamp' ) ) / DAY_IN_SECONDS );
        $deja_alerte    = get_post_meta( $contrat->ID, 'alerte_echeance_envoyee', true );

        if ( $jours_restants <= 60 && $jours_restants > 0 && ! $deja_alerte ) {
            wpm_envoyer_email_alerte_echeance( $contrat->ID );
            update_post_meta( $contrat->ID, 'alerte_echeance_envoyee', 1 );
        }
    }
}

Le champ de garde contre les envois répétés

Sans le champ alerte_echeance_envoyee, la tâche quotidienne renverrait le même email à chaque exécution tant que l’échéance reste dans la fenêtre des soixante jours, ce qui inonderait l’adhérent de rappels identiques. Ce champ, remis à zéro uniquement lors du renouvellement effectif du contrat, garantit un envoi unique par échéance.

Le contenu de l’email d’alerte

L’email envoyé reste volontairement factuel : la date d’échéance exacte, un rappel des garanties actuellement souscrites, et un lien vers l’espace adhérent pour consulter les options de renouvellement. Aucun montant chiffré n’y figure, car ce calcul dépend de règles tarifaires gérées ailleurs :

function wpm_envoyer_email_alerte_echeance( $contrat_id ) {
    $adherent_id = get_post_meta( $contrat_id, 'id_adherent', true );
    $email       = get_the_author_meta( 'user_email', $adherent_id );
    $echeance    = get_post_meta( $contrat_id, 'date_echeance', true );

    $sujet  = 'Votre contrat arrive à échéance';
    $corps  = 'Votre contrat arrive à échéance le ' . wp_date( 'd/m/Y', strtotime( $echeance ) ) . '. Consultez votre espace adhérent pour les modalités de renouvellement.';

    wp_mail( $email, $sujet, $corps );
}

Réinitialiser le champ de garde au renouvellement

Quand le contrat est effectivement renouvelé, un nouveau date_echeance est enregistré, généralement un an plus tard, et le champ de garde doit être remis à zéro pour permettre une future alerte sur la nouvelle échéance :

  • Un hook déclenché lors de la mise à jour du champ date_echeance réinitialise automatiquement alerte_echeance_envoyee.
  • Aucune intervention manuelle n’est nécessaire de la part de l’équipe support pour ce cycle de renouvellement.
  • Le même mécanisme fonctionne quel que soit le nombre d’années restant à courir sur le contrat.

Conseil maison : une automatisation d’alerte n’a de valeur que si elle reste silencieuse une fois le message envoyé. Un champ de garde simple évite bien des plaintes d’adhérents submergés de rappels identiques.

En résumé

Contrairement à un système de gestion contractuelle complet, cette alerte se limite volontairement à une seule responsabilité : prévenir à temps, sur la base d’une date fiable, sans jamais empiéter sur le calcul tarifaire du renouvellement. Cette sobriété la rend simple à maintenir et facile à faire évoluer si les règles de délai venaient à changer.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

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

Voir tous ses articles

Dans la même veine

À lire aussi