Plugin Directory

Changeset 3711978


Ignore:
Timestamp:
09/24/2026 08:24:12 PM (3 weeks ago)
Author:
inobarix
Message:

Release 1.0.5: mejora reportes, catálogo de extensiones, licencias y compatibilidad con WooCommerce.

Location:
inobarix-recurring-payments-for-mercado-pago
Files:
8 edited
29 copied

Legend:

Unmodified
Added
Removed
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.4/readme.txt

    r3711426 r3711978  
    113113* Reduce conexiones externas innecesarias y mejora la estabilidad administrativa con versiones actuales de WordPress y WooCommerce.
    114114* El core ya no informa datos tecnicos ni inventario de la instalacion al servidor de Inobarix.
     115* Incorpora Recordatorios de Pago al catalogo de extensiones del ecosistema.
    115116
    116117= 1.0.3 =
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.4/src/Modules/ModuleRegistry.php

    r3711426 r3711978  
    5252                $usd_pricing_plugin = 'inobarix-usd-pricing-addon/inobarix-usd-pricing-addon.php';
    5353                $restricted_content_plugin = 'inobarix-restricted-content-addon/inobarix-restricted-content-addon.php';
     54                $payment_reminders_plugin = 'inobarix-payment-reminders-addon/inobarix-payment-reminders-addon.php';
    5455                $store_url = trailingslashit( (string) apply_filters( 'inobarix_store_url', 'https://inobarix.com.ar' ) );
    5556                $catalog   = self::remote_catalog();
    … …  
    162163                                'url'         => self::catalog_field( $catalog, 'restricted_content', 'buy_url', $store_url ),
    163164                                'images'      => self::catalog_images( $catalog, 'restricted_content' ),
     165                        ),
     166                        'payment_reminders' => array(
     167                                'name'        => __( 'Recordatorios de pago', 'inobarix-recurring-payments-for-mercado-pago' ),
     168                                'description' => __( 'Recupera pedidos pendientes y fallidos con un recordatorio y enlace seguro de pago.', 'inobarix-recurring-payments-for-mercado-pago' ),
     169                                'category'    => __( 'Ventas', 'inobarix-recurring-payments-for-mercado-pago' ),
     170                                'status'      => self::plugin_active_status( $payment_reminders_plugin ),
     171                                'plugin'      => $payment_reminders_plugin,
     172                                'license_required' => true,
     173                                'license_product'  => 'payment_reminders',
     174                                'price'       => self::catalog_field( $catalog, 'payment_reminders', 'price', __( 'Consultar precio', 'inobarix-recurring-payments-for-mercado-pago' ) ),
     175                                'url'         => self::catalog_field( $catalog, 'payment_reminders', 'buy_url', $store_url ),
     176                                'images'      => self::catalog_images( $catalog, 'payment_reminders' ),
    164177                        ),
    165178                        'content_restriction' => array(
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.5/assets/css/admin.css

    r3709773 r3711978  
    102102body.ibx-ecosystem-admin #adminmenu #toplevel_page_inobarix .wp-submenu li.current a { color: #72a9ff; }
    103103body.ibx-ecosystem-admin .ibx-license-client > p { max-width: 78ch; color: var(--ibx-admin-muted); line-height: 1.55; }
    104 body.ibx-ecosystem-admin .ibx-license-client > div[style*="display:grid"] { max-width: 100% !important; }
    105 body.ibx-ecosystem-admin .ibx-license-client > div[style*="display:grid"] > div { border-color: var(--ibx-admin-line) !important; border-radius: 5px !important; box-shadow: none; }
    106 body.ibx-ecosystem-admin .ibx-license-client > div[style*="display:grid"] > div h2 { color: var(--ibx-admin-ink); font-size: 18px; line-height: 1.3; }
     104body.ibx-ecosystem-admin .ibx-license-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; width: 100%; max-width: 1480px; }
     105body.ibx-ecosystem-admin .ibx-license-card { min-width: 0; padding: 18px; background: #fff; border: 1px solid var(--ibx-admin-line); border-radius: 5px; box-shadow: none; }
     106body.ibx-ecosystem-admin .ibx-license-card h2 { margin-top: 0; color: var(--ibx-admin-ink); font-size: 18px; line-height: 1.3; overflow-wrap: anywhere; }
     107body.ibx-ecosystem-admin .ibx-license-card form { max-width: 100%; }
     108body.ibx-ecosystem-admin .ibx-license-card input.regular-text { box-sizing: border-box; width: 100%; max-width: 100%; }
     109body.ibx-ecosystem-admin .ibx-license-card .button { max-width: 100%; white-space: normal; }
    107110body.ibx-ecosystem-admin .ibx-license-client table.widefat { max-width: 100% !important; }
    108111body.ibx-ecosystem-admin.post-type-ibox_price_table .wrap .wp-heading-inline { color: var(--ibx-admin-ink); font-size: 27px; font-weight: 650; }
    … …  
    263266}
    264267
     268.ibx-settings-content:only-child {
     269        grid-column: 1 / -1;
     270}
     271
    265272.ibx-settings-content > .card,
    266273.ibx-settings-content > form > .card {
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.5/inobarix-recurring-payments-for-mercado-pago.php

    r3711426 r3711978  
    33 * Plugin Name: Suscripciones y Pagos Recurrentes con Mercado Pago para WooCommerce
    44 * Description: Crea suscripciones, pagos recurrentes, membresías y cobros automáticos con Mercado Pago en WooCommerce.
    5  * Version: 1.0.4
     5 * Version: 1.0.5
    66 * Author: Inobarix
    77 * Author URI: https://inobarix.com.ar
    … …  
    4949
    5050define( 'INOBREPA_LOADED', true );
    51 define( 'INOBREPA_VERSION', '1.0.4' );
     51define( 'INOBREPA_VERSION', '1.0.5' );
    5252define( 'INOBREPA_FILE', __FILE__ );
    5353define( 'INOBREPA_PATH', plugin_dir_path( __FILE__ ) );
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.5/readme.txt

    r3711426 r3711978  
    66Requires PHP: 7.4
    77Requires Plugins: woocommerce
    8 Stable tag: 1.0.4
     8Stable tag: 1.0.5
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    3131* Sincronización manual y programada de suscripciones y pagos autorizados.
    3232* Vista para clientes en Mi cuenta de WooCommerce con historial de pagos y estado de reintentos.
    33 * Gestión administrativa de suscripciones con detalle, sincronización, cancelación y diagnósticos.
    34 * Reportes básicos con gráficos de cobros, ingresos y altas, estados de suscripción y totales por moneda.
     33* Gestión administrativa de suscripciones con detalle, sincronización y cancelación.
     34* Reportes básicos con gráficos, estados de suscripción y totales por moneda.
    3535* Compatibilidad declarada con WooCommerce HPOS y Checkout Blocks.
    3636* Una sección de soporte con acceso a consultas y documentación.
    … …  
    4646* **Organizaciones:** gestión de miembros, aprobaciones y credenciales digitales.
    4747* **Precios en USD:** precios base en dólares con actualización de importes en pesos.
    48 * **Contenido restringido:** acceso a páginas y entradas por cuenta o plan pagado, con verificación de correo y aprobación opcionales.
     48* **Contenido restringido:** acceso a páginas y entradas por cuenta o plan pagado.
     49* **Recordatorios de pago:** recuperación de pedidos pendientes y carritos abandonados.
    4950
    5051Consulta las extensiones desde **Inobarix > Extensiones** en tu sitio o visita [Inobarix](https://inobarix.com.ar/).
    … …  
    5859== External services ==
    5960
    60 Este plugin se conecta a la API de Mercado Pago en https://api.mercadopago.com. Mercado Pago se utiliza para crear preferencias de Checkout Pro, crear y administrar preapprovals/suscripciones, consultar pagos y pagos autorizados, y sincronizar estados de suscripción o pago después de webhooks, sincronizaciones manuales o tareas programadas.
     61Este plugin se conecta a la API de Mercado Pago en https://api.mercadopago.com para crear y administrar pagos y suscripciones, consultar estados y procesar notificaciones.
    6162
    62 Los datos enviados a Mercado Pago pueden incluir ID del pedido de WooCommerce, importe del pedido, moneda, nombre del producto, email de facturación del cliente, URLs de retorno, URL segura de notificación/webhook generada por el plugin, importe de la suscripción, frecuencia de cobro e identificadores de suscripción o pago de Mercado Pago.
     63Los datos enviados pueden incluir ID del pedido, importe, moneda, nombre del producto, email de facturación, URLs de retorno y notificación, frecuencia de cobro e identificadores de Mercado Pago.
    6364
    64 Estos datos se envían cuando el cliente inicia el checkout, autoriza una suscripción, cuando el administrador sincroniza una suscripción, cuando se ejecuta una sincronización programada o cuando Mercado Pago envía un webhook.
    65 
    66 Enlaces del servicio Mercado Pago:
     65Estos datos se envían al iniciar el checkout, autorizar una suscripción, ejecutar una sincronización o procesar un webhook.
    6766
    6867* Términos: https://www.mercadopago.com.ar/ayuda/terminos-y-condiciones-uso_299
    … …  
    82813. Vaya a Inobarix > Inicio para revisar el checklist de configuración.
    83824. Abra Inobarix > Ajustes y configure las credenciales de Mercado Pago.
    84 5. Cree o edite un producto simple de WooCommerce y active la opción de pago recurrente.
    85 6. Venda el producto. El plugin envía automáticamente a Mercado Pago la URL segura para recibir notificaciones.
     835. Cree o edite un producto simple y active la opción de pago recurrente.
    8684
    8785== Frequently Asked Questions ==
    … …  
    8987= ¿El plugin requiere WooCommerce Subscriptions? =
    9088
    91 No. El plugin guarda sus propios registros de suscripción y utiliza las APIs de suscripciones de Mercado Pago.
     89No. El plugin guarda sus propios registros y utiliza las APIs de suscripciones de Mercado Pago.
    9290
    9391= ¿El plugin guarda datos de tarjeta? =
    9492
    95 No. Los clientes autorizan la suscripción en Mercado Pago. WordPress recibe estados de suscripción y pago mediante API y webhooks.
     93No. Los clientes autorizan la suscripción en Mercado Pago.
    9694
    9795= ¿Los clientes pueden ver sus suscripciones? =
    9896
    99 Sí. Un endpoint de Mi cuenta muestra suscripciones actuales y anteriores, pedidos vinculados, estado de pago, reintentos e historial de pagos.
     97Sí. Mi cuenta muestra suscripciones, pedidos vinculados, estados e historial de pagos.
    10098
    10199= ¿Los administradores pueden sincronizar suscripciones manualmente? =
    102100
    103 Sí. Los administradores pueden sincronizar suscripciones desde Inobarix > Suscripciones. El plugin también programa una tarea cron de WordPress.
    104 
    105 = ¿Qué muestran los reportes del core? =
    106 
    107 En Inobarix > Reportes puedes consultar los últimos 7, 30 o 90 días de suscripciones nuevas, cobros recurrentes e ingresos aprobados registrados localmente. Los gráficos muestran tendencias; los importes se separan por moneda y el detalle lista los 12 movimientos más recientes del período. Los registros anteriores permanecen en la base. Este resumen no sustituye la conciliación contable de Mercado Pago.
     101Sí. También existe una sincronización programada.
    108102
    109103== Changelog ==
    110104
     105= 1.0.5 =
     106* Mejora el panel administrativo con reportes gráficos, estados de suscripción y actividad reciente.
     107* Unifica el diseño del core y las extensiones, incluidas licencias, formularios y soporte.
     108* Actualiza el catálogo con imágenes, precios, nuevos addons y pruebas configuradas por producto.
     109* Refuerza la privacidad eliminando la telemetría y reduce conexiones externas innecesarias.
     110* Mejora la compatibilidad con WordPress, WooCommerce, HPOS y Checkout Blocks.
     111
    111112= 1.0.4 =
    112 * Elimina la telemetria del core gratuito para reforzar la privacidad, la seguridad y la confianza en el medio de pago.
    113 * Reduce conexiones externas innecesarias y mejora la estabilidad administrativa con versiones actuales de WordPress y WooCommerce.
    114 * El core ya no informa datos tecnicos ni inventario de la instalacion al servidor de Inobarix.
    115 
    116 = 1.0.3 =
    117 * Muestra y rota las imagenes reales de las extensiones publicadas en la tienda.
    118 * Agrega ampliacion de imagenes y mejora la jerarquia visual del titulo, precio y llamados a la accion.
    119 * Simplifica el inicio eliminando los bloques redundantes de revision y proximos cobros.
    120 * Agrega las cinco suscripciones mas recientes al inicio del plugin.
    121 * Incorpora una extension publica destacada que rota automaticamente y prioriza modulos aun no activados.
    122 
    123 = 1.0.2 =
    124 * Agrega en Inicio listas de suscripciones que requieren revision y proximos cobros.
    125 * Generaliza el flujo de dos pasos de Cobros avanzados para altas, accesos, servicios y entregas fisicas.
    126 
    127 = 1.0.1 =
    128 * Rediseña Reportes con graficos de ingresos por moneda, actividad de cobros, altas y estados.
    129 * Agrega metricas de aprobacion y suscripciones activas, y mejora las consultas por fecha con indices.
    130 * Agrega reportes basicos de suscripciones y cobros recurrentes registrados en el sitio.
    131 * Permite consultar periodos de 7, 30 y 90 dias, totales por moneda y movimientos recientes.
    132 * Actualiza el catalogo de extensiones con mas frecuencia para mostrar nuevos productos y precios.
    133 * Agrega una accion independiente para actualizar el catalogo comercial sin buscar actualizaciones de plugins.
    134 * Agrega Contenido restringido al catalogo de extensiones del ecosistema.
    135 * Aplica el diseno compartido a tipos de contenido registrados debajo de Inobarix, incluidos los listados y editores de tablas de membresias.
    136 * Mejora la presentacion de licencias y del menu de administracion del ecosistema.
    137 * Aclara que el selector de medios solo afecta compras unicas con Checkout Pro.
    138 * Quita la opcion de excluir dinero en cuenta, que Mercado Pago no permite controlar desde la preferencia.
    139 * Corrige la explicacion de los medios disponibles en suscripciones.
    140 * Refuerza la carga del diseno compartido en paginas de addons bajo Inobarix.
    141 * Estiliza estados y tablas del gestor de licencias con la misma identidad del core.
    142 * Divide Soporte en una columna de consultas y otra mas angosta para documentacion y servicios.
    143 * Reduce la altura del formulario y adapta las columnas a pantallas pequenas.
    144 * Alinea la identidad administrativa con los colores azul y negro de Inobarix.
    145 * Define jerarquias compartidas para titulos, secciones y texto auxiliar de core y extensiones.
    146 * Unifica el estilo de las pantallas del menu Inobarix, incluidos los ajustes de extensiones.
    147 * Mejora los listados de suscripciones y planes con filtros ordenados, tablas adaptables y estados visuales.
    148 * Unifica el estilo administrativo del core y las extensiones, incluidos Soporte, licencias y listados.
    149 * Aclara los medios de pago disponibles para compras unicas y suscripciones.
    150 * Organiza Inicio y un widget del Escritorio por estados de suscripcion.
    151 * Agrega un widget de servicios Inobarix y una bienvenida descartable en la primera activacion.
     113* Refuerza la privacidad del medio de pago y agrega Recordatorios de Pago al ecosistema.
     114* Mejora la estabilidad administrativa y la integración con extensiones premium.
    152115
    153116= 1.0 =
    154 * Amplia Soporte con formulario de tickets, documentacion y servicios profesionales.
    155 * Integra la pagina de Soporte al estilo del panel y presenta servicios Inobarix en Inicio.
    156 * Renombra Modulos a Extensiones en la interfaz del core.
    157 
    158 = 0.9.40 =
    159 * Actualiza los medios de pago de Checkout Pro para reconocer tarjetas prepagas como `prepaid_card`.
    160 * Migra las selecciones anteriores sin bloquear tarjetas prepagas y aclara que las suscripciones solo admiten tarjetas reutilizables compatibles.
    161 
    162 = 0.9.33 =
    163 * Corrige la redireccion de suscripciones cuando Mercado Pago agrega el parametro activation al init_point y muestra una pagina inexistente.
    164 
    165 = 0.9.32-beta.3 =
    166 * Simplifica Cobros avanzados a cobro normal, comienzo en fecha fija y flujo opcional de dos pasos.
    167 * En el modo de dos pasos autoriza primero la suscripcion y luego crea una compra WooCommerce normal para la primera entrega.
    168 * Agrega una guia visual recuperable en Mi cuenta y evita que el pedido inicial vuelva a crear otra suscripcion.
    169 
    170 = 0.9.31 =
    171 * Evita crear renovaciones y alterar fechas locales al sincronizar pagos ya aprobados.
    172 * Detecta el mismo pago aunque llegue con otro identificador de factura.
    173 
    174 = 0.9.30 =
    175 * Corrige el próximo día fijo cuando el día elegido ya pasó en el mes actual.
    176 * El modo de cuota completa usa el total real del pedido, incluido el envío.
    177 * Evita mostrar dos fechas de próximo cobro y alinea la facturación mensual con Mercado Pago.
    178 
    179 = 0.9.29 =
    180 * Simplifica listados, detalles, Mi cuenta, configuracion y cobros avanzados con textos orientados al comercio.
    181 * Oculta IDs, eventos y payloads tecnicos dentro de secciones plegables para soporte.
    182 * Reduce columnas duplicadas y muestra frecuencias de cobro en lenguaje natural.
    183 * Limpia automaticamente eventos normales de mas de 30 dias y errores de mas de 90 dias.
    184 
    185 = 0.9.28 =
    186 * Permite que los add-ons habiliten emails nativos de WooCommerce para pedidos fisicos recurrentes.
    187 * Permite mantener el pedido original fisico en Procesando mientras la suscripcion sigue vinculada a el.
    188 
    189 = 0.9.27 =
    190 * Agrega el modo de cobro completo al comprar y nuevamente en la proxima fecha fija mensual.
    191 * Mantiene el total normal del carrito y evita usar prorrateo o arancel para productos fisicos.
    192 
    193 = 0.9.26 =
    194 * Simplifica el inicio del plugin para priorizar suscripciones activas y casos que requieren atencion.
    195 * Agrega un acceso directo a los pedidos WooCommerce para el flujo de productos fisicos.
    196 * Corrige la regla responsive de las pantallas administrativas.
    197 
    198 = 0.9.25 =
    199 * Limita a dos decimales los importes de prorrateo enviados a Mercado Pago.
    200 * Evita que la precision interna de PHP agregue decimales residuales al JSON de transaction_amount.
    201 * Normaliza tambien el monto recurrente al restaurarlo luego del primer cobro.
    202 
    203 = 0.9.24 =
    204 * Hace mas robusta la sincronizacion programada de suscripciones con un cursor persistente por tandas.
    205 * Reduce el intervalo del cron del core a 10 minutos y permite configurar el tamano del lote con un filtro.
    206 * Evita que muchas suscripciones pendientes queden fuera del ciclo automatico de revision.
    207 
    208 = 0.9.23 =
    209 * Corrige el campo reason enviado a Mercado Pago para suscripciones y evita errores cuando el texto supera 40 caracteres.
    210 * Agrega duración limitada por ciclos de cobro en productos de suscripción y envía end_date a Mercado Pago.
    211 
    212 = 0.9.22 =
    213 * Agrega ayuda dinámica en Cobros avanzados según el modo de cobro inicial seleccionado.
    214 
    215 = 0.9.21 =
    216 * Oculta el método de pago de suscripciones cuando el carrito no contiene productos de suscripción.
    217 * Permite agregar una suscripción a un carrito con productos normales y muestra un botón para actualizar el carrito dejando solo la suscripción.
    218 
    219 = 0.9.20 =
    220 * Corrige textos con encoding roto en Cobros avanzados y documentación del core.
    221 
    222 = 0.9.19 =
    223 * Agrega sistema central de plantillas de emails editables para core y add-ons.
    224 * Agrega dispatcher comun de emails con variables y compatibilidad con filtros anteriores.
    225 * Agrega aviso administrativo si se detectan plugins externos de suscripciones activos sin add-on de compatibilidad.
    226 * Prepara el modulo premium de Emails avanzados.
    227 
    228 = 0.9.18 =
    229 * Integra en el core la politica global de cobros avanzados para suscripciones: ventana de compra, cobro diferido, prorrateo real y arancel inicial.
    230 * Mantiene el modo clasico como predeterminado para no alterar tiendas existentes.
    231 * Expone la logica avanzada solo cuando un add-on premium habilita Cobros avanzados.
    232 
    233 = 0.9.17 =
    234 * Ajusta el logo de Mercado Pago en Checkout Blocks con un ancho fijo de 40 px para mantener una presentación estable.
    235 
    236 = 0.9.16 =
    237 * Agrega el logo opcional de Mercado Pago y textos predeterminados claros para suscripciones en checkout.
    238 * Muestra en el carrito la fecha estimada del próximo pago recurrente.
    239 
    240 = 0.9.15 =
    241 * Cuando el carrito contiene una suscripción, muestra solo Mercado Pago Inobarix como medio de pago.
    242 * Impide mezclar suscripciones con otros productos o comprar más de una suscripción por pedido.
    243 
    244 = 0.9.14 =
    245 * Registra la pasarela y su integracion con Checkout Blocks desde la carga del plugin, evitando que el orden de carga de temas o plugins deje a Mercado Pago fuera del checkout.
    246 
    247 = 0.9.13 =
    248 * Corrige el momento de carga del core para que la pasarela se registre antes de que WooCommerce Checkout Blocks resuelva los metodos de pago.
    249 
    250 = 0.9.12 =
    251 * Corrige el registro del metodo de pago en WooCommerce Checkout Blocks para que aparezca tambien cuando el checkout usa bloques.
    252 
    253 = 0.9.11 =
    254 * Reorienta el nombre, descripción y readme hacia suscripciones y pagos recurrentes con Mercado Pago para WooCommerce.
    255 * Cambia el idioma base visible a español y agrega traducción en_US.
    256 * Carga traducciones con load_plugin_textdomain en plugins_loaded.
    257 * Muestra los módulos del roadmap como Próximamente cuando todavía no están instalados.
    258 
    259 = 0.9.10 =
    260 * Agrega URL segura de webhook automática al crear pagos y suscripciones.
    261 * Simplifica los ajustes de webhooks y mejora la ayuda para conseguir credenciales de Mercado Pago.
    262 
    263 = 0.9.9 =
    264 * Envía emails cuando Mercado Pago confirma que una suscripción pausada vuelve a estar activa.
    265 * Evita repetir emails de estado pausado/reactivado en cada sincronización manual o programada.
    266 
    267 = 0.9.8 =
    268 * Fuerza que el estado maestro de /preapproval prevalezca sobre pagos autorizados históricos.
    269 * Sincroniza la suscripción maestra después de webhooks de payment.created y authorized payment.
    270 
    271 = 0.9.7 =
    272 * Evita que pagos aprobados históricos sobreescriban estados pausados o cancelados devueltos por Mercado Pago.
    273 * Simplifica acciones de suscripciones para actualizar desde Mercado Pago solo desde el detalle o de forma masiva.
    274 
    275 = 0.9.6 =
    276 * Detecta suscripciones pausadas por Mercado Pago y permite reactivarlas manualmente desde el administrador.
    277 * Envía aviso al cliente y al administrador cuando Mercado Pago pausa una suscripción.
    278 * Envía un aviso único cuando Mercado Pago reprograma un cobro por reintento.
    279 * Evita repetir notas de pedido para cancelaciones ya sincronizadas.
    280 
    281 = 0.9.5 =
    282 * Mueve el JavaScript de mantenimiento a un asset admin encolado.
    283 * Requiere validación de firma de Mercado Pago antes de procesar webhooks.
    284 * Amplía la documentación del servicio externo Mercado Pago.
    285 * Renombra constantes internas con prefijo propio del plugin.
     117* Primera versión estable para crear y administrar suscripciones con Mercado Pago desde WooCommerce.
     118* Incluye sincronización, webhooks, Mi cuenta, soporte y un catálogo modular de extensiones.
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.5/src/Admin/ModulesPage.php

    r3706526 r3711978  
    3535                check_admin_referer( 'ibx_modules_check_updates' );
    3636                delete_site_transient( 'inobarix_addons_catalog_v4' );
     37                delete_site_transient( 'inobarix_addons_catalog_v5' );
     38                delete_site_transient( 'inobarix_addons_catalog_v6' );
     39                delete_site_transient( 'ibx_license_trial_catalog' );
    3740                if ( 'refresh_catalog' === $action ) {
    3841                        wp_safe_redirect( add_query_arg( array( 'page' => self::SLUG, 'catalog-refreshed' => '1' ), admin_url( 'admin.php' ) ) );
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.5/src/Admin/SubscriptionsPage.php

    r3706526 r3711978  
    493493                                if ( $update ) {
    494494                                        $display_status = 'update_available';
    495                                 } elseif ( $active && in_array( $license_status, array( 'active', 'grace', 'stale' ), true ) ) {
     495                                } elseif ( $active && in_array( $license_status, array( 'active', 'grace', 'trial_active', 'stale' ), true ) ) {
    496496                                        $display_status = 'active';
    497497                                } elseif ( $active ) {
    … …  
    499499                                } elseif ( $installed ) {
    500500                                        $display_status = 'inactive';
    501                                 } elseif ( in_array( $license_status, array( 'active', 'grace', 'stale' ), true ) ) {
     501                                } elseif ( in_array( $license_status, array( 'active', 'grace', 'trial_active', 'stale' ), true ) ) {
    502502                                        $display_status = 'licensed_not_installed';
    503503                                } else {
    504504                                        $display_status = 'available_for_purchase';
    505505                                }
     506                                $show_trial_offer = 'available_for_purchase' === $display_status
     507                                        && ! empty( $module['trial_enabled'] )
     508                                        && absint( $module['trial_days'] ?? 0 ) > 0;
    506509                                ?>
    507510                                <article class="ibx-module-card">
    … …  
    513516                                        <p><?php echo esc_html( $module['description'] ); ?></p>
    514517                                        <p><strong><?php echo esc_html( $module['price'] ); ?></strong></p>
     518                                        <?php if ( $show_trial_offer ) : ?><p><strong><?php echo esc_html( sprintf( __( '%d dias gratis, sin tarjeta', 'inobarix-recurring-payments-for-mercado-pago' ), absint( $module['trial_days'] ) ) ); ?></strong></p><?php endif; ?>
    515519                                        <?php if ( $update ) : ?><p><strong><?php printf( esc_html__( 'Actualizacion disponible: %s', 'inobarix-recurring-payments-for-mercado-pago' ), esc_html( $update->new_version ) ); ?></strong></p><?php endif; ?>
    516520                                        <?php if ( ! empty( $module['license_required'] ) ) : ?>
  • inobarix-recurring-payments-for-mercado-pago/tags/1.0.5/src/Modules/ModuleRegistry.php

    r3709773 r3711978  
    5252                $usd_pricing_plugin = 'inobarix-usd-pricing-addon/inobarix-usd-pricing-addon.php';
    5353                $restricted_content_plugin = 'inobarix-restricted-content-addon/inobarix-restricted-content-addon.php';
     54                $payment_reminders_plugin = 'inobarix-payment-reminders-addon/inobarix-payment-reminders-addon.php';
    5455                $store_url = trailingslashit( (string) apply_filters( 'inobarix_store_url', 'https://inobarix.com.ar' ) );
    5556                $catalog   = self::remote_catalog();
    … …  
    162163                                'url'         => self::catalog_field( $catalog, 'restricted_content', 'buy_url', $store_url ),
    163164                                'images'      => self::catalog_images( $catalog, 'restricted_content' ),
     165                        ),
     166                        'payment_reminders' => array(
     167                                'name'        => __( 'Recordatorios de pago', 'inobarix-recurring-payments-for-mercado-pago' ),
     168                                'description' => __( 'Recupera pedidos pendientes y fallidos con un recordatorio y enlace seguro de pago.', 'inobarix-recurring-payments-for-mercado-pago' ),
     169                                'category'    => __( 'Ventas', 'inobarix-recurring-payments-for-mercado-pago' ),
     170                                'status'      => self::plugin_active_status( $payment_reminders_plugin ),
     171                                'plugin'      => $payment_reminders_plugin,
     172                                'license_required' => true,
     173                                'license_product'  => 'payment_reminders',
     174                                'price'       => self::catalog_field( $catalog, 'payment_reminders', 'price', __( 'Consultar precio', 'inobarix-recurring-payments-for-mercado-pago' ) ),
     175                                'url'         => self::catalog_field( $catalog, 'payment_reminders', 'buy_url', $store_url ),
     176                                'images'      => self::catalog_images( $catalog, 'payment_reminders' ),
    164177                        ),
    165178                        'content_restriction' => array(
    … …  
    176189                        ),
    177190                );
     191                foreach ( $modules as $slug => $module ) {
     192                        if ( ! empty( $module['license_required'] ) && isset( $catalog[ $slug ] ) ) {
     193                                $modules[ $slug ]['trial_enabled'] = ! empty( $catalog[ $slug ]['trial_enabled'] );
     194                                $modules[ $slug ]['trial_days'] = absint( $catalog[ $slug ]['trial_days'] ?? 0 );
     195                        }
     196                }
    178197
    179198                /**
    … …  
    200219         */
    201220        private static function remote_catalog() {
    202                 $cache_key = 'inobarix_addons_catalog_v5';
     221                $cache_key = 'inobarix_addons_catalog_v6';
    203222                $cached = get_site_transient( $cache_key );
    204223                if ( is_array( $cached ) ) {
    … …  
    249268                                'description' => sanitize_text_field( (string) ( $product['description'] ?? '' ) ),
    250269                                'images'      => array_values( array_filter( array_map( 'esc_url_raw', is_array( $product['images'] ?? null ) ? $product['images'] : array() ) ) ),
     270                                'trial_enabled' => ! empty( $product['trial_enabled'] ),
     271                                'trial_days'  => max( 0, (int) ( $product['trial_days'] ?? 0 ) ),
    251272                        );
    252273                }
    … …  
    296317                        'update_available' => __( 'Actualizacion disponible', 'inobarix-recurring-payments-for-mercado-pago' ),
    297318                        'license_active'  => __( 'Licencia activa', 'inobarix-recurring-payments-for-mercado-pago' ),
     319                        'license_trial_active' => __( 'Prueba activa', 'inobarix-recurring-payments-for-mercado-pago' ),
     320                        'license_trial_expired' => __( 'Prueba vencida', 'inobarix-recurring-payments-for-mercado-pago' ),
    298321                        'license_missing' => __( 'Licencia requerida', 'inobarix-recurring-payments-for-mercado-pago' ),
    299322                        'license_expired' => __( 'Licencia vencida', 'inobarix-recurring-payments-for-mercado-pago' ),
    … …  
    389412                                'price'            => sanitize_text_field( (string) ( $module['price'] ?? '' ) ),
    390413                                'images'           => array_values( array_filter( array_map( 'esc_url_raw', (array) ( $module['images'] ?? array() ) ) ) ),
     414                                'trial_enabled'    => ! empty( $module['trial_enabled'] ),
     415                                'trial_days'       => absint( $module['trial_days'] ?? 0 ),
    391416                        );
    392417                }
  • inobarix-recurring-payments-for-mercado-pago/trunk/assets/css/admin.css

    r3709773 r3711978  
    102102body.ibx-ecosystem-admin #adminmenu #toplevel_page_inobarix .wp-submenu li.current a { color: #72a9ff; }
    103103body.ibx-ecosystem-admin .ibx-license-client > p { max-width: 78ch; color: var(--ibx-admin-muted); line-height: 1.55; }
    104 body.ibx-ecosystem-admin .ibx-license-client > div[style*="display:grid"] { max-width: 100% !important; }
    105 body.ibx-ecosystem-admin .ibx-license-client > div[style*="display:grid"] > div { border-color: var(--ibx-admin-line) !important; border-radius: 5px !important; box-shadow: none; }
    106 body.ibx-ecosystem-admin .ibx-license-client > div[style*="display:grid"] > div h2 { color: var(--ibx-admin-ink); font-size: 18px; line-height: 1.3; }
     104body.ibx-ecosystem-admin .ibx-license-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 16px; width: 100%; max-width: 1480px; }
     105body.ibx-ecosystem-admin .ibx-license-card { min-width: 0; padding: 18px; background: #fff; border: 1px solid var(--ibx-admin-line); border-radius: 5px; box-shadow: none; }
     106body.ibx-ecosystem-admin .ibx-license-card h2 { margin-top: 0; color: var(--ibx-admin-ink); font-size: 18px; line-height: 1.3; overflow-wrap: anywhere; }
     107body.ibx-ecosystem-admin .ibx-license-card form { max-width: 100%; }
     108body.ibx-ecosystem-admin .ibx-license-card input.regular-text { box-sizing: border-box; width: 100%; max-width: 100%; }
     109body.ibx-ecosystem-admin .ibx-license-card .button { max-width: 100%; white-space: normal; }
    107110body.ibx-ecosystem-admin .ibx-license-client table.widefat { max-width: 100% !important; }
    108111body.ibx-ecosystem-admin.post-type-ibox_price_table .wrap .wp-heading-inline { color: var(--ibx-admin-ink); font-size: 27px; font-weight: 650; }
    … …  
    263266}
    264267
     268.ibx-settings-content:only-child {
     269        grid-column: 1 / -1;
     270}
     271
    265272.ibx-settings-content > .card,
    266273.ibx-settings-content > form > .card {
  • inobarix-recurring-payments-for-mercado-pago/trunk/inobarix-recurring-payments-for-mercado-pago.php

    r3711426 r3711978  
    33 * Plugin Name: Suscripciones y Pagos Recurrentes con Mercado Pago para WooCommerce
    44 * Description: Crea suscripciones, pagos recurrentes, membresías y cobros automáticos con Mercado Pago en WooCommerce.
    5  * Version: 1.0.4
     5 * Version: 1.0.5
    66 * Author: Inobarix
    77 * Author URI: https://inobarix.com.ar
    … …  
    4949
    5050define( 'INOBREPA_LOADED', true );
    51 define( 'INOBREPA_VERSION', '1.0.4' );
     51define( 'INOBREPA_VERSION', '1.0.5' );
    5252define( 'INOBREPA_FILE', __FILE__ );
    5353define( 'INOBREPA_PATH', plugin_dir_path( __FILE__ ) );
  • inobarix-recurring-payments-for-mercado-pago/trunk/readme.txt

    r3711426 r3711978  
    66Requires PHP: 7.4
    77Requires Plugins: woocommerce
    8 Stable tag: 1.0.4
     8Stable tag: 1.0.5
    99License: GPLv2 or later
    1010License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    3131* Sincronización manual y programada de suscripciones y pagos autorizados.
    3232* Vista para clientes en Mi cuenta de WooCommerce con historial de pagos y estado de reintentos.
    33 * Gestión administrativa de suscripciones con detalle, sincronización, cancelación y diagnósticos.
    34 * Reportes básicos con gráficos de cobros, ingresos y altas, estados de suscripción y totales por moneda.
     33* Gestión administrativa de suscripciones con detalle, sincronización y cancelación.
     34* Reportes básicos con gráficos, estados de suscripción y totales por moneda.
    3535* Compatibilidad declarada con WooCommerce HPOS y Checkout Blocks.
    3636* Una sección de soporte con acceso a consultas y documentación.
    … …  
    4646* **Organizaciones:** gestión de miembros, aprobaciones y credenciales digitales.
    4747* **Precios en USD:** precios base en dólares con actualización de importes en pesos.
    48 * **Contenido restringido:** acceso a páginas y entradas por cuenta o plan pagado, con verificación de correo y aprobación opcionales.
     48* **Contenido restringido:** acceso a páginas y entradas por cuenta o plan pagado.
     49* **Recordatorios de pago:** recuperación de pedidos pendientes y carritos abandonados.
    4950
    5051Consulta las extensiones desde **Inobarix > Extensiones** en tu sitio o visita [Inobarix](https://inobarix.com.ar/).
    … …  
    5859== External services ==
    5960
    60 Este plugin se conecta a la API de Mercado Pago en https://api.mercadopago.com. Mercado Pago se utiliza para crear preferencias de Checkout Pro, crear y administrar preapprovals/suscripciones, consultar pagos y pagos autorizados, y sincronizar estados de suscripción o pago después de webhooks, sincronizaciones manuales o tareas programadas.
     61Este plugin se conecta a la API de Mercado Pago en https://api.mercadopago.com para crear y administrar pagos y suscripciones, consultar estados y procesar notificaciones.
    6162
    62 Los datos enviados a Mercado Pago pueden incluir ID del pedido de WooCommerce, importe del pedido, moneda, nombre del producto, email de facturación del cliente, URLs de retorno, URL segura de notificación/webhook generada por el plugin, importe de la suscripción, frecuencia de cobro e identificadores de suscripción o pago de Mercado Pago.
     63Los datos enviados pueden incluir ID del pedido, importe, moneda, nombre del producto, email de facturación, URLs de retorno y notificación, frecuencia de cobro e identificadores de Mercado Pago.
    6364
    64 Estos datos se envían cuando el cliente inicia el checkout, autoriza una suscripción, cuando el administrador sincroniza una suscripción, cuando se ejecuta una sincronización programada o cuando Mercado Pago envía un webhook.
    65 
    66 Enlaces del servicio Mercado Pago:
     65Estos datos se envían al iniciar el checkout, autorizar una suscripción, ejecutar una sincronización o procesar un webhook.
    6766
    6867* Términos: https://www.mercadopago.com.ar/ayuda/terminos-y-condiciones-uso_299
    … …  
    82813. Vaya a Inobarix > Inicio para revisar el checklist de configuración.
    83824. Abra Inobarix > Ajustes y configure las credenciales de Mercado Pago.
    84 5. Cree o edite un producto simple de WooCommerce y active la opción de pago recurrente.
    85 6. Venda el producto. El plugin envía automáticamente a Mercado Pago la URL segura para recibir notificaciones.
     835. Cree o edite un producto simple y active la opción de pago recurrente.
    8684
    8785== Frequently Asked Questions ==
    … …  
    8987= ¿El plugin requiere WooCommerce Subscriptions? =
    9088
    91 No. El plugin guarda sus propios registros de suscripción y utiliza las APIs de suscripciones de Mercado Pago.
     89No. El plugin guarda sus propios registros y utiliza las APIs de suscripciones de Mercado Pago.
    9290
    9391= ¿El plugin guarda datos de tarjeta? =
    9492
    95 No. Los clientes autorizan la suscripción en Mercado Pago. WordPress recibe estados de suscripción y pago mediante API y webhooks.
     93No. Los clientes autorizan la suscripción en Mercado Pago.
    9694
    9795= ¿Los clientes pueden ver sus suscripciones? =
    9896
    99 Sí. Un endpoint de Mi cuenta muestra suscripciones actuales y anteriores, pedidos vinculados, estado de pago, reintentos e historial de pagos.
     97Sí. Mi cuenta muestra suscripciones, pedidos vinculados, estados e historial de pagos.
    10098
    10199= ¿Los administradores pueden sincronizar suscripciones manualmente? =
    102100
    103 Sí. Los administradores pueden sincronizar suscripciones desde Inobarix > Suscripciones. El plugin también programa una tarea cron de WordPress.
    104 
    105 = ¿Qué muestran los reportes del core? =
    106 
    107 En Inobarix > Reportes puedes consultar los últimos 7, 30 o 90 días de suscripciones nuevas, cobros recurrentes e ingresos aprobados registrados localmente. Los gráficos muestran tendencias; los importes se separan por moneda y el detalle lista los 12 movimientos más recientes del período. Los registros anteriores permanecen en la base. Este resumen no sustituye la conciliación contable de Mercado Pago.
     101Sí. También existe una sincronización programada.
    108102
    109103== Changelog ==
    110104
     105= 1.0.5 =
     106* Mejora el panel administrativo con reportes gráficos, estados de suscripción y actividad reciente.
     107* Unifica el diseño del core y las extensiones, incluidas licencias, formularios y soporte.
     108* Actualiza el catálogo con imágenes, precios, nuevos addons y pruebas configuradas por producto.
     109* Refuerza la privacidad eliminando la telemetría y reduce conexiones externas innecesarias.
     110* Mejora la compatibilidad con WordPress, WooCommerce, HPOS y Checkout Blocks.
     111
    111112= 1.0.4 =
    112 * Elimina la telemetria del core gratuito para reforzar la privacidad, la seguridad y la confianza en el medio de pago.
    113 * Reduce conexiones externas innecesarias y mejora la estabilidad administrativa con versiones actuales de WordPress y WooCommerce.
    114 * El core ya no informa datos tecnicos ni inventario de la instalacion al servidor de Inobarix.
    115 
    116 = 1.0.3 =
    117 * Muestra y rota las imagenes reales de las extensiones publicadas en la tienda.
    118 * Agrega ampliacion de imagenes y mejora la jerarquia visual del titulo, precio y llamados a la accion.
    119 * Simplifica el inicio eliminando los bloques redundantes de revision y proximos cobros.
    120 * Agrega las cinco suscripciones mas recientes al inicio del plugin.
    121 * Incorpora una extension publica destacada que rota automaticamente y prioriza modulos aun no activados.
    122 
    123 = 1.0.2 =
    124 * Agrega en Inicio listas de suscripciones que requieren revision y proximos cobros.
    125 * Generaliza el flujo de dos pasos de Cobros avanzados para altas, accesos, servicios y entregas fisicas.
    126 
    127 = 1.0.1 =
    128 * Rediseña Reportes con graficos de ingresos por moneda, actividad de cobros, altas y estados.
    129 * Agrega metricas de aprobacion y suscripciones activas, y mejora las consultas por fecha con indices.
    130 * Agrega reportes basicos de suscripciones y cobros recurrentes registrados en el sitio.
    131 * Permite consultar periodos de 7, 30 y 90 dias, totales por moneda y movimientos recientes.
    132 * Actualiza el catalogo de extensiones con mas frecuencia para mostrar nuevos productos y precios.
    133 * Agrega una accion independiente para actualizar el catalogo comercial sin buscar actualizaciones de plugins.
    134 * Agrega Contenido restringido al catalogo de extensiones del ecosistema.
    135 * Aplica el diseno compartido a tipos de contenido registrados debajo de Inobarix, incluidos los listados y editores de tablas de membresias.
    136 * Mejora la presentacion de licencias y del menu de administracion del ecosistema.
    137 * Aclara que el selector de medios solo afecta compras unicas con Checkout Pro.
    138 * Quita la opcion de excluir dinero en cuenta, que Mercado Pago no permite controlar desde la preferencia.
    139 * Corrige la explicacion de los medios disponibles en suscripciones.
    140 * Refuerza la carga del diseno compartido en paginas de addons bajo Inobarix.
    141 * Estiliza estados y tablas del gestor de licencias con la misma identidad del core.
    142 * Divide Soporte en una columna de consultas y otra mas angosta para documentacion y servicios.
    143 * Reduce la altura del formulario y adapta las columnas a pantallas pequenas.
    144 * Alinea la identidad administrativa con los colores azul y negro de Inobarix.
    145 * Define jerarquias compartidas para titulos, secciones y texto auxiliar de core y extensiones.
    146 * Unifica el estilo de las pantallas del menu Inobarix, incluidos los ajustes de extensiones.
    147 * Mejora los listados de suscripciones y planes con filtros ordenados, tablas adaptables y estados visuales.
    148 * Unifica el estilo administrativo del core y las extensiones, incluidos Soporte, licencias y listados.
    149 * Aclara los medios de pago disponibles para compras unicas y suscripciones.
    150 * Organiza Inicio y un widget del Escritorio por estados de suscripcion.
    151 * Agrega un widget de servicios Inobarix y una bienvenida descartable en la primera activacion.
     113* Refuerza la privacidad del medio de pago y agrega Recordatorios de Pago al ecosistema.
     114* Mejora la estabilidad administrativa y la integración con extensiones premium.
    152115
    153116= 1.0 =
    154 * Amplia Soporte con formulario de tickets, documentacion y servicios profesionales.
    155 * Integra la pagina de Soporte al estilo del panel y presenta servicios Inobarix en Inicio.
    156 * Renombra Modulos a Extensiones en la interfaz del core.
    157 
    158 = 0.9.40 =
    159 * Actualiza los medios de pago de Checkout Pro para reconocer tarjetas prepagas como `prepaid_card`.
    160 * Migra las selecciones anteriores sin bloquear tarjetas prepagas y aclara que las suscripciones solo admiten tarjetas reutilizables compatibles.
    161 
    162 = 0.9.33 =
    163 * Corrige la redireccion de suscripciones cuando Mercado Pago agrega el parametro activation al init_point y muestra una pagina inexistente.
    164 
    165 = 0.9.32-beta.3 =
    166 * Simplifica Cobros avanzados a cobro normal, comienzo en fecha fija y flujo opcional de dos pasos.
    167 * En el modo de dos pasos autoriza primero la suscripcion y luego crea una compra WooCommerce normal para la primera entrega.
    168 * Agrega una guia visual recuperable en Mi cuenta y evita que el pedido inicial vuelva a crear otra suscripcion.
    169 
    170 = 0.9.31 =
    171 * Evita crear renovaciones y alterar fechas locales al sincronizar pagos ya aprobados.
    172 * Detecta el mismo pago aunque llegue con otro identificador de factura.
    173 
    174 = 0.9.30 =
    175 * Corrige el próximo día fijo cuando el día elegido ya pasó en el mes actual.
    176 * El modo de cuota completa usa el total real del pedido, incluido el envío.
    177 * Evita mostrar dos fechas de próximo cobro y alinea la facturación mensual con Mercado Pago.
    178 
    179 = 0.9.29 =
    180 * Simplifica listados, detalles, Mi cuenta, configuracion y cobros avanzados con textos orientados al comercio.
    181 * Oculta IDs, eventos y payloads tecnicos dentro de secciones plegables para soporte.
    182 * Reduce columnas duplicadas y muestra frecuencias de cobro en lenguaje natural.
    183 * Limpia automaticamente eventos normales de mas de 30 dias y errores de mas de 90 dias.
    184 
    185 = 0.9.28 =
    186 * Permite que los add-ons habiliten emails nativos de WooCommerce para pedidos fisicos recurrentes.
    187 * Permite mantener el pedido original fisico en Procesando mientras la suscripcion sigue vinculada a el.
    188 
    189 = 0.9.27 =
    190 * Agrega el modo de cobro completo al comprar y nuevamente en la proxima fecha fija mensual.
    191 * Mantiene el total normal del carrito y evita usar prorrateo o arancel para productos fisicos.
    192 
    193 = 0.9.26 =
    194 * Simplifica el inicio del plugin para priorizar suscripciones activas y casos que requieren atencion.
    195 * Agrega un acceso directo a los pedidos WooCommerce para el flujo de productos fisicos.
    196 * Corrige la regla responsive de las pantallas administrativas.
    197 
    198 = 0.9.25 =
    199 * Limita a dos decimales los importes de prorrateo enviados a Mercado Pago.
    200 * Evita que la precision interna de PHP agregue decimales residuales al JSON de transaction_amount.
    201 * Normaliza tambien el monto recurrente al restaurarlo luego del primer cobro.
    202 
    203 = 0.9.24 =
    204 * Hace mas robusta la sincronizacion programada de suscripciones con un cursor persistente por tandas.
    205 * Reduce el intervalo del cron del core a 10 minutos y permite configurar el tamano del lote con un filtro.
    206 * Evita que muchas suscripciones pendientes queden fuera del ciclo automatico de revision.
    207 
    208 = 0.9.23 =
    209 * Corrige el campo reason enviado a Mercado Pago para suscripciones y evita errores cuando el texto supera 40 caracteres.
    210 * Agrega duración limitada por ciclos de cobro en productos de suscripción y envía end_date a Mercado Pago.
    211 
    212 = 0.9.22 =
    213 * Agrega ayuda dinámica en Cobros avanzados según el modo de cobro inicial seleccionado.
    214 
    215 = 0.9.21 =
    216 * Oculta el método de pago de suscripciones cuando el carrito no contiene productos de suscripción.
    217 * Permite agregar una suscripción a un carrito con productos normales y muestra un botón para actualizar el carrito dejando solo la suscripción.
    218 
    219 = 0.9.20 =
    220 * Corrige textos con encoding roto en Cobros avanzados y documentación del core.
    221 
    222 = 0.9.19 =
    223 * Agrega sistema central de plantillas de emails editables para core y add-ons.
    224 * Agrega dispatcher comun de emails con variables y compatibilidad con filtros anteriores.
    225 * Agrega aviso administrativo si se detectan plugins externos de suscripciones activos sin add-on de compatibilidad.
    226 * Prepara el modulo premium de Emails avanzados.
    227 
    228 = 0.9.18 =
    229 * Integra en el core la politica global de cobros avanzados para suscripciones: ventana de compra, cobro diferido, prorrateo real y arancel inicial.
    230 * Mantiene el modo clasico como predeterminado para no alterar tiendas existentes.
    231 * Expone la logica avanzada solo cuando un add-on premium habilita Cobros avanzados.
    232 
    233 = 0.9.17 =
    234 * Ajusta el logo de Mercado Pago en Checkout Blocks con un ancho fijo de 40 px para mantener una presentación estable.
    235 
    236 = 0.9.16 =
    237 * Agrega el logo opcional de Mercado Pago y textos predeterminados claros para suscripciones en checkout.
    238 * Muestra en el carrito la fecha estimada del próximo pago recurrente.
    239 
    240 = 0.9.15 =
    241 * Cuando el carrito contiene una suscripción, muestra solo Mercado Pago Inobarix como medio de pago.
    242 * Impide mezclar suscripciones con otros productos o comprar más de una suscripción por pedido.
    243 
    244 = 0.9.14 =
    245 * Registra la pasarela y su integracion con Checkout Blocks desde la carga del plugin, evitando que el orden de carga de temas o plugins deje a Mercado Pago fuera del checkout.
    246 
    247 = 0.9.13 =
    248 * Corrige el momento de carga del core para que la pasarela se registre antes de que WooCommerce Checkout Blocks resuelva los metodos de pago.
    249 
    250 = 0.9.12 =
    251 * Corrige el registro del metodo de pago en WooCommerce Checkout Blocks para que aparezca tambien cuando el checkout usa bloques.
    252 
    253 = 0.9.11 =
    254 * Reorienta el nombre, descripción y readme hacia suscripciones y pagos recurrentes con Mercado Pago para WooCommerce.
    255 * Cambia el idioma base visible a español y agrega traducción en_US.
    256 * Carga traducciones con load_plugin_textdomain en plugins_loaded.
    257 * Muestra los módulos del roadmap como Próximamente cuando todavía no están instalados.
    258 
    259 = 0.9.10 =
    260 * Agrega URL segura de webhook automática al crear pagos y suscripciones.
    261 * Simplifica los ajustes de webhooks y mejora la ayuda para conseguir credenciales de Mercado Pago.
    262 
    263 = 0.9.9 =
    264 * Envía emails cuando Mercado Pago confirma que una suscripción pausada vuelve a estar activa.
    265 * Evita repetir emails de estado pausado/reactivado en cada sincronización manual o programada.
    266 
    267 = 0.9.8 =
    268 * Fuerza que el estado maestro de /preapproval prevalezca sobre pagos autorizados históricos.
    269 * Sincroniza la suscripción maestra después de webhooks de payment.created y authorized payment.
    270 
    271 = 0.9.7 =
    272 * Evita que pagos aprobados históricos sobreescriban estados pausados o cancelados devueltos por Mercado Pago.
    273 * Simplifica acciones de suscripciones para actualizar desde Mercado Pago solo desde el detalle o de forma masiva.
    274 
    275 = 0.9.6 =
    276 * Detecta suscripciones pausadas por Mercado Pago y permite reactivarlas manualmente desde el administrador.
    277 * Envía aviso al cliente y al administrador cuando Mercado Pago pausa una suscripción.
    278 * Envía un aviso único cuando Mercado Pago reprograma un cobro por reintento.
    279 * Evita repetir notas de pedido para cancelaciones ya sincronizadas.
    280 
    281 = 0.9.5 =
    282 * Mueve el JavaScript de mantenimiento a un asset admin encolado.
    283 * Requiere validación de firma de Mercado Pago antes de procesar webhooks.
    284 * Amplía la documentación del servicio externo Mercado Pago.
    285 * Renombra constantes internas con prefijo propio del plugin.
     117* Primera versión estable para crear y administrar suscripciones con Mercado Pago desde WooCommerce.
     118* Incluye sincronización, webhooks, Mi cuenta, soporte y un catálogo modular de extensiones.
  • inobarix-recurring-payments-for-mercado-pago/trunk/src/Admin/ModulesPage.php

    r3706526 r3711978  
    3535                check_admin_referer( 'ibx_modules_check_updates' );
    3636                delete_site_transient( 'inobarix_addons_catalog_v4' );
     37                delete_site_transient( 'inobarix_addons_catalog_v5' );
     38                delete_site_transient( 'inobarix_addons_catalog_v6' );
     39                delete_site_transient( 'ibx_license_trial_catalog' );
    3740                if ( 'refresh_catalog' === $action ) {
    3841                        wp_safe_redirect( add_query_arg( array( 'page' => self::SLUG, 'catalog-refreshed' => '1' ), admin_url( 'admin.php' ) ) );
  • inobarix-recurring-payments-for-mercado-pago/trunk/src/Admin/SubscriptionsPage.php

    r3706526 r3711978  
    493493                                if ( $update ) {
    494494                                        $display_status = 'update_available';
    495                                 } elseif ( $active && in_array( $license_status, array( 'active', 'grace', 'stale' ), true ) ) {
     495                                } elseif ( $active && in_array( $license_status, array( 'active', 'grace', 'trial_active', 'stale' ), true ) ) {
    496496                                        $display_status = 'active';
    497497                                } elseif ( $active ) {
    … …  
    499499                                } elseif ( $installed ) {
    500500                                        $display_status = 'inactive';
    501                                 } elseif ( in_array( $license_status, array( 'active', 'grace', 'stale' ), true ) ) {
     501                                } elseif ( in_array( $license_status, array( 'active', 'grace', 'trial_active', 'stale' ), true ) ) {
    502502                                        $display_status = 'licensed_not_installed';
    503503                                } else {
    504504                                        $display_status = 'available_for_purchase';
    505505                                }
     506                                $show_trial_offer = 'available_for_purchase' === $display_status
     507                                        && ! empty( $module['trial_enabled'] )
     508                                        && absint( $module['trial_days'] ?? 0 ) > 0;
    506509                                ?>
    507510                                <article class="ibx-module-card">
    … …  
    513516                                        <p><?php echo esc_html( $module['description'] ); ?></p>
    514517                                        <p><strong><?php echo esc_html( $module['price'] ); ?></strong></p>
     518                                        <?php if ( $show_trial_offer ) : ?><p><strong><?php echo esc_html( sprintf( __( '%d dias gratis, sin tarjeta', 'inobarix-recurring-payments-for-mercado-pago' ), absint( $module['trial_days'] ) ) ); ?></strong></p><?php endif; ?>
    515519                                        <?php if ( $update ) : ?><p><strong><?php printf( esc_html__( 'Actualizacion disponible: %s', 'inobarix-recurring-payments-for-mercado-pago' ), esc_html( $update->new_version ) ); ?></strong></p><?php endif; ?>
    516520                                        <?php if ( ! empty( $module['license_required'] ) ) : ?>
  • inobarix-recurring-payments-for-mercado-pago/trunk/src/Modules/ModuleRegistry.php

    r3709773 r3711978  
    5252                $usd_pricing_plugin = 'inobarix-usd-pricing-addon/inobarix-usd-pricing-addon.php';
    5353                $restricted_content_plugin = 'inobarix-restricted-content-addon/inobarix-restricted-content-addon.php';
     54                $payment_reminders_plugin = 'inobarix-payment-reminders-addon/inobarix-payment-reminders-addon.php';
    5455                $store_url = trailingslashit( (string) apply_filters( 'inobarix_store_url', 'https://inobarix.com.ar' ) );
    5556                $catalog   = self::remote_catalog();
    … …  
    162163                                'url'         => self::catalog_field( $catalog, 'restricted_content', 'buy_url', $store_url ),
    163164                                'images'      => self::catalog_images( $catalog, 'restricted_content' ),
     165                        ),
     166                        'payment_reminders' => array(
     167                                'name'        => __( 'Recordatorios de pago', 'inobarix-recurring-payments-for-mercado-pago' ),
     168                                'description' => __( 'Recupera pedidos pendientes y fallidos con un recordatorio y enlace seguro de pago.', 'inobarix-recurring-payments-for-mercado-pago' ),
     169                                'category'    => __( 'Ventas', 'inobarix-recurring-payments-for-mercado-pago' ),
     170                                'status'      => self::plugin_active_status( $payment_reminders_plugin ),
     171                                'plugin'      => $payment_reminders_plugin,
     172                                'license_required' => true,
     173                                'license_product'  => 'payment_reminders',
     174                                'price'       => self::catalog_field( $catalog, 'payment_reminders', 'price', __( 'Consultar precio', 'inobarix-recurring-payments-for-mercado-pago' ) ),
     175                                'url'         => self::catalog_field( $catalog, 'payment_reminders', 'buy_url', $store_url ),
     176                                'images'      => self::catalog_images( $catalog, 'payment_reminders' ),
    164177                        ),
    165178                        'content_restriction' => array(
    … …  
    176189                        ),
    177190                );
     191                foreach ( $modules as $slug => $module ) {
     192                        if ( ! empty( $module['license_required'] ) && isset( $catalog[ $slug ] ) ) {
     193                                $modules[ $slug ]['trial_enabled'] = ! empty( $catalog[ $slug ]['trial_enabled'] );
     194                                $modules[ $slug ]['trial_days'] = absint( $catalog[ $slug ]['trial_days'] ?? 0 );
     195                        }
     196                }
    178197
    179198                /**
    … …  
    200219         */
    201220        private static function remote_catalog() {
    202                 $cache_key = 'inobarix_addons_catalog_v5';
     221                $cache_key = 'inobarix_addons_catalog_v6';
    203222                $cached = get_site_transient( $cache_key );
    204223                if ( is_array( $cached ) ) {
    … …  
    249268                                'description' => sanitize_text_field( (string) ( $product['description'] ?? '' ) ),
    250269                                'images'      => array_values( array_filter( array_map( 'esc_url_raw', is_array( $product['images'] ?? null ) ? $product['images'] : array() ) ) ),
     270                                'trial_enabled' => ! empty( $product['trial_enabled'] ),
     271                                'trial_days'  => max( 0, (int) ( $product['trial_days'] ?? 0 ) ),
    251272                        );
    252273                }
    … …  
    296317                        'update_available' => __( 'Actualizacion disponible', 'inobarix-recurring-payments-for-mercado-pago' ),
    297318                        'license_active'  => __( 'Licencia activa', 'inobarix-recurring-payments-for-mercado-pago' ),
     319                        'license_trial_active' => __( 'Prueba activa', 'inobarix-recurring-payments-for-mercado-pago' ),
     320                        'license_trial_expired' => __( 'Prueba vencida', 'inobarix-recurring-payments-for-mercado-pago' ),
    298321                        'license_missing' => __( 'Licencia requerida', 'inobarix-recurring-payments-for-mercado-pago' ),
    299322                        'license_expired' => __( 'Licencia vencida', 'inobarix-recurring-payments-for-mercado-pago' ),
    … …  
    389412                                'price'            => sanitize_text_field( (string) ( $module['price'] ?? '' ) ),
    390413                                'images'           => array_values( array_filter( array_map( 'esc_url_raw', (array) ( $module['images'] ?? array() ) ) ) ),
     414                                'trial_enabled'    => ! empty( $module['trial_enabled'] ),
     415                                'trial_days'       => absint( $module['trial_days'] ?? 0 ),
    391416                        );
    392417                }
Note: See TracChangeset for help on using the changeset viewer.