Обновления для частного плагина?


Если я напишу частный плагин, есть ли способ использовать механизм автоматического обновления WordPress для его обновления?

Я хочу инкапсулировать функциональность, но она специфична для моих собственных 5 или около того блогов, поэтому она не является хорошим кандидатом для общедоступного ресурса плагинов. Но мне нравится механизм простого обновления.

Есть ли способ сделать это?

Author: artlung, 2010-08-11

7 answers

Похоже, что применимый код находится в 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. Учитывая код в этих двух функциях, я думаю, можно было бы внедрить свой собственный сервер обновлений, вам просто нужно посмотреть, как отформатированы данные пакета, и сопоставить их.

 49
Author: Annika Backstrom, 2010-08-11 20:27:05

Этот плагин делает это за вас:

Автоматическое Обновление Для Частных И Коммерческих Плагинов

С незапамятных времен только плагины, размещенные в официальном WordPress.org каталог плагинов поддерживает автоматическое обновление. Теперь я написал библиотеку PHP, которую вы можете использовать для добавления возможностей автоматического обновления в любой плагин. Общедоступные, частные и коммерческие плагины – все теперь могут пользоваться преимуществами автоматических уведомлений об обновлениях и одним щелчком мыши обновления.

Репозиторий GitHub

 45
Author: agileapricot, 2013-09-22 04:01:28

Если вам нравится бесплатно... и хотите использовать что-то вроде GitHub, GitLab или BitBucket, это качественный и поддерживаемый плагин для его обработки (поддерживает частные и корпоративные приложения):

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

 10
Author: sMyles, 2016-09-20 00:34:28

Я занимаюсь тем же самым. Пара ссылок, которые я нашел, которые могут быть полезны:

Во-первых, это некоторая информация и указания на API обновлений. Второй - фрагмент кода, показывающий, как на самом деле запрашивать информацию из API.

 8
Author: Dougal Campbell, 2010-10-21 08:53:21

Возможно, вы захотите ознакомиться с плагином WordPress Development Kit. Недавно я перенес свою собственную систему обновлений на этот плагин. Плагин теперь служит внутренним процессором для моих обновлений плагинов премиум-класса.

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

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

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

Надеюсь, некоторые из вас найдут это полезным.

 1
Author: Lance Cleveland, 2015-05-05 20:26:02

Если вам нужно размещенное решение, которым вам не нужно управлять, проверьте Kernl (https://kernl.us ). Это сервис, который предоставляет инфраструктуру для обновления плагинов и упрощает интеграцию в ваши собственные плагины.

 1
Author: Jack Slingerland, 2015-05-08 14:02:38

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

  • Без ежемесячной платы
  • Неограниченное использование
  • Простая интеграция с темами и плагинами
  • Аутентификация по доменам, ключам и ролям
 -1
Author: David, 2014-01-09 02:36:56