Edición: Referencia para Desarrolladores — Free (v2.0+) y PRO (v5.0+) | Estándares: WPCS, POO y WooCommerce HPOS

Esta sección está dirigida a desarrolladores WordPress/WooCommerce, agencias e integradores técnicos que necesitan comprender la estructura interna de archivos, las convenciones de nombres, el ciclo de vida de inicialización y la compatibilidad con High-Performance Order Storage (HPOS / Custom Order Tables) de Modal COD Form.

1. Convenciones de Nombres y Prefijos (Free vs. PRO)

Para garantizar cero colisiones con otros plugins y una transición transparente entre la versión de WordPress.org y la versión comercial, se aplican las siguientes convenciones:

Elemento Técnico Modal COD Form Free (modal-cod-form v2.0) Modal COD Form PRO (cod-form-wc-dc v5.0)
Prefijo de Clases PHP MODALCODF_* (ej. MODALCODF_Order_Creator) PRCOD_* (ej. PRCOD_Order_Creator)
Prefijo de Funciones modalcodf_* prcod_*
Instancia Global Freemius mcfp_fs() (Product ID: 34746) mcfp_fs() (Product ID: 34746)
Claves en wp_options cod_form_* (Compartidas con PRO) cod_form_* y prcod_*
Post Meta de Producto _cod_disable_button (Compartido) _cod_disable_button (Compartido)
Selectores DOM Principales #codFormModal, #modal_checkout, #checkout_form #codFormModal, #modal_checkout, #checkout_form

2. Estructura de Directorios del Plugin PRO (cod-form-wc-dc)

cod-form-wc-dc/
├── cod-form-wc-dc.php                         # Bootstrap principal + Inicialización Freemius SDK (mcfp_fs())
├── includes/
│   ├── loader.php                             # Cargador central modular
│   ├── handler-license.php                    # Puente desacoplado del subsistema de licencias (hooks/filters)
│   ├── license/                               # Migración pasiva SLM -> Freemius, API, Cron diario y UI
│   ├── admin/
│   │   ├── class-prcod-admin-loader.php       # Inicializador del panel de administración
│   │   ├── class-prcod-product-fields.php     # Meta _cod_disable_button por producto
│   │   ├── class-prcod-google-maps-admin-ui.php # Metabox HPOS de validación de direcciones
│   │   └── settings/                          # Singleton PRCOD_Settings_Manager + 12 clases PRCOD_Settings_*
│   ├── woo-states-places/                     # Datasets de países (states/, places/, district/PEV2.php)
│   ├── utils/                                 # Helpers de precios, envíos HMAC, upsells y formato
│   └── woocommerce-extensions/
│       ├── woo-ext-ajax.php                   # Bootstrap de controladores AJAX
│       ├── woo-ext-shortcodes.php             # Motor multi-instancia [custom_add_to_cart_button] y [cod_menu_cart]
│       ├── woo-ext-templates.php              # Filtro woocommerce_locate_template
│       ├── woo-ext-postypes.php               # Registro de CPTs (upsells, downsells, quantity_offers, abandoned_carts)
│       ├── woo-ext-webhook.php                # Despachador de los 4 Webhooks salientes y logs
│       ├── woo-ext-custom-fields/             # Metaboxes DRY y cpt-admin-helpers.php con Live Preview
│       ├── fraud-prevention/                  # PRCOD_Google_Maps_Validator
│       └── ajax/                              # 7 Clases controladoras: Ajax, Order_Creator, Cart, Shipping, Downsell, Location, Abandoned_Cart
├── templates/                                 # Plantillas del modal, tabla, upsells, downsells y overrides WC
└── assets/                                    # JS, CSS con variables dinámicas y fuentes locales .woff2

3. Compatibilidad Nativa con WooCommerce HPOS (Custom Order Tables)

Tanto la edición Free como la edición PRO están diseñadas para operar con las tablas personalizadas de pedidos de WooCommerce (wp_wc_orders):

Siguientes Documentos para Desarrolladores