La pestaña «Mis Cursos» del perfil del estudiante
Override de profile/tabs/my_courses.php
¿Creamos código nuevo en esta lección?
Sí. Creamos 2 archivos nuevos en el child theme:
• learnpress/profile/tabs/index.php — archivo de seguridad de la carpeta
• learnpress/profile/tabs/my_courses.php — override de la pestaña del estudiante
También agregamos 1 línea en functions.php — el filtro que activa TODOS los overrides de LearnPress.
Descubrimiento importante: los overrides estaban desactivados
LearnPress 4.x tiene los overrides apagados por defecto. Sin una línea especial en functions.php, WordPress ignoraba todos nuestros archivos de las lecciones anteriores. En esta lección activamos ese «interruptor» y verificamos que ahora sí funciona.
¿Qué página controla este template?
Cuando un estudiante entra a su perfil (/lp-profile/), lo primero que ve es la pestaña «Mis Cursos». Ahí aparecen sus estadísticas y la lista de cursos donde está inscripto.
Ese contenido lo genera el archivo my_courses.php dentro de la carpeta profile/tabs/ del plugin LearnPress.
| Nombre | Resultado | Fecha de vencimiento | Hora de finalización | |
|---|---|---|---|---|
|
🦷
|
Curso de salud oral | 0% | Nunca | — |
↑ Esta es la pantalla que ve el estudiante cuando entra a /lp-profile/
Las tres zonas que controla my_courses.php
Este template tiene 3 partes bien definidas. Cada una tiene su propia clase CSS para que podamos personalizarla:
El «interruptor» que activa todos los overrides
LearnPress 4.x tiene los overrides desactivados por defecto. Esto significa que aunque pongamos archivos en la carpeta learnpress/ del child theme, WordPress los va a ignorar completamente.
Es como si tuvieras listo un traje nuevo en el armario, pero siguieras saliendo con el viejo porque nadie te dijo que había uno nuevo. El filtro que agregamos es esa persona que te dice «hey, revisá el armario primero».
Para activar los overrides agregamos una sola línea en functions.php:
wp-content/themes/divi-lms-child/
// 4. HABILITAR TEMPLATE OVERRIDES DE LEARNPRESS
// ─────────────────────────────────────────────────
// LearnPress 4.x desactiva los overrides por defecto.
// Esta línea los activa para que nuestros archivos en
// learnpress/ sean usados en lugar de los del plugin.
add_filter( ‘learn-press/override-templates’, ‘__return_true’ );
Esta línea le dice a WordPress: «cuando LearnPress busque un template, fijate primero en el child theme antes de usar el del plugin». Sin esto, ningún override funciona.
Los archivos que creamos
Creamos 2 archivos dentro de una carpeta nueva: profile/tabs/
📁 profile/
📄 index.php ← seguridad (lección 4.6)
📄 dashboard.php ← override del dashboard (lección 4.6)
📁 tabs/ ← carpeta NUEVA
📄 index.php ← seguridad de la carpeta tabs/
📄 my_courses.php ← override de la pestaña del estudiante
El archivo my_courses.php que creamos es casi igual al original. La diferencia son las 3 clases CSS que agregamos:
<div class=«learn-press-subtab-content»>
<div class=«learn-press-profile-course__statistic»>
<div class=«learn-press-profile-course__tab»>
<div class=«learn-press-subtab-content lms-mis-cursos«>
<div class=«…statistic lms-estadisticas«>
<div class=«…course__tab lms-tabs-pestanias«>
¿Por qué agregar estas clases? Para poder aplicar estilos desde lms-styles.css usando nuestras variables de color. Sin las clases personalizadas, tendríamos que usar los selectores del plugin que pueden cambiar en futuras actualizaciones.
¿Cómo aparecen los cursos en la pantalla?
Este template tiene algo especial: no muestra los cursos directamente. En cambio, usa campos ocultos (<input type="hidden">) con parámetros de búsqueda. Después de que la página carga, JavaScript lee esos parámetros y pide los datos al servidor en segundo plano.
A esto se le llama AJAX. Es por eso que cuando entras al perfil, por un instante ves unas barras de «cargando» antes de ver los cursos y estadísticas.
El estudiante abre /lp-profile/
PHP renderiza el HTML con los campos ocultos y las barras de «cargando» (lp_skeleton_animation_html)
JavaScript lee los campos ocultos y hace una petición AJAX al servidor
El servidor responde con los cursos → aparecen las tarjetas y la tabla
Es importante que no elimines los campos <input type="hidden"> ni la función lp_skeleton_animation_html() al hacer el override. Si los borrás, los cursos del estudiante no aparecerán.
Cómo verificar que el override funciona
lms-mis-cursos
Resultado
✅ Lo que logramos en esta lección
Con 1 línea en functions.php, todos los archivos de la carpeta
learnpress/ ahora son usados por WordPress.
Nueva subcarpeta
learnpress/profile/tabs/ con su archivo de seguridad y el override.
lms-mis-cursos, lms-estadisticas y lms-tabs-pestanias listas para estilizar.
Podemos personalizar la pantalla de cursos del estudiante sin modificar el plugin.
<div id=«profile-content-my-courses»>
<div class=«learn-press-subtab-content lms-mis-cursos«>
<!– Área de estadísticas… –>
<div class=«…statistic lms-estadisticas«>
<div class=«…course__tab lms-tabs-pestanias«>