it-swarm-id.com

Pembaruan untuk plugin pribadi?

Jika saya menulis plugin pribadi, apakah ada cara untuk menggunakan mekanisme pembaruan otomatis WordPress untuk memperbaruinya?

Saya ingin merangkum fungsionalitas, tetapi khusus untuk 5 atau lebih blog saya sendiri, jadi itu bukan kandidat yang baik untuk sumber daya plugin publik. Tapi saya suka mekanisme yang mudah diperbarui.

Apakah ada cara untuk melakukan ini?

112
artlung

Sepertinya kode yang berlaku ada di 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);

Secara khusus memeriksa api.wordpress.org. Secara teknis, dimungkinkan untuk memasukkan kunci di dalam $to_send untuk mendelegasikan cek, tetapi setahu saya itu bukan fitur yang didukung.

Jika Anda menghubungkan ke set_site_transient_update_plugins Anda bisa menambahkan detail paket Anda sendiri ke dalam variabel ini. Sepertinya nilai-nilai itu akan dipercaya ketika Anda menjalankan plugin updater. Lihat wp-admin/update.php dan wp-admin/includes/class-wp-upgrader.php. Mengingat kode dalam dua fungsi ini, saya pikir mungkin untuk menyuntikkan server pembaruan Anda sendiri, Anda hanya perlu melihat bagaimana detail paket diformat dan cocok dengan itu.

45
Annika Backstrom

Plugin ini melakukannya untuk Anda:

Pembaruan Otomatis Untuk Plugin Pribadi Dan Komersial

Sejak dahulu kala, hanya plugin yang diinangi di direktori plugin WordPress.org resmi yang telah mendukung pembaruan otomatis. Sekarang, saya telah menulis perpustakaan PHP yang dapat Anda gunakan untuk menambahkan kemampuan pembaruan otomatis ke plugin apa pun. Plugin publik, pribadi, dan komersial - semuanya sekarang dapat menikmati manfaat pemberitahuan pembaruan otomatis dan peningkatan satu klik.

repositori GitHub

40
agileapricot

Jika Anda suka gratis ... dan ingin menggunakan sesuatu seperti GitHub, GitLab, atau BitBucket, ini adalah plugin berkualitas dan didukung untuk menanganinya (mendukung swasta dan perusahaan):

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

9
sMyles

Saya melihat hal yang sama. Beberapa tautan yang saya temukan mungkin bermanfaat:

Yang pertama adalah beberapa info dan petunjuk ke API peningkatan. Yang kedua adalah cuplikan kode yang menunjukkan bagaimana sebenarnya meminta info dari API.

8
Dougal Campbell

Anda mungkin ingin memeriksa plugin WordPress Kit Pengembangan . Baru-baru ini saya memigrasi sistem pembaruan milik saya ke plugin ini. Plugin sekarang berfungsi sebagai prosesor back-end untuk pembaruan plugin premium saya.

Ini serupa dalam pengaturan dengan solusi yang disediakan oleh agileapricot di atas. Ini akan menginstal sebagai plugin standar di situs WordPress. Anda Host file premium .Zip Anda dan plugins.json dalam direktori produksi atau pra-rilis di server Anda (ditentukan dalam pengaturan untuk plugin).

Plugin ini juga memungkinkan Anda untuk membuat daftar versi plugin dan bahkan dapat menyediakan unduhan untuk file pada halaman publik, yang dilindungi kata sandi, atau langganan yang dilindungi. Anda dapat melihat contoh daftar versi pada halaman di sini .

Saya telah menggunakan plugin selama berbulan-bulan untuk menerbitkan log perubahan untuk add-ons premium saya, daftar versi saat ini, dan daftar unduhan untuk pemegang Langganan Premier saya. Sekarang, dengan versi 0.7.01, ia berfungsi sebagai tujuan permintaan untuk pembaruan WordPress inline.

Semoga sebagian dari Anda merasa bermanfaat.

1
Lance Cleveland

Jika Anda menginginkan solusi yang dihosting yang tidak harus Anda kelola, lihat Kernl ( https://kernl.us ). Ini adalah layanan yang menyediakan infrastruktur untuk memperbarui plugin dan membuatnya mudah untuk diintegrasikan ke dalam plugin Anda sendiri.

1