Parece que o código aplicável é 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);
Ele verifica especificamente api.wordpress.org. Tecnicamente, seria possível passar uma chave dentro $to_send
para delegar a verificação, mas, pelo que sei, isso não é um recurso suportado.
Se você se conectar, set_site_transient_update_plugins
poderá adicionar seus próprios detalhes de pacote a essa variável. Parece que esses valores serão confiáveis quando você executar o atualizador de plugins. Veja wp-admin/update.php
e wp-admin/includes/class-wp-upgrader.php
. Dado o código nessas duas funções, acho que seria possível injetar seu próprio servidor de atualização, você só precisa ver como os detalhes do pacote são formatados e combinar com isso.