ดูเหมือนว่ารหัสที่ใช้บังคับอยู่ใน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
เมื่อกำหนดรหัสในฟังก์ชั่นทั้งสองนี้ฉันคิดว่ามันเป็นไปได้ที่จะฉีดเซิร์ฟเวอร์อัพเดทของคุณเองคุณเพียงแค่ต้องดูว่ารายละเอียดแพ็คเกจถูกจัดรูปแบบและตรงกับสิ่งนั้นอย่างไร