Mises à jour pour un plugin privé?


117

Si j'écris un plugin privé, existe-t-il un moyen d'utiliser le mécanisme de mise à jour automatique de WordPress pour le mettre à jour?

Je veux encapsuler la fonctionnalité, mais elle est spécifique à mes 5 blogs environ, donc ce n'est pas un bon candidat pour la ressource de plugins publics. Mais j'aime le mécanisme de mise à jour facile.

Y a-t-il un moyen de faire cela?


Je crois que cela a été discuté en tant qu’option filtrable sur la liste de diffusion wp-hackers de la journée. Cela n'a jamais été résolu, IIRC. Je pense que la discussion pertinente était dans ce fil: lists.automattic.com/pipermail/wp-hackers/2009-February/… ... mais je peux me tromper.
ZaMoose

Si vous ne voulez pas lancer votre propre solution, vous pouvez utiliser kernl.us pour les mises à jour hébergées du plug-in.
Jack Slingerland

Réponses:


48

On dirait que le code applicable est 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);

Il vérifie spécifiquement api.wordpress.org. Techniquement, il serait possible de passer une clé à l'intérieur $to_sendpour déléguer le contrôle, mais à ma connaissance, cette fonctionnalité n'est pas prise en charge.

Si vous vous connectez, set_site_transient_update_pluginsvous pouvez ajouter les détails de votre propre paquet dans cette variable. Il semble que ces valeurs seront approuvées lorsque vous exécuterez le programme de mise à jour du plug-in. Voir wp-admin/update.phpet wp-admin/includes/class-wp-upgrader.php. Étant donné le code de ces deux fonctions, je pense qu’il serait possible d’injecter votre propre serveur de mise à jour. Il vous suffit de regarder comment les détails du package sont formatés et adaptés.


42

Ce plugin le fait pour vous:

Mises à jour automatiques pour les plugins privés et commerciaux

Depuis des temps immémoriaux, seuls les plugins hébergés dans le répertoire officiel des plugins WordPress.org ont pris en charge les mises à jour automatiques. Maintenant, j'ai écrit une bibliothèque PHP que vous pouvez utiliser pour ajouter des fonctionnalités de mise à jour automatique à n'importe quel plugin. Les plugins publics, privés et commerciaux - tous peuvent désormais profiter des avantages des notifications de mises à jour automatiques et des mises à niveau en un clic.

Référentiel GitHub


2
Vous pouvez également être intéressé par la gestion des plugins de votre côté ... peut-être avec le paquet wp-update-server, écrit par le même auteur;) github.com/YahnisElsts/wp-update-server En utilisant ce serveur, vous pouvez sécuriser vos plugins, décrit ici: w-shadow.com/blog/2013/03/19/…
SimonSimCity

comment puis-je désactiver le vérificateur de mise à jour par défaut de wordpress sur des plugins gratuits?
csandreas1

Même si ce site a l'air obsolète, le projet est très activement soutenu et fonctionne aussi avec les dépôts privés Bitbucket / Github! Voir leur repo Github pour plus d'informations sur les différentes intégrations disponibles. Github.com/YahnisElsts/plugin-update-checker
Mr. Me

10

Si vous aimez la gratuité ... et souhaitez utiliser quelque chose comme GitHub, GitLab ou BitBucket, il s'agit d'un plug-in de bonne qualité et pris en charge pour sa gestion (supporte les entreprises et les particuliers):

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


1
Hou la la! On dirait un projet bien soutenu et mature!
Armstrongest

1
Compter sur un autre plugin ne semble pas une solution très propre.
dimanche

2
@kontur est très vrai, mais comme s'il s'agissait d'une source ouverte et qu'il était constamment mis à jour, il pourrait être utilisé comme un framework ou tout simplement comme un exemple de code pour construire le vôtre.
sMyles


1

Vous voudrez peut-être consulter le plugin WordPress Development Kit . J'ai récemment migré mon système de mise à jour propriétaire vers ce plugin. Le plugin sert maintenant de processeur principal pour les mises à jour premium de mon plugin.

Cette configuration est similaire à la solution fournie par agileapricot ci-dessus. Il s’installera comme un plugin standard sur un site WordPress. Vous hébergez vos fichiers .zip premium et le fichier plugins.json dans des répertoires de production ou des versions préliminaires de votre serveur (spécifiés dans les paramètres du plug-in).

Le plug-in vous permet également de répertorier les versions de plug-in et peut même fournir un téléchargement pour les fichiers sur des pages publiques, protégées par mot de passe ou protégées par abonnement. Vous pouvez voir un exemple de la liste des versions sur page ici .

Cela fait des mois que j'utilise le plug-in pour publier le journal des modifications de mes add-onions premium, de la liste des versions actuelles et des listes de téléchargement pour mes détenteurs d'abonnement Premier. Désormais, avec la version 0.7.01, il fonctionne comme destination de la requête pour les mises à jour en ligne de WordPress.

J'espère que certains d'entre vous le trouvent utile.


1

Si vous souhaitez une solution hébergée que vous n'avez pas à gérer, consultez Kernl ( https://kernl.us ). C'est un service qui fournit l'infrastructure de mise à jour des plugins et facilite son intégration dans vos propres plugins.


Cela semble viable.
dimanche

-1

vous pouvez utiliser ce plugin commercial: http://autohosted.com/ no limitation et avoir plusieurs autres fonctionnalités dont vous pourriez avoir besoin:

  • Pas de frais mensuels
  • Utilisation illimitée
  • Intégration facile avec des thèmes et des plugins
  • Authentification par domaines, clés et rôles

1
Il est fermé aux nouvelles inscriptions ...
Cliff P
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.