¿Actualizaciones para un complemento privado?

117

Si escribo un complemento privado, ¿hay alguna forma de usar el mecanismo de actualización automática de WordPress para actualizarlo?

Quiero encapsular la funcionalidad, pero es específica de mis 5 o más blogs, por lo que no es un buen candidato para el recurso de complementos públicos. Pero me encanta el mecanismo de actualización fácil.

¿Hay alguna forma de hacer esto?

artlung
fuente
Creo que esto se discutió como una opción filtrable en la lista de correo de wp-hackers en el pasado. Nunca se resolvió, IIRC. Creo que la discusión relevante estaba en este hilo: lists.automattic.com/pipermail/wp-hackers/2009-February/… ... pero podría estar equivocado.
ZaMoose
Si no desea lanzar su propia solución, puede usar kernl.us para actualizaciones de complementos alojados.
Jack Slingerland

Respuestas:

48

Parece que el código de aplicación se encuentra en 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);

Comprueba específicamente api.wordpress.org. Técnicamente hablando, sería posible pasar una clave adentro $to_sendpara delegar el cheque, pero que yo sepa, esa no es una característica compatible.

Si se conecta set_site_transient_update_plugins, podría agregar los detalles de su propio paquete en esta variable. Parece que esos valores serán confiables cuando ejecute el actualizador del complemento. Ver wp-admin/update.phpy wp-admin/includes/class-wp-upgrader.php. Dado el código en estas dos funciones, creo que sería posible inyectar su propio servidor de actualización, solo necesita ver cómo se formatean los detalles del paquete y hacer coincidir eso.

Annika Backstrom
fuente
42

Este complemento lo hace por ti:

Actualizaciones automáticas para complementos privados y comerciales

Desde tiempos inmemoriales, solo los complementos alojados en el directorio oficial de complementos de WordPress.org han admitido actualizaciones automáticas. Ahora, he escrito una biblioteca PHP que puede usar para agregar capacidades de actualización automática a cualquier complemento. Complementos públicos, privados y comerciales por igual: ahora todos pueden disfrutar de los beneficios de las notificaciones de actualizaciones automáticas y las actualizaciones con un solo clic.

Repositorio de GitHub

albaricoque
fuente
2
También puede estar interesado en administrar los complementos de su lado ... tal vez con el paquete wp-update-server, escrito por el mismo autor;) github.com/YahnisElsts/wp-update-server Al usar este servidor, puede asegurar sus complementos, como descrito aquí: w-shadow.com/blog/2013/03/19/…
SimonSimCity
¿Cómo puedo desactivar el verificador de actualizaciones predeterminado de WordPress en complementos gratuitos?
csandreas1
A pesar de que ese sitio web parece obsoleto, el proyecto es muy activo y también funciona con repositorios privados de Bitbucket / Github. Consulte su repositorio de Github para obtener más información sobre las diferentes integraciones disponibles github.com/YahnisElsts/plugin-update-checker
Mr. Me
10

Si te gusta gratis ... y quieres usar algo como GitHub, GitLab o BitBucket, este es un complemento compatible y de buena calidad para manejarlo (admite privado y empresarial):

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

sMyles
fuente
1
¡Guauu! ¡Parece un proyecto bien respaldado y maduro!
Armstrongest
1
Confiar en otro complemento no parece una solución muy limpia.
kontur
2
@kontur es muy cierto, pero como si fuera de código abierto y se actualiza constantemente, podría usarse como un marco, o simplemente como un ejemplo de código para construir el suyo propio.
sMyles
8

Estoy investigando lo mismo. Un par de enlaces que he encontrado que pueden ser útiles:

El primero es información y punteros a la API de actualizaciones. El segundo es un fragmento de código que muestra cómo solicitar información de la API.

Dougal Campbell
fuente
1
@Dougal - ¡ Buenos enlaces!
MikeSchinkel
1

Es posible que desee consultar el complemento del Kit de desarrollo de WordPress . Recientemente migré mi sistema de actualización patentado a este complemento. El complemento ahora sirve como el procesador de fondo para mis actualizaciones de complementos premium.

Esto es similar en configuración a la solución proporcionada por agileapricot anterior. Se instalará como un complemento estándar en un sitio de WordPress. Aloja sus archivos .zip premium y plugins.json en los directorios de producción o de prelanzamiento en su servidor (especificado en la configuración del complemento).

El complemento también le permite enumerar las versiones del complemento e incluso puede proporcionar una descarga para los archivos en páginas públicas, protegidas por contraseña o protegidas por suscripción. Puede ver un ejemplo de la lista de versiones en la página aquí .

He estado usando el complemento durante meses para publicar el registro de cambios para mis complementos premium, la lista de versiones actuales y las listas de descargas para mis titulares de Suscripciones Premier. Ahora, con la versión 0.7.01, funciona como el destino de la consulta para las actualizaciones de WordPress en línea.

Espero que algunos de ustedes lo encuentren útil.

Lance Cleveland
fuente
1

Si desea una solución alojada que no tiene que administrar, consulte Kernl ( https://kernl.us ). Es un servicio que proporciona la infraestructura para actualizar complementos y facilita la integración en sus propios complementos.

Jack Slingerland
fuente
Esto parece viable.
kontur
-1

puede usar este complemento comercial: http://autohosted.com/ sin limitación y tiene varias otras características que puede necesitar:

  • Sin cargo mensual
  • Uso ilimitado
  • Fácil integración con temas y complementos
  • Autenticación por dominios, claves y roles
David
fuente
1
Está cerrado a nuevos registros ...
Cliff P