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.
- 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.
- Installer le plugin WP Data Access à partir de la librairie WordPress. La version gratuite fonctionne très bien.
- 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.
- Copier-coller la requête SQL souhaitée dans l’éditeur.
- Ensuite, tu peux double-cliquer sur le titre de la requête, lui donner un nom et la sauvegarder.
- 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.
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:

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.
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:

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.
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 : 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 :
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.