Atualizações para um plugin privado?


117

Se eu escrever um plugin privado, existe alguma maneira de usar o mecanismo de atualização automática do WordPress para atualizá-lo?

Quero encapsular a funcionalidade, mas é específica para meus próprios 5 ou mais blogs, portanto, não é um bom candidato para o recurso de plugins públicos. Mas eu amo o mecanismo de atualização fácil.

Existe uma maneira de fazer isso?


Eu acredito que isso foi discutido como uma opção filtrável na lista de discussão wp-hackers no passado. Isso nunca foi resolvido, IIRC. Eu acho que a discussão relevante estava neste tópico: lists.automattic.com/pipermail/wp-hackers/2009-February/… ... mas eu posso estar errado.
ZaMoose 11/08/10

Se você não deseja lançar sua própria solução, pode usar o kernl.us para atualizações de plugins hospedados.
Jack Slingerland

Respostas:


48

Parece que o código aplicável é wp-includes/update.php, wp_update_plugins():

$to_send = (object) compact('plugins', 'active');

$options = array(
    'timeout' => ( ( defined('DOING_CRON') && DOING_CRON ) ? 30 : 3), 
    'body' => array( 'plugins' => serialize( $to_send ) ),
    'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
);  

$raw_response = wp_remote_post('http://api.wordpress.org/plugins/update-check/1.0/', $options);

Ele verifica especificamente api.wordpress.org. Tecnicamente, seria possível passar uma chave dentro $to_sendpara delegar a verificação, mas, pelo que sei, isso não é um recurso suportado.

Se você se conectar, set_site_transient_update_pluginspoderá adicionar seus próprios detalhes de pacote a essa variável. Parece que esses valores serão confiáveis ​​quando você executar o atualizador de plugins. Veja wp-admin/update.phpe wp-admin/includes/class-wp-upgrader.php. Dado o código nessas duas funções, acho que seria possível injetar seu próprio servidor de atualização, você só precisa ver como os detalhes do pacote são formatados e combinar com isso.


42

Este plugin faz isso para você:

Atualizações automáticas para plugins privados e comerciais

Desde tempos imemoriais, apenas plugins hospedados no diretório oficial de plugins do WordPress.org têm suporte para atualizações automáticas. Agora, escrevi uma biblioteca PHP que você pode usar para adicionar recursos de atualização automática a qualquer plug-in. Plugins públicos, privados e comerciais - todos agora podem aproveitar os benefícios de notificações automáticas de atualização e atualizações com apenas um clique.

Repositório do GitHub


2
Você também pode estar interessado em gerenciar os plug-ins do seu lado ... talvez com o pacote wp-update-server, escrito pelo mesmo autor;) github.com/YahnisElsts/wp-update-server Ao usar este servidor, você pode proteger seus plug-ins, como descrito aqui: w-shadow.com/blog/2013/03/19/…
SimonSimCity

como posso desativar o verificador de atualização padrão do wordpress em plugins gratuitos?
csandreas1

Mesmo que o site pareça desatualizado, o projeto é muito ativo e também funciona com repositórios particulares do Bitbucket / Github! Veja o repo do Github para obter mais informações sobre as diferentes integrações disponíveis github.com/YahnisElsts/plugin-update-checker
Mr. Me

10

Se você gosta de graça ... e deseja usar algo como GitHub, GitLab ou BitBucket, este é um plug-in de boa qualidade e suporte para manipulá-lo (suporta privado e empresa):

https://github.com/afragen/github-updater


1
Uau! Parece um projeto bem suportado e maduro!
Armstrongest

1
Depender de outro plugin não parece uma solução muito limpa.
22818 kontur

2
@kontur é bem verdade, mas, como se fosse um código aberto, e sendo constantemente atualizado, poderia ser usado como uma estrutura ou apenas como um exemplo de código para você criar o seu próprio.
22418 sMyles


1

Você pode conferir o plug-in Kit de Desenvolvimento do WordPress . Migrei recentemente meu sistema de atualização proprietário para este plug-in. O plug-in agora serve como processador de back-end para minhas atualizações de plug-ins premium.

Essa configuração é semelhante à solução fornecida pelo agileapricot acima. Ele será instalado como um plug-in padrão em um site WordPress. Você hospeda seus arquivos .zip premium e o plugins.json nos diretórios de produção ou pré-lançamento em seu servidor (especificado nas configurações do plug-in).

O plug-in também permite listar as versões do plug-in e pode até fornecer um download para os arquivos em páginas públicas, protegidas por senha ou protegidas por assinatura. Você pode ver um exemplo da lista de versões na página aqui .

Uso o plug-in há meses para publicar o log de alterações dos meus complementos premium, a lista de versões atuais e as listas de downloads dos meus titulares de assinatura Premier. Agora, com a versão 0.7.01, está funcionando como destino de consulta para atualizações embutidas do WordPress.

Espero que alguns de vocês achem útil.


1

Se você deseja uma solução hospedada que não precisa gerenciar, consulte o Kernl ( https://kernl.us ). É um serviço que fornece a infraestrutura para atualizar plug-ins e facilita a integração em seus próprios plug-ins.


Isso parece viável.
kontur

-1

você pode usar este plug-in comercial: http://autohosted.com/ sem limitação e possui vários outros recursos que podem ser necessários:

  • Sem cobrança mensal
  • Uso ilimitado
  • Fácil integração com temas e plugins
  • Autenticação por domínios, chaves e funções

1
Está fechado para novas inscrições ...
Cliff P
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.