Plugin Distribution
A plataforma Plugin Distribution da Lidmo oferece uma solucao completa para desenvolvedores WordPress que desejam distribuir plugins fora do repositorio oficial wordpress.org. Com infraestrutura propria de versionamento, licenciamento e atualizacao automatica, voce mantem controle total sobre a distribuicao dos seus plugins.
Principais recursos da plataforma:
- Versionamento: controle completo de versoes com suporte a upload manual e integracao Git
- Licenciamento: sistema robusto de licencas com ativacao por dominio e limites configuraveis
- Auto-updates: seus usuarios recebem atualizacoes diretamente pelo painel do WordPress
- Webhooks: notificacoes em tempo real sobre eventos do ciclo de vida do plugin
- Analytics: metricas detalhadas de instalacoes, downloads e distribuicao de versoes
Quick Start
Siga estes passos para comecar a distribuir seu plugin pela Lidmo:
- Crie sua conta na plataforma Lidmo e acesse o painel de controle
- Registre seu plugin no dashboard, preenchendo nome, slug, descricao e versao inicial
- Faca o upload da primeira versao (arquivo ZIP) ou conecte seu repositorio Git
- Gere chaves de licenca para controlar o acesso ao plugin
- Instale o Lidmo Update Checker no codigo do seu plugin (veja a secao de integracao abaixo)
- Pronto: seus usuarios passam a receber atualizacoes automaticamente pelo WordPress
Dica: Voce pode testar todo o fluxo gratuitamente durante o periodo trial de 7 dias. Nenhuma cobranca sera feita ate que voce confirme sua assinatura.
Plugin Registration
Para comecar a distribuir um plugin, voce precisa registra-lo no dashboard da Lidmo. O registro cria a identidade do plugin na plataforma e habilita todos os recursos de distribuicao.
Campos obrigatorios
| Campo | Descricao | Exemplo |
|---|---|---|
name |
Nome de exibicao do plugin | Meu Plugin Pro |
slug |
Identificador unico (lowercase, sem espacos) | meu-plugin-pro |
description |
Descricao curta do plugin | Plugin de otimizacao para WooCommerce |
version |
Versao inicial do plugin | 1.0.0 |
Campos opcionais
- Icon: icone do plugin exibido no painel WordPress (formato PNG ou SVG, 256x256px recomendado)
- Banner: imagem de destaque para a pagina do plugin (formato PNG ou JPG, 772x250px recomendado)
- Changelog: historico de alteracoes por versao, exibido aos usuarios finais durante a atualizacao
Version Management
A gestao de versoes e o nucleo da plataforma de distribuicao. Cada nova versao publicada fica disponivel automaticamente para todos os usuarios com licenca ativa.
Upload manual (ZIP)
A forma mais simples de publicar uma versao: faca o upload de um arquivo ZIP contendo os arquivos do plugin diretamente pelo dashboard. O sistema valida a estrutura do pacote e extrai os metadados automaticamente.
Integracao Git
Para equipes que utilizam controle de versao, a Lidmo oferece integracao nativa com os principais provedores Git:
- GitHub -- conecte via OAuth e selecione o repositorio
- GitLab -- suporte a instancias self-hosted e GitLab.com
- Bitbucket -- integracao via App Password ou OAuth
Releases automaticas via Git tags
Ao conectar um repositorio, voce pode configurar a publicacao automatica de versoes a partir de Git tags.
Quando uma nova tag e criada (ex: v1.2.0), a plataforma automaticamente:
- Detecta a nova tag via webhook do provedor Git
- Faz o download do codigo-fonte correspondente
- Empacota o plugin em formato ZIP
- Publica a nova versao na plataforma
Semantic Versioning
Recomendamos o uso de Semantic Versioning (SemVer) para numerar suas versoes:
MAJOR.MINOR.PATCH
1.0.0 -- versao inicial
1.1.0 -- nova funcionalidade adicionada (backward-compatible)
1.1.1 -- correcao de bug
2.0.0 -- mudanca incompativel com versoes anteriores (breaking change)
Changelog
Cada versao pode ter um changelog associado. O changelog e exibido ao usuario final no painel de atualizacoes do WordPress, permitindo que ele saiba exatamente o que mudou antes de atualizar.
Dica: Mantenha o changelog organizado por categorias como "Adicionado", "Corrigido" e "Alterado" para facilitar a leitura dos seus usuarios.
License System
O sistema de licenciamento da Lidmo permite controlar o acesso ao seu plugin e gerenciar ativacoes por dominio. Cada licenca possui um tipo, um limite de ativacoes e um status.
Tipos de licenca
| Tipo | Descricao | Ativacoes |
|---|---|---|
| Single-site | Licenca para uso em um unico dominio | 1 |
| Multi-site | Licenca para uso em multiplos dominios (limite configuravel) | 3, 5, 10, etc. |
| Unlimited | Licenca sem restricao de dominios | Ilimitado |
Gerando chaves de licenca
Chaves de licenca sao geradas pelo dashboard da Lidmo. Cada chave e unica e pode ser associada a um cliente ou pedido. O formato padrao e alfanumerico com separadores:
LIDMO-XXXX-XXXX-XXXX-XXXX
Ativacao por dominio
Quando um usuario instala o plugin e insere a chave de licenca, o plugin envia uma requisicao para a API da Lidmo registrando a ativacao naquele dominio. O fluxo completo:
Plugin verifica licenca -> API Lidmo valida -> Retorna status (ativa/inativa/expirada)
API Endpoints de licenciamento
| Metodo | Endpoint | Descricao |
|---|---|---|
POST |
/api/plugins/license/activate |
Ativa uma licenca em um dominio |
POST |
/api/plugins/license/deactivate |
Desativa uma licenca de um dominio |
GET |
/api/plugins/license/check |
Verifica o status atual de uma licenca |
Exemplo de requisicao -- Ativar licenca
POST /api/plugins/license/activate
Content-Type: application/json
{
"license_key": "LIDMO-XXXX-XXXX-XXXX-XXXX",
"domain": "meusite.com.br",
"plugin_slug": "meu-plugin-pro"
}
Exemplo de resposta
{
"success": true,
"license": {
"key": "LIDMO-XXXX-XXXX-XXXX-XXXX",
"status": "active",
"type": "multi-site",
"activations_used": 2,
"activations_limit": 5,
"expires_at": "2027-04-05T00:00:00Z"
}
}
Update Checker API
O mecanismo de auto-update permite que seus usuarios recebam novas versoes diretamente pelo painel de atualizacoes do WordPress, da mesma forma que plugins do repositorio oficial.
Como funciona o auto-update do WordPress
O WordPress verifica periodicamente se existem atualizacoes disponiveis para os plugins instalados. Ele consulta um endpoint externo (normalmente api.wordpress.org) e compara a versao instalada com a versao mais recente disponivel. A Lidmo substitui esse endpoint pelo seu proprio, permitindo que plugins distribuidos fora do repositorio oficial recebam atualizacoes automaticas.
Endpoint de verificacao
GET /api/plugins/{slug}/update-check?version={current_version}
Parametros
| Parametro | Tipo | Descricao |
|---|---|---|
slug |
string | Slug do plugin registrado na Lidmo |
version |
string | Versao atualmente instalada pelo usuario |
Resposta
{
"new_version": "1.3.0",
"download_url": "https://lidmo.com.br/api/plugin-download/meu-plugin-pro?token=...",
"changelog": "Correcoes de seguranca e melhorias de performance.",
"tested_up_to": "6.7",
"requires_php": "8.1"
}
Se a versao instalada ja for a mais recente, a API retorna um status indicando que nenhuma atualizacao esta disponivel.
Integracao no seu plugin (PHP)
Adicione o seguinte codigo ao arquivo principal do seu plugin para conecta-lo ao sistema de updates da Lidmo:
// No arquivo principal do seu plugin (ex: meu-plugin-pro.php)
define('MEU_PLUGIN_VERSION', '1.2.0');
define('MEU_PLUGIN_SLUG', 'meu-plugin-pro');
add_filter('site_transient_update_plugins', function ($transient) {
if (empty($transient->checked)) {
return $transient;
}
$response = wp_remote_get(
'https://lidmo.com.br/api/plugins/' . MEU_PLUGIN_SLUG . '/update-check?version=' . MEU_PLUGIN_VERSION
);
if (is_wp_error($response)) {
return $transient;
}
$data = json_decode(wp_remote_retrieve_body($response));
if (isset($data->new_version) && version_compare(MEU_PLUGIN_VERSION, $data->new_version, '<')) {
$plugin_file = plugin_basename(__FILE__);
$transient->response[$plugin_file] = (object) [
'slug' => MEU_PLUGIN_SLUG,
'new_version' => $data->new_version,
'url' => 'https://lidmo.com.br/docs/plugin-distribution',
'package' => $data->download_url,
];
}
return $transient;
});
Importante: Certifique-se de substituir os valores de MEU_PLUGIN_VERSION,
MEU_PLUGIN_SLUG e o plugin_basename pelos dados reais do seu plugin.
Plugin Download
Downloads de plugins sao realizados via API com autenticacao. Para plugins premium (que exigem licenca), a chave de licenca deve ser enviada no header da requisicao.
Endpoint de download
GET /api/plugin-download/{slug}
Headers
| Header | Obrigatorio | Descricao |
|---|---|---|
X-License-Key |
Sim (plugins premium) | Chave de licenca valida e ativa |
A resposta e o arquivo ZIP do plugin para download direto. Em caso de licenca invalida ou expirada,
a API retorna status 403 Forbidden com uma mensagem de erro.
Webhooks
Webhooks permitem que voce receba notificacoes em tempo real quando eventos relevantes ocorrem na plataforma. Configure URLs de callback no dashboard para receber payloads JSON automaticamente.
Eventos disponiveis
| Evento | Descricao |
|---|---|
plugin.version.released |
Nova versao do plugin publicada |
license.activated |
Licenca ativada em um dominio |
license.deactivated |
Licenca desativada de um dominio |
license.expired |
Licenca expirou |
plugin.downloaded |
Plugin foi baixado por um usuario |
Formato do payload
{
"event": "plugin.version.released",
"timestamp": "2026-04-05T14:30:00Z",
"data": {
"plugin": {
"slug": "meu-plugin-pro",
"name": "Meu Plugin Pro"
},
"version": "1.3.0",
"changelog": "Correcoes de seguranca e melhorias de performance."
}
}
Configuracao
No dashboard da Lidmo, acesse Configuracoes > Webhooks e adicione as URLs que devem receber as notificacoes. Voce pode selecionar quais eventos cada URL deve receber.
Politica de retentativas
Caso o endpoint retorne um status HTTP diferente de 2xx, a Lidmo reenvia o webhook
seguindo uma politica de backoff exponencial:
- 1a tentativa: imediatamente
- 2a tentativa: apos 1 minuto
- 3a tentativa: apos 5 minutos
Apos 3 tentativas sem sucesso, o webhook e marcado como falho e pode ser reenviado manualmente pelo dashboard.
Dica: Sempre retorne um status 200 OK o mais rapido possivel no
seu endpoint de webhook. Processe o payload de forma assincrona para evitar timeouts.
Analytics e Metricas
O dashboard da Lidmo oferece metricas detalhadas sobre a distribuicao do seu plugin, permitindo acompanhar a adocao e o uso em tempo real.
Metricas disponiveis
- Active Installations: numero de dominios com o plugin ativo e licenca valida
- Downloads por versao: quantidade de downloads discriminados por versao publicada
- License Activation Map: mapa geografico das ativacoes de licenca
- Version Distribution: grafico mostrando a distribuicao percentual de versoes em uso
As metricas sao atualizadas em tempo real e podem ser exportadas em formato CSV diretamente pelo dashboard.
Plugin Requests
Usuarios da plataforma podem solicitar plugins que ainda nao estao disponiveis na biblioteca da Lidmo. Este recurso permite identificar demandas e oportunidades para novos plugins.
Fluxo de solicitacao
- Submitted: o usuario envia a solicitacao com nome e descricao do plugin desejado
- Reviewed: a equipe Lidmo analisa a solicitacao
- Approved / Rejected: a solicitacao e aprovada (e encaminhada para desenvolvimento) ou rejeitada com justificativa
Desenvolvedores cadastrados na plataforma recebem notificacoes sobre novas solicitacoes que possam ser relevantes para seu portfolio de plugins.
FAQ
Qual o tamanho maximo do arquivo ZIP?
O limite atual e de 100 MB por arquivo ZIP. Para plugins maiores, entre em contato com o suporte para avaliar alternativas.
Quais formatos de arquivo sao aceitos?
Apenas arquivos no formato ZIP sao aceitos para upload. O arquivo deve conter a estrutura padrao de um plugin WordPress (diretorio raiz com o arquivo principal do plugin).
Como migrar um plugin do wordpress.org?
Para migrar um plugin ja publicado no repositorio oficial:
- Registre o plugin no dashboard da Lidmo usando o mesmo slug
- Faca o upload da versao mais recente do plugin
- Integre o Lidmo Update Checker no codigo do plugin (veja a secao de integracao)
- Publique uma nova versao com o Update Checker integrado
- Usuarios que atualizarem para essa versao passarao a receber updates pela Lidmo automaticamente
Atencao: Ao migrar do wordpress.org, certifique-se de que a versao publicada na Lidmo seja superior a versao no repositorio oficial. Caso contrario, o WordPress continuara buscando updates no wordpress.org.