Cómo Proteger Mi Tema Premium de WordPress de Ser Copiado
Dicen que WordPress es GPL, y por lo tanto todos los plugins y temas hechos con él deben ser GPL. Está bien, pero si pasé tres meses codificando un tema de aplicación extremadamente complejo con la intención de venderlo repetidamente para obtener ganancias, como un tema de sistema de programación para consultorios médicos, entonces ¿cómo puedo proteger mi inversión, aunque sea de manera moderada?

Además de las otras dos sugerencias, existe otro enfoque posible: mover toda la funcionalidad de tu aplicación personalizada fuera del Tema e integrarla en un servicio web alojado, al que el Tema se conecte mediante una clave API. De esta manera, la redistribución del Tema en sí no afecta tu modelo de negocio basado en la aplicación personalizada, ya que la aplicación requeriría el Tema más una clave API válida.
Este enfoque puede o no funcionar, dependiendo de la naturaleza de tu aplicación personalizada, pero es un modelo exitoso para algunos Plugins comerciales y es totalmente compatible con la GPL.

Además de requerir una clave API para funcionar, también he visto que se requiere una para actualizar. Esto hace que la aplicación sea completamente funcional, pero cualquier actualización requiere una clave válida. Esto te permite proporcionar actualizaciones con un solo clic a aquellos que pagan por la aplicación.

Dejando de lado la legalidad, generalmente lo veo de esta manera: escribe buen código y ofrece buen soporte, y la gente vendrá a ti. Hay muchos temas premium que son GPL y les va muy bien. Mira WooThemes, Headway, StudioPress (Genesis) por mencionar solo algunas empresas que escriben temas de calidad, completamente GPL, y se ganan la vida haciéndolo.
En mi opinión, parte de su éxito se debe a que ofrecen un soporte de calidad y fijan un precio para sus temas que les permite vivir pero que otros pueden permitirse pagar.
Creo que esta idea de "Si hago mi tema GPL, alguien lo va a robar y todo mi trabajo desaparecerá" es simplemente falsa. Claro, quizás alguien lo robe y lo regale. Pero si ofreces soporte, la gente seguirá viniendo a ti para obtenerlo. Sin mencionar el hecho de que saben lo que están obteniendo. Los temas premium gratuitos/robados (y algunos no premium) a menudo contienen spyware/malware. Prefiero pagarle a alguien por algo que sé que funciona que lidiar con un virus más tarde.
Un último ejemplo (y quizás mi favorito) es Theme Hybrid de Justin Tadlock. Lo lanza gratis como GPL y cobra $25 al año por soporte. Una tarifa que pago con gusto porque su soporte es increíble.
En resumen, si creas un entorno de confianza, la gente vendrá.
Otra solución sería un modelo de tres niveles: $X por el producto, $Y por soporte, $Z por complementos adicionales.
PD: personalmente, no compro nada para WordPress que NO sea completamente GPL.

"Los temas premium gratuitos/robados (y algunos no premium) a menudo contienen spyware/malware. Prefiero pagarle a alguien por algo que sé que funciona en lugar de lidiar con un virus después." ¡Excelente punto!

¿Qué pasa si he incluido en el tema algunos archivos PHP que no cargan el encabezado de WordPress (bootstrap) y no usan ninguna API del Codex de WP? ¿Se supone que esos también deben ser GPL?

@Volomike El tema de GPL en el contexto de PHP es un área gris y las cosas suelen ser cuestión de opinión más que de hechos legales. En mi opinión personal, es menos confuso y problemático tener todo el código PHP bajo GPL[-compatible].

El problema con este enfoque es que es muy probable que el código de la aplicación personalizada esté escrito en PHP, así que si uno desea adherirse a la interpretación oficial de WordPress de que todo el código PHP es derivado, entonces una licencia dividida no ayudará.

