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

Astuces

Un lien « exporter mes données » pour un utilisateur de plateforme e-learning

WordPress fournit déjà un outil natif d'export des données personnelles. Voici comment l'exposer proprement à un apprenant plutôt que d'en recoder un depuis zéro.

Par WordPress Développement • 2 avril 2023 • 3 min de lecture • Aucun commentaire
Un lien « exporter mes données » pour un utilisateur de plateforme e-learning

L’outil existe déjà dans le cœur de WordPress depuis la version 4.9.6 : le menu Outils > Exporter les données personnelles génère, pour n’importe quel utilisateur identifié par son adresse e-mail, un fichier JSON ou HTML contenant l’ensemble de ses données personnelles enregistrées sur le site. Sur une plateforme e-learning, ce constat change la donne : plutôt que de développer un export sur mesure pour répondre aux demandes RGPD des apprenants, il suffit de connecter les données spécifiques du LMS à cet outil natif et de rendre son déclenchement accessible directement depuis l’espace personnel.

La checklist qui suit couvre l’ensemble du chemin : de la vérification que les exporteurs natifs suffisent, à l’ajout d’un exporteur personnalisé pour les données de progression pédagogique, jusqu’à l’exposition d’un lien simple côté front, sans jamais recoder ce que le cœur fournit déjà.

Vérifier ce que l’outil natif exporte déjà

  • Les données de compte : e-mail, identifiant, biographie, éventuel avatar Gravatar associé.
  • Les commentaires laissés par l’utilisateur, avec leur date et le contenu associé.
  • Les métadonnées enregistrées via les hooks d’export standard des extensions déjà compatibles (WooCommerce, par exemple, si la plateforme vend des parcours payants).

Sur un LMS construit avec un plugin dédié (LearnDash, Tutor LMS, ou une solution maison à base de types de contenu personnalisés), la progression dans les cours, les résultats de quiz et les certificats obtenus ne sont en général pas couverts nativement. C’est là qu’intervient un exporteur personnalisé.

Enregistrer un exporteur personnalisé pour les données du LMS

L'essentiel à retenir : Réutiliser l'outil natif Outils > Exporter les données personnelles ; Enrichir l'export avec les données propres au LMS ; Exposer un lien simple depuis le profil de l'apprenant

Le filtre wp_privacy_personal_data_exporters permet d’ajouter une fonction de récupération de données à la liste des exporteurs exécutés par l’outil natif.

add_filter( 'wp_privacy_personal_data_exporters', function ( $exporters ) {
    $exporters['wpmoderne-lms-progression'] = array(
        'exporter_friendly_name' => __( 'Progression pédagogique', 'wpmoderne' ),
        'callback'               => 'wpmoderne_exporter_progression_lms',
    );

    return $exporters;
} );

function wpmoderne_exporter_progression_lms( $email_address, $page = 1 ) {
    $user = get_user_by( 'email', $email_address );
    $data = array();

    if ( $user ) {
        $cours_termines = get_user_meta( $user->ID, '_lms_cours_termines', true ) ?: array();

        foreach ( $cours_termines as $cours_id => $date_fin ) {
            $data[] = array(
                'group_id'    => 'wpmoderne-lms-progression',
                'group_label' => __( 'Progression pédagogique', 'wpmoderne' ),
                'item_id'     => 'cours-' . $cours_id,
                'data'        => array(
                    array(
                        'name'  => __( 'Cours', 'wpmoderne' ),
                        'value' => get_the_title( $cours_id ),
                    ),
                    array(
                        'name'  => __( 'Terminé le', 'wpmoderne' ),
                        'value' => $date_fin,
                    ),
                ),
            );
        }
    }

    return array(
        'data' => $data,
        'done' => true,
    );
}

Vérifier que l’exporteur fonctionne avant de l’exposer

  • Tester depuis Outils > Exporter les données personnelles avec un compte de test possédant un historique de cours varié.
  • Confirmer que le fichier ZIP généré contient bien la section « Progression pédagogique » avec les bonnes valeurs.
  • Vérifier que les quiz en cours (non terminés) ne remontent pas par erreur comme des cours complétés.
  • S’assurer qu’aucune donnée d’un autre apprenant ne fuite dans l’export, en particulier sur les parcours de groupe ou les cohortes.

Exposer un lien accessible depuis le profil de l’apprenant

L’écran natif se trouve dans l’administration, peu adapté à un apprenant sans accès à ce menu. La solution consiste à générer la demande d’export automatiquement depuis le front, via les mêmes fonctions internes que l’écran d’administration utilise.

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