WordPress.org Plugin Directory — Compliance Guidelines

Consolidado a partir das diretrizes oficiais do WordPress.org Plugin Directory.
Fonte: https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/
Ultima atualizacao das diretrizes: Marco 2024


1. Licenca

Diretriz: Plugins must be compatible with the GNU General Public License v2 (or later).

  • Todo o codigo, dados e imagens hospedados no diretorio WordPress.org devem ser compativeis com GPL ou GPL-Compatible.
  • Bibliotecas de terceiros incluidas tambem devem ser compativeis.
  • Recomendado: usar a mesma licenca do WordPress — GPLv2 or later.

2. Responsabilidade do Desenvolvedor

Diretriz: Developers are responsible for the contents and actions of their plugins.

  • O desenvolvedor e o unico responsavel por garantir que todos os arquivos do plugin estejam em conformidade.
  • Escrever codigo intencionalmente para contornar diretrizes e proibido.
  • Antes de fazer upload para SVN, confirmar a licenca de todos os arquivos (codigo, imagens, bibliotecas).
  • Cumprir os termos de uso de todas as APIs e servicos de terceiros utilizados.

3. Versao Estavel Disponivel

Diretriz: A stable version of a plugin must be available from its WordPress Plugin Directory page.

  • A unica versao distribuida pelo WordPress.org e a do diretorio.
  • Distribuir codigo por metodos alternativos sem manter o codigo hospedado atualizado pode resultar em remocao.
  • O trunk/readme.txt deve sempre refletir a versao atual do plugin.

4. Codigo Legivel

Diretriz: Code must be (mostly) human readable.

  • Nao e permitido ofuscar codigo com tecnicas similares a p,a,c,k,e,r, uglify mangle, ou convencoes de nomes obscuras ($z12sdf813d).
  • O codigo-fonte deve estar incluido no plugin ou haver um link no readme para o local de desenvolvimento.
  • Recomendado documentar como usar as ferramentas de build.

5. Sem Trialware

Diretriz: Trialware is not permitted.

  • Funcionalidade nao pode ser restrita ou bloqueada, liberada apenas por pagamento ou upgrade.
  • Funcionalidade nao pode ser desabilitada apos periodo de trial ou quota atingida.
  • Plugins que fornecem apenas acesso sandbox a APIs tambem sao proibidos.
  • Permitido: upsell de produtos adicionais, desde que nao viole a diretriz 11 (hijacking).

6. Software as a Service (SaaS) Permitido

Diretriz: Software as a Service is permitted.

  • Plugins que atuam como interface para servicos externos sao permitidos, mesmo pagos.
  • O servico deve ter funcionalidade de substancia e ser documentado no readme.
  • Nao permitido:
  • Servico que existe apenas para validar licencas/keys.
  • Mover codigo arbitrario para fora do plugin para o servico parecer fornecer funcionalidade extra.
  • Storefronts que nao sao servicos.

7. Sem Rastreamento Sem Consentimento

Diretriz: Plugins may not track users without their consent.

  • Plugins nao podem contatar servidores externos sem consentimento explicito e autorizado.
  • Exemplos proibidos:
  • Coleta automatizada de dados do usuario sem confirmacao explicita.
  • Induzir usuarios a submeter informacao como requisito para usar o plugin.
  • Offloading de assets (imagens, scripts) nao relacionados a um servico.
  • Mecanismos de publicidade de terceiros que rastreiam uso/views.
  • Excecao: SaaS como Twitter, Amazon CDN, Akismet — consentimento e implicito ao configurar.

8. Sem Codigo Executavel Via Terceiros

Diretriz: Plugins may not send executable code via third-party systems.

  • Externamente carregar codigo de servicos documentados e permitido, mas a comunicacao deve ser segura.
  • Nao permitido:
  • Instalar plugins, temas ou add-ons de servidores que nao sejam WordPress.org.
  • Instalar versoes premium do mesmo plugin.
  • Chamar CDN de terceiros por razoes que nao sejam inclusao de fontes; todo JS/CSS nao relacionado a servico deve ser incluido localmente.
  • Usar iframes para conectar paginas de admin; APIs devem ser usadas para minimizar riscos.

9. Legalidade e Etica

Diretriz: Developers and their plugins must not do anything illegal, dishonest, or morally offensive.

  • Manipulacao artificial de resultados de busca (keyword stuffing, black hat SEO).
  • Oferecer aumento de trafego.
  • Compensar, enganar ou extorquir por reviews.
  • Criar contas falsas para reviews (sockpuppeting).
  • Utilizar recursos do servidor sem permissao (botnets, crypto-mining).

