WP Manifestindependent plugin directory
manifest / ecommerce / lp-course-to-product

LearnPress WooCommerce Course Sync

Un plugin de WordPress que sincroniza automáticamente los cursos de LearnPress con productos de WooCommerce, creando productos vinculados con toda la información del curso.

by Tomás Hoyos · github.com/tg12r/lp-course-to-product

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/tg12r/lp-course-to-product/archive/refs/heads/master.zip

Un plugin de WordPress que sincroniza automáticamente los cursos de LearnPress con productos de WooCommerce, creando productos vinculados con toda la información del curso.

📋 Características

  • Sincronización Automática: Los cursos se sincronizan automáticamente al crearlos o actualizarlos
  • 🔄 Sincronización Manual: Sincroniza todos los cursos o cursos individuales desde el panel de administración
  • 🔗 Vinculación Completa: Enlaza productos y cursos usando la integración nativa de LearnPress-WooCommerce
  • 📊 Panel de Administración: Interfaz completa para gestionar la sincronización
  • 📝 Sistema de Logs: Registro detallado de todas las operaciones
  • 🚫 Prevención de Duplicados: No crea productos duplicados para el mismo curso
  • 💰 Sincronización de Precios: Copia precios regulares y de oferta
  • 🖼️ Imágenes y Categorías: Sincroniza imágenes destacadas y categorías del curso

🔧 Requisitos

  • WordPress 5.0 o superior
  • PHP 7.2 o superior
  • WooCommerce (activado)
  • LearnPress (activado)
  • LearnPress - WooCommerce Payment Methods Integration (activado)

📦 Instalación

  1. Descarga el plugin y descomprímelo en la carpeta wp-content/plugins/

    O copia todos los archivos en:

    wp-content/plugins/lp-wc-course-sync/
  2. Estructura de archivos requerida:

    lp-wc-course-sync/
    ├── lp-wc-course-sync.php
    ├── includes/
    │   ├── class-admin-page.php
    │   ├── class-ajax-handler.php
    │   ├── class-course-sync.php
    │   └── class-logger.php
    └── assets/
        ├── css/
        │   └── admin-style.css
        └── js/
            └── admin-script.js
  3. Activa el plugin desde el panel de WordPress en Plugins > Plugins Instalados

  4. El plugin verificará que WooCommerce, LearnPress y LearnPress-WooCommerce Integration estén instalados y activados

🚀 Uso

Primera Sincronización

  1. Ve a LP/WC Sync en el menú de administración de WordPress
  2. Haz clic en "Sincronizar Todos los Cursos"
  3. El plugin creará un producto de WooCommerce por cada curso publicado

Sincronización Automática

Por defecto, la sincronización automática está habilitada. Esto significa que:

  • Cuando creas un nuevo curso y lo publicas, se crea automáticamente un producto
  • Cuando actualizas un curso, el producto asociado se actualiza automáticamente
  • Los cambios sincronizados incluyen: título, descripción, precio, imagen y categorías

Puedes desactivar la sincronización automática desde la página de configuración del plugin.

Sincronización Manual

Para sincronizar un curso específico:

  1. Ve a LP/WC Sync en el menú de administración
  2. Busca el curso en la tabla
  3. Haz clic en "Sincronizar" o "Actualizar"

Información Sincronizada

El plugin sincroniza la siguiente información del curso al producto:

Dato del Curso Campo del Producto
Título Nombre del producto
Descripción completa Descripción del producto
Descripción corta Descripción corta del producto
Precio regular Precio regular
Precio de oferta Precio de oferta
Imagen destacada Imagen del producto
Categorías Categorías del producto

Además, los productos se configuran como:

  • Productos virtuales (sin envío)
  • Vendidos individualmente (no se puede comprar más de uno)

📊 Panel de Administración

El panel de administración muestra:

Estadísticas

  • 📚 Total de cursos
  • ✅ Productos sincronizados
  • 🔄 Total de sincronizaciones
  • ⚠️ Errores

