Estou desenvolvendo um plugin wordpress no momento que não desejo no repositório de plugins do Wordpress. No entanto, ainda quero poder enviar atualizações para meus clientes a partir de meu próprio repositório de API.
Eu tenho lido bastante sobre isso, e uma coisa que parece ser algo é o pre_set_site_transient_update_plugins
filtro, no entanto, não consigo encontrar muita informação sobre isso. Eu tentei este tutorial ( http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/ ) que não consegui trabalhar. Posso dizer pelos comentários que outras pessoas podem realmente fazer isso funcionar com o que deve ser quase a versão atual do WP (última resposta em 22 de abril).
Tentei instalar o plug-in a partir do site e colocar a pasta API em um segundo domínio, mas a notificação de atualização que geralmente recebo quando uma atualização está disponível não foi exibida em nenhum lugar.
Não tenho certeza se é realmente possível que plug-ins personalizados executem a atualização automática de outros repositórios, então eu gostaria de saber se alguém aqui tem alguma experiência com essas coisas? A solução no tutorial parecia ser uma solução fácil - será que é possível fazê-lo de uma maneira mais avançada?
Qualquer ajuda para obter essa atualização automática do meu próprio repositório funcionando seria muito apreciada!
(PS: Estou executando o WP versão 3.1.3)
Respostas:
Para o benefício de outras pessoas que encontram esta página, sugiro que aqueles que desejam fornecer suas próprias atualizações fora do repositório oficial do WP dê uma olhada neste projeto no GitHub, que demonstra a funcionalidade:
https://github.com/jeremyclark13/automatic-theme-plugin-update
fonte
Sim, isso é possível. Há um capítulo inteiro no desenvolvimento profissional de plugins do WordPress dedicado a isso. Se ainda não o fez, pegue uma cópia. Definitivamente ajudará.
fonte
add_filter("pre_set_site_transient_update_plugins","dne_altapi_check");
Depois disso, tenho a função dne_altapi_check que contémprint_r("hi");
- no entanto, quando pressiono o botão "Verificar novamente" em atualizações, ele não imprime nada. fazendo algo errado ao conectar-se ao verificador de atualizações?Existe um gerenciador comercial de API de atualização de plug-ins e temas para o WooCommerce que funciona especificamente se o plug-in ou o tema não estiver hospedado no wordpress.org. Ele foi desenvolvido para fornecer atualizações para plugins e temas auto-hospedados. O plug-in é para aqueles que não querem escrever por conta própria e precisam de muitos recursos, além de exemplos de trabalho para plugins e temas que estão sendo vendidos.
http://www.toddlahman.com/shop/wordpress-automatic-update-api-manager/
fonte
Também há um serviço interessante em http://wp-updates.com/ - você obtém um tema ou plugin gratuitamente. FYI - este não é o meu site, mas eu tentei há um tempo e parecia muito bom.
fonte
Para uma instalação de site único (não testei em um site múltiplo), existem apenas dois ganchos que você precisa atualizar de um serviço externo, como o github ou o gitlab. No código abaixo, eu uso o gitlab, pois é o que eu uso para hospedar meu código agora. Eu provavelmente deveria abstrair as partes do gitlab ...
O primeiro gancho que você precisará usar é
pre_set_site_transient_update_themes
. Este é o filtro que o WordPress usa para definir o site_transient para mostrar se há atualizações disponíveis. Use esse gancho para conectar-se à sua versão remota e verificar se há atualizações disponíveis. Se houver, modifique o transitório para que o WordPress saiba que há atualizações e possa mostrar o aviso ao usuário.O outro gancho que você precisará usar é
upgrader_source_selection
. Esse filtro é necessário, para o gitlab de qualquer maneira, porque o nome da pasta baixada não é o mesmo que o tema, portanto, usamos esse gancho para renomeá-lo para o nome correto. Se o seu repositório remoto fornece um zip com o nome correto, você nem precisa desse gancho.O terceiro gancho opcional que você pode usar é
auto_update_theme
se você deseja atualizar automaticamente seu tema. No exemplo abaixo, eu uso esse gancho para atualizar automaticamente apenas esse tema específico.Este código foi testado apenas com o WordPress 4.9.x. Requer PHP> 7.0.
functions.php
updater.php
fonte