Оновлення приватного плагіна?


117

Якщо я пишу приватний плагін, чи є спосіб використовувати механізм автоматичного оновлення WordPress для оновлення?

Я хочу інкапсулювати функціонал, але він специфічний для моїх власних 5 або більше блогів, тому це не є хорошим кандидатом на публічний ресурс плагінів. Але я люблю механізм легкого оновлення.

Чи є спосіб це зробити?


Я вважаю, що це обговорювалося як фільтрується варіант у списку розсилки wp-хакерів ще в той же час. Це ніколи не було вирішено, IIRC. Я думаю, що відповідна дискусія була в цій темі: list.automattic.com/pipermail/wp-hackers/2009-February/… ... але я можу помилитися.
ZaMoose

Якщо ви не хочете прокручувати власне рішення, ви можете використовувати kernl.us для оновлених оновлень плагінів.
Джек Слінгерланд

Відповіді:


48

Схоже , який можна застосовувати код в 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);

Він спеціально перевіряє api.wordpress.org. Технічно кажучи, можна було б ввести ключ всередині, $to_sendщоб делегувати чек, але, наскільки мені відомо, це не підтримується функція.

Якщо ви підключитесь, set_site_transient_update_pluginsви можете додати свої дані про пакет у цю змінну Схоже, цим значенням буде довіряти під час запуску оновлення плагінів. Дивіться wp-admin/update.phpі wp-admin/includes/class-wp-upgrader.php. З огляду на код у цих двох функціях, я думаю, що можна було б ввести власний сервер оновлень, вам просто потрібно подивитися, як форматуються деталі пакета та відповідати цьому.


42

Цей плагін робить це для вас:

Автоматичні оновлення для приватних та комерційних плагінів

З давніх часів автоматичні оновлення підтримували лише плагіни, розміщені в офіційному каталозі плагінів WordPress.org. Тепер я написав бібліотеку PHP, яку можна використовувати для додавання можливостей автоматичного оновлення до будь-якого плагіна. Громадські, приватні та комерційні плагіни - тепер усі можуть користуватися перевагами автоматичного сповіщення про оновлення та оновлення одним кліком.

Сховище GitHub


2
Можливо, вам також буде цікаво керувати плагінами на вашій стороні ... можливо, за допомогою пакету wp-update-server, написаного тим самим автором;) github.com/YahnisElsts/wp-update-server За допомогою цього сервера ви можете захистити свої додатки, як описано тут: w-shadow.com/blog/2013/03/19/…
SimonSimCity

Як я можу відключити перевірку оновлення Wordpress за замовчуванням у безкоштовних плагінах?
csandreas1

Незважаючи на те, що цей веб-сайт виглядає застарілим, проект дуже активно підтримується, і він також працює з приватними репортажами Bitbucket / Github! Перегляньте їхнє репортаж Github для отримання додаткової інформації про різні інтеграції, доступні github.com/YahnisElsts/plugin-update-checker
Містер Я

10

Якщо вам подобається безкоштовно ... і ви хочете використовувати щось на зразок GitHub, GitLab або BitBucket, це хороша якість та підтримуваний плагін для роботи з ним (підтримує приватні та корпоративні):

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


1
Оце Так! Виглядає як добре підтримуваний та зрілий проект!
Армстронгест

1
Покладатися на інший плагін не видається дуже чистим рішенням.
kontur

2
@kontur дуже правда, але, як ніби це відкритий код і постійно оновлюється, він може бути використаний як рамки, або просто як приклад коду для створення власних.
sMyles

8

Я дивлюся в те саме. Кілька посилань, які я виявив, що можуть бути корисними:

Перший - це деяка інформація та покажчики API оновлення. Другий - фрагмент коду, який показує, як насправді вимагати інформацію від API.


1
@Dougal - приємні посилання!
MikeSchinkel

1

Ви можете перевірити плагін WordPress Development Kit . Нещодавно я перемістив свою власну систему оновлення на цей плагін. Тепер плагін служить допоміжним процесором для оновлень моїх преміальних плагінів.

Це схоже за налаштуванням рішення, яке надає agileapricot вище. Він встановиться як стандартний плагін на сайті WordPress. Ви розміщуєте ваші преміум-файли .zip та plugins.json у виробничих або попередньо випущених каталогах на вашому сервері (зазначено в налаштуваннях плагіна).

Плагін також дозволяє перелічити версії плагінів і навіть може забезпечити завантаження файлів на загальнодоступних, захищених паролем або захищених підпискою сторінках. Приклад списку версій на сторінці ви можете побачити тут .

Я використовую цей плагін місяцями, щоб опублікувати журнал змін для моїх преміальних додатків, поточного списку версій та списків завантажень для власників передплати Premier. Тепер, з версією 0.7.01, він працює як пункт запиту для вбудованих оновлень WordPress.

Сподіваємось, хтось із вас вважає це корисним.


1

Якщо ви хочете прийняти рішення, яким вам не доведеться керувати, перегляньте Kernl ( https://kernl.us ). Це сервіс, який забезпечує інфраструктуру для оновлення плагінів і дозволяє легко інтегруватися у власні плагіни.


Це здається життєздатним.
kontur

-1

Ви можете користуватися цим комерційним плагіном: http://autohosted.com/ без обмежень і матимете кілька інших можливостей, які Вам можуть знадобитися:

  • Без місячної плати
  • Необмежене використання
  • Проста інтеграція з темами та плагінами
  • Аутентифікація за доменами, ключами та ролями

1
Він закритий для нових реєстрацій ...
Кліф П
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.