Tabla de Cursos

  • Lista de todos los cursos
  • Producto asociado (si existe)
  • Estado de sincronización
  • Acciones para sincronizar individualmente

Logs Recientes

  • Registro de las últimas operaciones
  • Estado (éxito, error, advertencia, info)
  • Mensajes detallados

🔗 Cómo Funciona la Vinculación

El plugin vincula productos y cursos usando los mismos métodos que LearnPress-WooCommerce Integration:

  1. Crea un meta field _lp_woo_courses en el producto con el ID del curso
  2. Crea un meta field _lp_woo_assign_courses para asignar el curso al comprador
  3. Guarda un meta field _lp_wc_sync_product_id en el curso para búsquedas rápidas

Cuando alguien compra el producto de WooCommerce, LearnPress automáticamente le asigna el curso.

🛠️ Funciones Avanzadas

Eliminar Logs Antiguos

Desde el panel de administración, puedes eliminar logs de más de 30 días haciendo clic en "Limpiar Logs Antiguos".

Hooks Disponibles

// Decide si eliminar el producto cuando se elimina el curso
add_filter('lp_wc_sync_delete_product_on_course_delete', function($should_delete, $course_id) {
    return true; // true para eliminar, false para mantener
}, 10, 2);

❓ Preguntas Frecuentes

¿Qué pasa si ya tengo productos creados manualmente?

El plugin detecta si un curso ya tiene un producto vinculado y lo actualiza en lugar de crear uno nuevo.

¿Puedo editar los productos después de la sincronización?

Sí, pero ten en cuenta que si la sincronización automática está activada, algunos campos se sobrescribirán cuando actualices el curso.

¿Qué pasa si desactivo el plugin?

Los productos y cursos seguirán funcionando normalmente. El plugin solo deja de sincronizar cambios.

¿Se puede revertir la sincronización?

Los productos creados no se eliminan automáticamente. Debes eliminarlos manualmente desde WooCommerce si lo deseas.

📝 Tabla de Logs en la Base de Datos

El plugin crea una tabla wp_lp_wc_sync_logs con los siguientes campos:

  • id: ID del log
  • course_id: ID del curso
  • product_id: ID del producto
  • action: Tipo de acción (sync, auto_sync, update, etc.)
  • message: Mensaje descriptivo
  • status: Estado (success, error, warning, info)
  • created_at: Fecha y hora

🐛 Solución de Problemas

Los productos no se crean

  1. Verifica que WooCommerce, LearnPress y LearnPress-WooCommerce Integration estén activados
  2. Revisa los logs en el panel de administración
  3. Comprueba que los cursos estén publicados (no en borrador)

Los cursos no se asignan después de la compra

Esto es responsabilidad de LearnPress-WooCommerce Integration. Verifica que:

  1. El plugin LearnPress-WooCommerce esté activado
  2. La pasarela de pago de WooCommerce esté configurada
  3. El estado del pedido sea "Completado"

Error de permisos

Asegúrate de que el usuario tenga el capability manage_options (normalmente Administradores).

🔄 Actualizaciones Futuras

Posibles mejoras plannedadas:

  • [ ] Sincronización bidireccional (cambios en producto afectan al curso)
  • [ ] Configuración de qué campos sincronizar
  • [ ] Soporte para productos variables (cursos con variantes)
  • [ ] Sincronización de etiquetas (tags)

📄 Licencia

GPL v2 or later

👨‍💻 Autor

Creado para simplificar la gestión de cursos en sitios que usan LearnPress + WooCommerce.

🆘 Soporte

Si encuentras algún problema:

  1. Revisa los logs en el panel de administración
  2. Activa WP_DEBUG en wp-config.php para ver errores detallados
  3. Verifica que todos los plugins requeridos estén actualizados

¡Disfruta de la sincronización automática de tus cursos! 🎉