Estoy desarrollando un complemento de WordPress en este momento que no quiero en el repositorio de complementos de Wordpress. Sin embargo, todavía quiero poder enviar actualizaciones a mis clientes desde mi propio repositorio API.
He estado leyendo bastante sobre esto, y una cosa que parece ser algo es el pre_set_site_transient_update_plugins
filtro, sin embargo, no puedo encontrar mucha información sobre esto. He intentado este tutorial ( http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/ ) que no pude trabajar. De los comentarios puedo decir que otros pueden hacer que esto funcione con lo que debe ser casi la versión actual de WP (última respuesta, 22 de abril).
Intenté instalar el complemento desde el sitio y colocar la carpeta API en un segundo dominio, pero la notificación de actualización que generalmente recibo cuando hay una actualización disponible, no apareció en ningún lugar.
No estoy seguro de si es posible que los complementos personalizados ejecuten la actualización automática desde otros repositorios, así que me gustaría saber si alguien aquí tiene alguna experiencia con estas cosas. La solución en el tutorial parecía ser una solución fácil: me pregunto si de alguna manera es posible hacerlo de una manera más avanzada.
¡Cualquier ayuda para que esta actualización automática de mi propio repositorio funcione será muy apreciada!
(PD: estoy ejecutando WP versión 3.1.3)
Respuestas:
Para el beneficio de otros que encuentran esta página, sugiero a aquellos que deseen proporcionar sus propias actualizaciones fuera del repositorio oficial de WP que echen un vistazo a este proyecto en GitHub, que demuestra la funcionalidad:
https://github.com/jeremyclark13/automatic-theme-plugin-update
fuente
Si, esto es posible. Hay un capítulo completo en Desarrollo profesional de plugins de WordPress dedicado a esto. Si aún no lo has hecho, recoge una copia. Definitivamente ayudará.
fuente
add_filter("pre_set_site_transient_update_plugins","dne_altapi_check");
Después de eso tengo la función dne_altapi_check que contieneprint_r("hi");
, sin embargo, cuando presiono el botón "Verificar nuevamente" debajo de las actualizaciones, no imprime nada en absoluto. haciendo algo mal al conectar con el verificador de actualizaciones?Existe este administrador comercial de API de actualización de complementos y temas para WooCommerce que funciona específicamente si el complemento o el tema no está alojado en wordpress.org. Está diseñado para proporcionar actualizaciones para plugins y temas autohospedados. El complemento es para aquellos que no quieren escribirlo usted mismo y necesitan muchas características, además de ejemplos de trabajo para complementos y temas que se venden.
http://www.toddlahman.com/shop/wordpress-automatic-update-api-manager/
fuente
También hay un servicio ordenado en http://wp-updates.com/ : obtienes un tema o complemento de forma gratuita. FYI: este no es mi sitio, pero lo probé hace un tiempo y me pareció bastante bueno.
fuente
Para una instalación de un solo sitio (no lo he probado en un sitio múltiple), solo hay dos ganchos que necesita actualizar desde un servicio externo como github o gitlab. En el siguiente código, uso gitlab ya que eso es lo que uso para alojar mi código en este momento. Probablemente debería abstraer las partes de gitlab ...
El primer gancho que necesitarás usar es
pre_set_site_transient_update_themes
. Este es el filtro que WordPress usa para configurar el sitio_transitorio para mostrar si hay actualizaciones disponibles. Use este enlace para conectarse a su versión remota y ver si hay actualizaciones disponibles. Si las hay, modifique el transitorio para que WordPress sepa que hay actualizaciones y pueda mostrar el aviso al usuario.El otro gancho que necesitarás usar es
upgrader_source_selection
. Este filtro es necesario, para gitlab de todos modos, porque el nombre de la carpeta descargada no es el mismo que el tema, por lo que usamos este enlace para cambiarle el nombre al nombre correcto. Si su repositorio remoto proporciona un zip con el nombre correcto, entonces ni siquiera necesita este gancho.El tercer gancho opcional que puedes usar es
auto_update_theme
si deseas actualizar automáticamente tu tema. En el siguiente ejemplo, uso este enlace para actualizar automáticamente solo este tema específico.Este código solo se ha probado con WordPress 4.9.x. Requiere PHP> 7.0.
funciones.php
Updater.php
fuente