Integración del endpoint My courses
Trabajar con el área My courses en la cuenta de WooCommerce.
Qué es
Un endpoint de la cuenta de WooCommerce añadido por POM LMS, insertado en el menú de la cuenta después de su primera entrada. Su etiqueta y su segmento de URL se pueden configurar en los ajustes del plugin.
Requiere WooCommerce. Sin él, no hay área de cuenta ni endpoint.
Qué muestra
Una fila por cada curso al que puede acceder el usuario actual, construida comprobando cada curso con los helpers de acceso. Cada fila muestra la miniatura del curso, su título, el porcentaje de finalización, el motivo por el que se concedió el acceso y un enlace al curso.
El filtrado es la parte importante para los integradores: los cursos inaccesibles están ausentes, no deshabilitados. Si estás creando algo que refleje esta lista, reproduce ese comportamiento en lugar de mostrar filas bloqueadas.
Crear tu propia lista de cursos
La forma compatible son los helpers, no los elementos internos del endpoint:
$courses = get_posts( [
'post_type' => 'course',
'posts_per_page' => -1,
'fields' => 'ids',
] );
$accessible = array_filter( $courses, 'pom_lms_user_can_access_course' );
foreach ( $accessible as $course_id ) {
$percent = pom_lms_get_course_completion( $course_id );
// Render.
}
Esa es toda la receta. Un widget de panel, un shortcode, una página con un tema: todos son este bucle con un marcado diferente.
Ten en cuenta el coste: un curso de pago implica una comprobación de compra por curso. En un catálogo grande, ese bucle no es gratuito.
Cambiar la URL del endpoint
El slug es un ajuste. Cambiarlo requiere que se reconstruyan las reglas de enlaces permanentes, lo que ocurre cuando se guarda la pantalla de enlaces permanentes.
Si tu integración enlaza al endpoint, no escribas la ruta en duro: resuelve la URL de la cuenta a través de WooCommerce para que tus enlaces sigan el slug configurado.
Los textos
La etiqueta del menú, el encabezado de la columna de cursos y el mensaje de estado vacío son ajustes, y se pueden traducir. Léelos desde los ajustes en lugar de reproducir los valores por defecto en tu propio código, o un sitio que los haya personalizado mostrará dos etiquetas distintas.
Motivos de acceso
El endpoint indica por qué está disponible cada curso: una suscripción, una compra, una regla de permiso o que el curso es gratuito. Los dos casos de compra enlazan al producto.
Estas cadenas no se pueden configurar. Si estás creando una vista paralela y quieres la misma información, pom_lms_user_purchased_course() devuelve el producto que concedió el acceso, que es de lo que se construyen los casos de compra. Consulta El helper de acceso por compra.
Lo que el endpoint no ofrece
- Ninguna acción para cancelar la inscripción o eliminar.
- Ninguna información de pedidos o recibos: eso corresponde a las propias páginas de cuenta de WooCommerce.
- Ningún certificado ni descarga.
- Ningún historial de cursos cuyo acceso ha finalizado. El acceso caducado simplemente elimina la fila.
Vale la pena diseñar en torno a este último punto: si tu sitio necesita que los estudiantes vean los cursos que solían tener, esa vista es tuya para construirla, y necesita su propio registro de quién tenía qué.
Sitios sin WooCommerce
El endpoint no existe, pero los cursos sí, y los helpers de acceso funcionan exactamente igual: un curso protegido por una regla de permiso no necesita ninguna tienda.
En un sitio así, construye la lista de cursos anterior en una página propia y enlázala desde el menú.