3 requêtes SQL pour récupérer les données utilisateurs LearnDash

3 requêtes SQL pour récupérer les données utilisateurs LearnDash

Pourquoi utiliser des requêtes SQL pour extraire certaines données utilisateurs LearnDash?

Si tu utilises LearnDash depuis un certain moment, tu sais comme moi que c’est un bel outil d’e-learning, mais que les fonctionnalités en termes de reporting sont limitées.

Même avec ProPanel, les données produites par LearnDash ne nous permettent pas toujours de bien piloter notre activité.

Nous travaillons sur un plugin de reporting plus complet, mais en attendant, voici quelques requêtes SQL qui peuvent t’être utile.

Tu n’utilises pas encore LearnDash, ou tu te poses des questions à savoir si c’est le bon outil pour toi? Je te donnes mes 10 raisons pour lesquelles LearnDash est un outil de choix pour créer sa plateforme e-learning en 2023.

Comment utiliser les requêtes SQL?

Avant de te présenter les requêtes, je t’explique comment “parler” avec ta base de données.

Si tu as accès à ta base de données via des outils fournis par ton hébergeur, alors mieux vaut privilégier cette option. Sinon, je t’explique comment faire.

D’abord, le mieux est de faire les actions suivantes hors heures de point sur le site. Fais ça un dimanche matin, ou le moment où le trafic est moindre sur ton site. Tu peux utiliser des outils comme Matomo (Piwik) ou Google Analytics pour mieux comprendre l’utilisation de ton site web.

  1. Prendre un backup complet du site. L’idéal est toujours au niveau serveur. Si ce n’est pas possible, un plugin comme UpDraft Plus ou Duplicator fera l’affaire.
  2. Installer le plugin WP Data Access à partir de la librairie WordPress. La version gratuite fonctionne très bien.
  3. En back-office, dans le menu ne navigation en bas à gauche, aller à WP Data Access > Query Builder. Il y a une fenêtre de requête qui s’ouvre.
  4. Copier-coller la requête SQL souhaitée dans l’éditeur.
  5. Ensuite, tu peux double-cliquer sur le titre de la requête, lui donner un nom et la sauvegarder.
  6. Cliquer sur le bouton Export to CSV pour générer un fichier qui peut être exploité par une foule de logiciels, notamment Microsoft Excel.

Si tu te découvres une passion pour le langage SQL et que tu aimes le plugin WP Data Access, tu peux toujours acheter la version payante sur le site de l’auteur. L’auteur maintient bien son plugin, il est hollandais et comme tout le monde aime les Pays-Bas, ça fait une raison de plus de l’encourager.

Requête SQL pour récupérer les données utilisateurs sur un site LearnDash + WooCommerce

La requête ci-dessous permet de générer un tableau avec les données suivantes. Chaque ligne représente un utilisateur.

  • L’identifiant utilisateur de WordPress
  • L’adresse email de chaque utilisateur
  • Le prénom
  • Le nom de famille
  • L’adresse de facturation
  • Le complément d’adresse de facturation
  • La ville
  • Le code postal
  • L’état, région ou province
  • Le pays
  • Le numéro de téléphone
SELECT 
    u.ID AS user_id,
    u.user_email AS 'user_email',
    MAX(CASE
        WHEN um.meta_key = 'first_name' THEN um.meta_value
    END) AS first_name,
    MAX(CASE
        WHEN um.meta_key = 'last_name' THEN um.meta_value
    END) AS last_name,
    MAX(CASE
        WHEN um.meta_key = 'billing_address_1' THEN um.meta_value
    END) AS billing_address_1,
    MAX(CASE
        WHEN um.meta_key = 'billing_address_2' THEN um.meta_value
    END) AS billing_address_2,
    MAX(CASE
        WHEN um.meta_key = 'billing_city' THEN um.meta_value
    END) AS billing_city,
    MAX(CASE
        WHEN um.meta_key = 'billing_postcode' THEN um.meta_value
    END) AS billing_postcode,
    MAX(CASE
        WHEN um.meta_key = 'billing_state' THEN um.meta_value
    END) AS billing_state,
    MAX(CASE
        WHEN um.meta_key = 'billing_country' THEN um.meta_value
    END) AS billing_country,
    MAX(CASE
        WHEN um.meta_key = 'billing_phone' THEN um.meta_value
    END) AS billing_phone
FROM
    wp_users u
        LEFT JOIN
    wp_usermeta um ON u.ID = um.user_id
GROUP BY u.ID

Ça donne quoi? Voici un exemple:

données utilisateurs LearnDash

Requête SQL pour récupérer les données d’activité LearnDash par utilisateur

