web-dev-qa-db-fra.com

Comment wordpress détecte une mise à jour de plugin

Je suis un développeur de plug-in wp et j'aimerais savoir comment WP détecte la mise à jour de certains plug-ins? Je suppose que ça va pour ces plugins qui sont déjà dans le référentiel wordpress.org. Mais comment puis-je implémenter le même mécanisme pour ces plugins qui sont stockés dans mon propre référentiel? (Déjà fait des recherches sur Google, malheureusement, ne trouve aucune information). Merci!

3
Epsiloncool

Toutes les 12 heures ou plus, WordPress s'éteint automatiquement et vérifie si un plugin doit être mis à jour via le référentiel WordPress. Il existe 3 tâches cron que WordPress exécute pour vérifier les choses:

  • wp_version_check - Vérifications des mises à jour principales
  • wp_update_plugins - Rechercher les mises à jour des plugins
  • wp_update_themes - Vérifications des mises à jour de thèmes

Un joli petit plugin pour voir cela est WP Crontrol . Maintenant, WP Crons ne sont pas comme Server Cronjobs, ils s'exécutent dans des situations spécifiques lorsque les conditions sont remplies (current_time> = 12 AND ...). Je ne suis pas tout à fait sûr des conditions, mais il semble que ce soient des demandes d'admin panel.

Il y a une option dans la base de données qui contient beaucoup de ces informations, chaque cron a son propre transitoire si je ne me trompe pas, vous pouvez chercher dans la table wp_options pour _site_transient avec une instruction LIKE%..% pour voir ce que vous obtenez.

L'option _site_transient_update_plugins contient des informations telles que le dernier horodatage vérifié, les plugins vérifiés, les plugins devant être mis à jour (avec un ensemble d'éléments tels que l'URL du paquet, la nouvelle version, etc.), qui sont ensuite utilisés pour obtenir et afficher des informations à propos de la mise à jour et de l'utilisateur. il est très facile pour un utilisateur de simplement cliquer sur mettre à jour (puisqu'il n'a pas besoin de rechercher la page, il possède déjà l'URL de mise à jour dans la base de données).

J'ai joué avec cela pendant un petit moment et je ne l'ai toujours pas bien compris, mais espérons que ce qui précède vous donne une idée de la façon dont cela fonctionne.

En ce qui concerne les plugins de mise à jour WordPres pour votre propre référentiel privé, il en existe plusieurs variantes. WooCommerce a un plugin d'aide qui gère la plupart de leurs mises à jour, il y a du code pour les mises à jour Push de Github, voici une réponse qui m'a poussé dans la bonne direction. Dans l'ensemble, ce n'est pas la chose la plus facile/la plus simple à faire.

4
Howdy_McGee