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

Extensions

Licences sportives : automatiser renouvellements et rappels dans une extension

Un club sportif associatif peut suivre l'échéance de chaque licence et envoyer les rappels automatiquement, sans service tiers payant, avec les outils natifs de WordPress.

Par WordPress Développement • 9 mai 2021 • 4 min de lecture • Aucun commentaire
Licences sportives : automatiser renouvellements et rappels dans une extension

Début de saison sportive : c’est souvent le moment où un club associatif redécouvre, trop tard, qu’une dizaine de licences ont expiré sans que personne n’ait pensé à prévenir les adhérents concernés. Un tableur partagé permet de suivre les dates, mais personne ne le consulte assez régulièrement pour anticiper les échéances une par une.

Construire ce suivi directement dans une extension WordPress, plutôt que de dépendre d’un service de notification tiers payant, reste tout à fait accessible avec les outils déjà présents dans le cœur : une métadonnée de date, une tâche planifiée quotidienne et l’envoi d’e-mails natif.

Étape 1 : stocker la date d’expiration sur la fiche adhérent

update_post_meta( $adherent_id, 'licence_expiration', '2021-09-15' );

Un type de contenu personnalisé adherent, avec cette métadonnée en date ISO, suffit pour représenter l’échéance de chaque licence sans dépendance à une table personnalisée.

Étape 2 : planifier une vérification quotidienne

function wpm_planifier_verification_licences() {
    if ( ! wp_next_scheduled( 'wpm_verifier_licences' ) ) {
        wp_schedule_event( time(), 'daily', 'wpm_verifier_licences' );
    }
}
add_action( 'init', 'wpm_planifier_verification_licences' );

Planifier une seule tâche quotidienne, plutôt qu’une tâche par licence, évite de multiplier les événements wp_cron inutilement : la tâche unique parcourt ensuite l’ensemble des adhérents à chaque exécution.

Étape 3 : parcourir les adhérents et calculer l’échéance

add_action( 'wpm_verifier_licences', 'wpm_verifier_licences_callback' );

function wpm_verifier_licences_callback() {
    $seuils = array( 30, 15, 3 );

    $adherents = get_posts( array(
        'post_type'      => 'adherent',
        'posts_per_page' => -1,
        'fields'         => 'ids',
    ) );

    foreach ( $adherents as $id ) {
        $expiration = get_post_meta( $id, 'licence_expiration', true );
        if ( ! $expiration ) {
            continue;
        }

        $jours_restants = (int) ceil( ( strtotime( $expiration ) - time() ) / DAY_IN_SECONDS );

        if ( in_array( $jours_restants, $seuils, true ) ) {
            wpm_envoyer_rappel_licence( $id, $jours_restants );
        }
    }
}
L'essentiel à retenir : Une métadonnée de date d'expiration suffit à piloter les rappels ; wp_schedule_event tourne une fois par jour, pas à chaque licence ; wp_mail avec un contenu HTML simple reste largement suffisant

Étape 4 : envoyer le rappel avec wp_mail

function wpm_envoyer_rappel_licence( $adherent_id, $jours_restants ) {
    $email = get_post_meta( $adherent_id, 'adherent_email', true );
    $nom   = get_the_title( $adherent_id );

    if ( ! is_email( $email ) ) {
        return;
    }

    $sujet  = sprintf( 'Votre licence expire dans %d jours', $jours_restants );
    $corps  = sprintf(
        "Bonjour %s,\n\nVotre licence sportive arrive à échéance dans %d jours. Merci de la renouveler auprès du secrétariat du club.\n\nSportivement,\nLe bureau.",
        $nom,
        $jours_restants
    );

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

Étape 5 : éviter les doublons d’envoi

Si la tâche quotidienne s’exécute deux fois le même jour, par exemple à cause d’une intervention manuelle ou d’un souci d’hébergement, un même rappel pourrait partir deux fois. Une métadonnée de suivi évite ce doublon :

  • Enregistrer licence_dernier_rappel avec la date du jour après chaque envoi
  • Vérifier cette valeur avant d’envoyer un nouveau rappel pour le même seuil
  • Réinitialiser cette métadonnée lors du renouvellement effectif de la licence

Pourquoi ne pas passer par un service tiers

Pour un club associatif dont le budget reste limité, un service d’envoi transactionnel tiers ajoute un coût récurrent difficile à justifier pour quelques dizaines d’e-mails par mois. wp_mail(), correctement configuré avec un plugin SMTP si l’hébergeur le recommande, suffit largement à ce volume.

ÉtapeMécanisme WordPress
Stockage de l’échéanceMétadonnée de contenu
Vérification périodiquewp_schedule_event (daily)
Envoi du rappelwp_mail()
Anti-doublonMétadonnée de suivi du dernier envoi

Sur un projet associatif à budget serré, la meilleure extension est souvent celle qui n’ajoute aucune dépendance tierce payante pour un besoin que le cœur de WordPress couvre déjà.

En résumé

Un système de rappel de licences sportives n’exige ni service payant ni architecture complexe : une métadonnée de date, une tâche planifiée quotidienne et l’envoi natif d’e-mails suffisent à couvrir le besoin d’un club associatif de taille modeste, avec un rythme de rappels qui limite à la fois les oublis et la lassitude des adhérents devant des notifications trop fréquentes.

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