La requête ci-dessous permet de générer un tableau avec les données suivantes. Chaque ligne représente une activité. Chaque activité est comme un évènement. Il y a l’inscription à la formation, puis chaque module et chapitre. Les quiz sont également présents dans la liste.

  • L’identifiant utilisateur de WordPress
  • L’adresse email de chaque utilisateur
  • L’identifiant de l’activité (c’est la clé unique de cette table, ça ne te servira probablement pas, mais ça peut être utile à certaine personne, alors je l’ai conservée)
  • L’identifiant de la formation
  • Le nom de la formation
  • Le type d’activité (attention, ce champ est en anglais)
  • L’identifiant de l’élément qui fait l’objet de la ligne
  • Le nom de l’activité en question (chapitre, module, quiz…)
  • Le statut de l’activité (0 = pas complété, 1 = complété)
  • La date et l’heure de début
  • La date et l’heure de fin
  • La date et l’heure de la dernière mise à jour

Attention ! Je te mets à disposition une manière d’exploiter des données qui n’a pas été prévue par LearnDash, ni même WordPress. Je ne connais pas toutes les fonctions de LearnDash qui exploitent, créent ou modifient ces données. À interpréter avec ton jugement.

SELECT 
    la.user_id,
    u.user_email,
    la.activity_id,
    la.course_id,
    p.post_title AS 'course_name',
    la.activity_type,
    la.post_id,
    pp.post_title AS 'activity_name',
    la.activity_status,
    FROM_UNIXTIME(la.activity_started) AS 'start_datetime',
    FROM_UNIXTIME(la.activity_completed) AS 'complete_datetime',
    FROM_UNIXTIME(la.activity_updated) AS 'update_datetime'
FROM
    wp_learndash_user_activity la
        LEFT JOIN
    wp_posts p ON la.course_id = p.id
        LEFT JOIN
    wp_posts pp ON la.post_id = pp.id
        LEFT JOIN
    wp_users u ON la.user_id = u.id

Ça donne quoi? Voici un exemple:

données utilisateurs LearnDash

Requête SQL pour récupérer la liste des inscriptions pour chaque cours et utilisateurs

La requête ci-dessous permet de générer un tableau avec les données suivantes. Chaque ligne représente le couple utilisateur et formation, s’il existe, et fournit également la date et l’heure d’inscription à la formation.

  • L’identifiant utilisateur de WordPress
  • L’adresse email de chaque utilisateur
  • L’identifiant de la formation
  • Le nom de la formation
  • La date initiale d’inscription

Attention ! Je te mets à disposition une manière d’exploiter des données qui n’a pas été prévue par LearnDash, ni même WordPress. Je ne connais pas toutes les fonctions de LearnDash qui exploitent, créent ou modifient ces données. À interpréter avec ton jugement.

SELECT 
    um.user_id,
    u.user_email,
    REPLACE(SUBSTR(um.meta_key, 8, 100),
        '_access_from',
        '') AS course_id,
    p.post_title AS 'course_name',
    FROM_UNIXTIME(um.meta_value) AS enrolment_date
FROM
    wp_usermeta um
        LEFT JOIN
    wp_users u ON um.user_id = u.id
        LEFT JOIN
    wp_posts p ON p.id = REPLACE(SUBSTR(um.meta_key, 8, 100),
        '_access_from',
        '')
WHERE
    RIGHT(um.meta_key, 12) = '_access_from'

Ça donne quoi? Voici un exemple:

données utilisateurs LearnDash

Données utilisateurs LearnDash : besoin de rapports personnalisés?

Les requêtes que je t’ai présentées sont génériques. Si tu es à l’aise avec Microsoft Excel, tu devrais être en mesure de pouvoir croiser les données dont tu as besoin.

Tu cherche à automatiser ce reporting? Peut-être as-tu besoin de rapports custom juste pour ton activité de formation? Si WordPress stocke la donnée, on peut l’extraire!

Pourquoi travailler avec un professionnel au lieu de faire soi-même? Faire appel à un professionnel pour créer du reporting spécialisé sur WordPress peut être bénéfique de plusieurs façons. Voici quelques raisons pour lesquelles il est souvent préférable de travailler avec un pro pour ce type de projet :

  • Expertise : Un professionnel aura une connaissance approfondie de WordPress et des compétences techniques pour créer les rapports spécialisés dont tu as besoin. Il t’aidera à choisir les meilleurs outils et plugins pour créer des rapports personnalisés qui répondront à tes besoins spécifiques.
  • Besoins persos : Un professionnel peut personnaliser le rapport en fonction de la manière précise dont tu souhaites consommer l’information. En reporting personnalisé, les rapports peuvent inclure des graphiques, des tableaux et des diagrammes qui présentent tes données.
  • Analyse de données : Un pro peut analyser tes données et fournir des recommandations en lien avec celles-ci. Les professionnels peuvent identifier les tendances, les opportunités et les domaines à améliorer. Ils peuvent également fournir des informations utiles sur la base de données existantes et sur la façon de la structurer pour améliorer l’analyse des données. C’est le niveau d’intelligence qu’un service comme le nôtre apporte, et que tu ne peux pas avoir avec de simples extractions.

Pour conclure, faire appel à un professionnel pour créer du reporting spécialisé sur WordPress est généralement un investissement judicieux pour tout organisme qui cherche à tirer le meilleur parti de ses données et à améliorer ses performances. Fais-moi part de tes besoins et je te donnerai mon avis sur comment y arriver.

Ces ressources pourraient t’intéresser