Algo que no se ha mencionado en este hilo son los temas de Encriptación y Ofuscación.
Encriptar tu código con IonCube o Zend Encoder son solo dos métodos populares para proteger temas y/o plugins que he visto en uso.
El problema con la encriptación es que con suficiente voluntad y deseo, puedes desencriptar los archivos de vuelta a su estado original. A veces los resultados varían y dependiendo de qué tan bien se entienda la metodología de encriptación, a menudo determinará el éxito o el fracaso en desencriptar archivos.
Hay individuos sin escrúpulos que se han vuelto bastante hábiles en el arte de desencriptar archivos de IonCube, Zend y otros. Para la persona promedio, la molestia a menudo supera el valor.
La siguiente metodología es la ofuscación, que rara vez he visto usar. En mi opinión, puede hacer que sea casi imposible descifrar archivos que han sido adecuadamente ofuscados, lo que a su vez también significa que no puedes editar archivos con ofuscación de la manera tradicional y necesitas mantener copias de tus archivos maestros para cualquier modificación, actualización o corrección de errores, lo que generalmente no es un problema.
Sin embargo, una combinación de encriptación y ofuscación haría que sea casi imposible, si no absolutamente imposible, robar tu código propietario. No evitará que la gente lo use, asumiendo que funcione, pero evitará que lo modifiquen o copien la funcionalidad para crear su propio producto similar.
Usar una Clave API como se mencionó anteriormente es otro gran método para ayudar a proteger tus productos, PERO hay una desventaja en este método y es que al almacenar parte de la lógica de tu aplicación fuera del tema o plugin original significa que el usuario necesita conectarse a tu servidor para recuperar esa lógica para que el tema o plugin funcione correctamente.
Esto suena como algo genial y lo es en su mayor parte, pero considera qué pasaría si tu servidor se desconectara incluso por una o dos horas. ¿Haría que tu tema o plugin sea inutilizable? Sin duda lo haría. Entonces necesitarías considerar qué tipo de impacto tendría eso en el usuario final.
Podrías evitar esto, en la medida de lo posible, teniendo algunas ubicaciones de servidor de respaldo para manejar la distribución de tu lógica API, como usar servicios en la nube de empresas confiables como Amazon y más, además de acceder directamente a la lógica desde tu servidor.
Luego necesitarías sopesar el costo en sobrecarga y finalmente el valor para ti. ¿Realmente vale la pena el tiempo? Supongo que eso es específico del proyecto y depende, pero son consideraciones que uno debe hacer al final.
La conclusión es que la mayoría de las personas que piratearán o robarán tu producto, tema o plugin probablemente nunca hubieran comprado tu producto, tema o plugin en primer lugar.
A menudo se piensa que hay tres tipos de personas en nuestro entorno:
Alguien que robará y pirateará cualquier cosa, siempre.
Alguien que intentará robar o piratear cualquier cosa, antes de comprar un producto.
Alguien que simplemente comprará tu producto, porque es lo correcto y la forma más confiable de garantizar que tu producto funcione como se describe.
Aunque el pirateo y robo de temas y plugins es abundante en Internet, la cantidad de personas que realmente usan tus temas o plugins con la suficiente consistencia como para justificar algún daño a tus ingresos es algo minúscula.
No es para decir que no deberíamos hacer todo lo posible para minimizar esa pérdida, pero a menudo tus esfuerzos estarían mejor invertidos en crear más productos y/o comercializar aún más los productos existentes, así como diversificar la forma en que ofreces tu producto.
Con la velocidad a la que muchos productos se actualizan con nuevas funciones o corrigen errores, a menudo hace que los productos pirateados previamente sean inútiles o no tan fructíferos como si hubieran sido pagados.
Como se mencionó anteriormente, Encriptar y Ofuscar código, combinados, son dos métodos que vale la pena investigar más, además de la integración estilo API, para ayudar a proteger tus productos, temas o plugins de la mejor manera posible.

Por favor, no sugieras esto. La licencia GPL requiere que el código esté en "la forma preferida del trabajo para realizar modificaciones en él". Eso significa sin ofuscación ni encriptación.

¿En qué se diferencia de usar una clave API? ¡Que, si no te has dado cuenta, era la respuesta aceptada! Alojar parte de la lógica de tu aplicación en un servidor de terceros y retenerla como resultado es efectivamente lo mismo que encriptar u ofuscar. Si estás encriptando u ofuscando código propietario que no incluye funciones específicas de la API de WordPress, entonces no veo cómo esto es un problema.

Si lo estás vendiendo, entonces no necesita estar bajo GPL, ya que no puedes venderlo en los sitios de WordPress. Puedes distribuirlo tú mismo bajo cualquier licencia que desees. La restricción de GPL es solo para los repositorios de Wordpress.org, y dado que no puedes venderlo en Wordpress.org, puedes tener la licencia que prefieras.