10. Sem Links/Creditos Externos Sem Permissao

Diretriz: Plugins may not embed external links or credits on the public site without explicitly asking the user's permission.

  • Nao adicionar links ou creditos no frontend sem opt-in explicito do usuario.

11. Nao Hijack o Dashboard

Diretriz: Plugins should not hijack the admin dashboard.

  • Nao adicionar widgets obrigatorios, notificacoes intrusivas, ou redirecionamentos forcados apos ativacao.
  • Upsell deve ser moderado e nao interferir na experiencia de admin.

12. Readme Sem Spam

Diretriz: Public facing pages on WordPress.org (readmes) must not spam.

  • Maximo de 12 tags.
  • Sem affiliate links desnecessarios.
  • Sem tags de plugins concorrentes.
  • Sem keyword stuffing ou blackhat SEO.
  • Readmes devem ser escritos para pessoas, nao bots.
  • Links afiliados devem ser divulgados e apontar diretamente para o servico.

13. Usar Bibliotecas Padrao do WordPress

Diretriz: Plugins must use WordPress' default libraries.

  • WordPress inclui jQuery, Atom Lib, SimplePie, PHPMailer, PHPass, etc.
  • Plugins nao podem incluir essas bibliotecas no proprio codigo.
  • Devem usar as versoes empacotadas com o WordPress.

14. Evitar Commits Frequentes

Diretriz: Frequent commits to a plugin should be avoided.

  • O repositorio SVN e de release, nao de desenvolvimento.
  • Apenas codigo pronto para deploy deve ser enviado.
  • Commits rapidos e repetidos que apenas ajustam aspectos menores podem ser vistos como gaming da lista Recently Updated.

15. Incrementar Versao a Cada Release

Diretriz: Plugin version numbers must be incremented for each new release.

  • Usuarios so sao alertados de updates quando a versao aumenta.
  • O readme.txt do trunk deve sempre refletir a versao atual.

16. Plugin Completo na Submissao

Diretriz: A complete plugin must be available at the time of submission.

  • Nao e possivel reservar nomes para uso futuro.
  • Um zip completo e exigido na submissao.

17. Respeitar Marcas Registradas

Diretriz: Plugins must respect trademarks, copyrights, and project names.

  • Nao usar marcas registradas ou nomes de outros projetos como termo inicial do slug.
  • Exemplo: nao usar wordpress no slug.

Requisitos Adicionais de Seguranca e Privacidade

Seguranca

  • Todo input do usuario deve ser validado e sanitizado.
  • Todo output deve ser escapado.
  • Usar nonces para proteger acoes.
  • Verificar capabilities antes de executar acoes administrativas.
  • Nao gerar notices/warnings com WP_DEBUG ativado.

Privacidade

  • Plugins que coletam, usam, armazenam ou passam dados pessoais a terceiros devem usar wp_add_privacy_policy_content().
  • Devem fornecer callbacks de Personal Data Exporter e Personal Data Eraser quando aplicavel.
  • Devem documentar quais dados sao coletados, como sao usados e com quem sao compartilhados.

Plugin Check (PCP)

  • O WordPress.org exige que novos plugins passem no Plugin Check antes da aprovaao.
  • Plugins re-listados apos problemas de seguranca tambem devem passar nos checks de seguranca.
  • O PCP verifica: seguranca, performance, acessibilidade, i18n, e conformidade com diretrizes.

Checklist de Submissao

  • [ ] Licenca GPL compativel (GPLv2 ou later)
  • [ ] readme.txt valido com todos os headers obrigatorios
  • [ ] Codigo legivel, nao ofuscado
  • [ ] Sem trialware
  • [ ] Sem tracking sem consentimento explicito
  • [ ] Sem codigo executavel de terceiros (exceto SaaS documentado)
  • [ ] Sem hijack de dashboard
  • [ ] Maximo 12 tags no readme
  • [ ] Usa bibliotecas padrao do WordPress (nao inclui jQuery, etc.)
  • [ ] Versao incrementada
  • [ ] Plugin completo e funcional
  • [ ] Nome do plugin nao viola marcas registradas
  • [ ] Seguranca: input sanitizado, output escapado, nonces, capabilities
  • [ ] Privacidade: wp_add_privacy_policy_content() se aplicavel
  • [ ] Passa no Plugin Check (PCP)