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