Aprender cómo crear un plugin en WordPress desde cero con PHP es el paso definitivo que separa a quien solo instala plantillas de un verdadero desarrollador WordPress profesional. Además, encapsular la lógica de negocio de tu sitio o tienda WooCommerce dentro de un plugin modular evita perder tus funciones si algún día cambias de tema visual.
Después de desarrollar decenas de plugins a medida para empresas en Latinoamérica y publicar 6 plugins aprobados en el repositorio oficial de WordPress.org (`@crleguizamon`), en esta guía te comparto la arquitectura exacta, las reglas de seguridad que exige el equipo de revisión de WordPress y cómo apoyarte en IA sin introducir vulnerabilidades.
1. Estructura profesional de carpetas de un Plugin de WordPress
Dentro de wp-content/plugins/, crea una carpeta con un slug único (por ejemplo, dc-gestor-licencias). Para que el proyecto sea escalable y mantenible, organiza tus archivos siguiendo el estándar de programación orientada a objetos (OOP):
dc-gestor-licencias/
├── dc-gestor-licencias.php # Archivo principal con cabecera y constantes
├── uninstall.php # Limpieza de opciones/tablas al desinstalar
├── readme.txt # Metadatos si vas a subirlo a WordPress.org
├── includes/
│ ├── class-dc-activator.php
│ ├── class-dc-rest-api.php # Endpoints de la API REST
│ └── class-dc-admin.php # Panel de ajustes en wp-admin
└── assets/
├── css/
└── js/
2. Cabecera oficial y bloqueo de acceso directo en el archivo principal
Todo plugin de WordPress comienza con un bloque de comentarios estándar que WordPress lee para mostrarlo en el menú Plugins, seguido inmediatamente por la comprobación de ABSPATH para evitar la ejecución directa del archivo PHP por URL:
<?php
/**
* Plugin Name: DC Gestor de Pedidos y API
* Plugin URI: https://devcristian.com/plugins/
* Description: Sincronización avanzada de pedidos de WooCommerce mediante API REST y Webhooks.
* Version: 1.0.0
* Requires at least: 6.2
* Requires PHP: 7.4
* Author: Cristian Leguizamón
* Author URI: https://profiles.wordpress.org/crleguizamon/
* License: GPL v2 or later
* Text Domain: dc-gestor-pedidos
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Salir si se accede directamente
}
define( 'DC_GESTOR_VERSION', '1.0.0' );
define( 'DC_GESTOR_PATH', plugin_dir_path( __FILE__ ) );
define( 'DC_GESTOR_URL', plugin_dir_url( __FILE__ ) );
3. Las 4 Reglas de Seguridad obligatorias (Estándar WordPress.org)
Cuando envías un plugin a revisión oficial en WordPress.org (o cuando programas un plugin de pasarela de pago), tu código es auditado frente a 4 pilares críticos:
- Prefijos únicos o Namespaces en PHP: Nunca declares funciones genéricas como
guardar_datos(). Usa siempre un prefijo único (comomcod_odc_) o clases connamespace DevCristianGestor;para evitar colisiones fatales con otros plugins. - Sanitizar a la entrada (Sanitize): Limpia siempre cualquier dato proveniente de
$_POST,$_GETo peticiones de la API REST de WordPress usando funciones nativas comosanitize_text_field( wp_unslash( $_POST['campo'] ) ),absint()osanitize_email(). - Escapar a la salida (Escape): Jamás imprimas una variable con
echo $variable;sin escaparla conesc_html(),esc_attr(),esc_url()owp_kses_post(). - Verificar Nonces y Capacidades (Capabilities): Antes de procesar cualquier formulario o petición AJAX, comprueba
check_admin_referer()/wp_verify_nonce()junto concurrent_user_can( 'manage_options' ).
4. Ejemplos reales de Plugins publicados en WordPress.org y WooCommerce
Si quieres inspeccionar el código fuente de plugins reales en producción creados bajo esta arquitectura, puedes revisar nuestros desarrollos oficiales:
- Plugins gratuitos en el repositorio de WordPress.org (@crleguizamon):
- MCOD Cloud API Chat CRM (CRM de WhatsApp Cloud API dentro de WordPress).
- MCOD Temp Storage (Almacenamiento temporal vía API REST para flujos de n8n y Make).
- MCOD Minimalist Checkout y Modal COD Form for WooCommerce.
- MCOD Post Cleanup Manager y MCRPD Regenerate Download Permissions.
- Plugins comerciales de pasarelas recurrentes: Plugin Pasarela Wompi para WooCommerce Subscriptions y Plugin Pasarela Mercado Pago para WooCommerce Subscriptions.
Sobre el autor — Cristian Leguizamón (@crleguizamon): Desarrollador Full-Stack especializado en WordPress, WooCommerce, IA y Automatizaciones con más de 9 años de experiencia y 6 plugins publicados en el directorio oficial de WordPress.org.
¿Buscas plugins de cobro recurrente o desarrollo a medida? Explora nuestro Catálogo de Plugins para WooCommerce y WordPress o solicita soporte en DevCristian.com.