WP-CLI tidak mengenali pembaruan plugin komersial

11

Saya mengalami masalah yang belum pernah saya temui sebelumnya ketika WP-CLI tidak mengenali pembaruan plugin untuk plugin komersial.

Pembaruan plugin muncul di dasbor WordPress saya, tetapi menjalankannya ../wp-cli.phar plugin update --alltidak memperbaruinya. Jika saya menjalankannya ../wp-cli.phar plugin listtidak menunjukkan mereka memiliki pembaruan.

Saya telah menjalankan pembaruan melalui WP-CLI untuk plugin komersial yang sama di server lain tanpa masalah. Satu-satunya hal yang berbeda pada server ini adalah bahwa saya tidak memiliki sudoakses, jadi, seperti yang Anda lihat, saya menelepon wp-cli.pharlangsung alih-alih melalui wpperintah.

WP-CLI sedang memproses pembaruan plugin dari repositori .org tanpa masalah pada instalasi ini.

NateWr
sumber
1
Halo Nate, saya tidak dapat meniru panggilan ini wp-cli.pharsecara langsung dengan versi pro dari Bidang Kustom Lanjutan. Pembaruan tersedia, dan itu ditampilkan sebagai tersedia di output wp-cli. Plugin apa yang Anda coba ini? Apakah mungkin bahwa mereka melewati rutinitas normal WP untuk ini dan dengan demikian tidak diambil oleh wp-cli?
Tim Malone
Terima kasih atas balasan Tim. Saya telah menemukan selama berbulan-bulan bahwa itu cukup sporadis, tetapi cenderung terjadi dengan plugin yang menggunakan Lisensi Perangkat Lunak EDD, yang saya percaya menggunakan teknik normal WP untuk pembaruan. Itu terjadi di mana-mana saya menggunakan WP-CLI (pengembang lokal, beberapa server berbeda).
NateWr
Hmm. Saya harus memeriksa apakah plugin komersial yang saya gunakan juga EDD. Sudahkah Anda mencatat masalah dengan wp-cli?
Tim Malone
Tidak, saya belum mencatat masalah karena ini bersifat sporadis. Saya tidak dapat mereproduksi dengan andal (saya bertanya-tanya apakah ini masalah transien). Tetapi Daniel telah melihat pertanyaan SE ini dan mengatakan dia belum pernah mendengar masalah dan tidak bisa memikirkan apa pun yang akan menyebabkannya.
NateWr
1
Nate saya berlari ke masalah yang sama hanya bulan lalu, setelah beberapa jam menggaruk-garuk kepala saya, saya menemukan bahwa masalah saya secara langsung terkait dengan masalah resolver DNS pada host. Akhirnya host kehabisan waktu saat menyelesaikan DNS sehingga tidak pernah dapat terhubung ke sumber pembaruan untuk melakukan pemeriksaan. Sifat sporadis masalah Anda akan menyarankan Anda mengalami masalah serupa. Saya akan mengambil beberapa menit untuk memverifikasi resolusi DNS dan koneksi keluar dari tuan rumah.
Steve

Jawaban:

1

Apa yang Anda alami mungkin merupakan masalah tingkat jaringan atau seseorang sementara menghapus sumber unduhan. Misalnya sebelum pembaruan.

Sebagian besar detail bisa Anda dapatkan dari kode sumber https://github.com/wp-cli/wp-cli.

Fungsi pembaruan plugin di sana terlihat seperti ini.

function update( $args, $assoc_args ) {
        if ( isset( $assoc_args['version'] ) ) {
            foreach ( $this->fetcher->get_many( $args ) as $plugin ) {
                $assoc_args['force'] = 1;
                $this->install( array( $plugin->name ), $assoc_args );
            }
        } else {
            parent::update_many( $args, $assoc_args );
        }
    }

Dan ketika Anda menentukan wp plugin update --allitu benar-benar melewati parent::update_manyfungsi, di mana orang tua sebenarnya CommandWithUpgradekelas.

Bottomline, wp-climenggunakan sumber daya yang disediakan oleh plugin seperti ini:

# Install from a remote zip file
wp plugin install http://s3.amazonaws.com/bucketname/my-plugin.zip?AWSAccessKeyId=123&Expires=456&Signature=abcdef

Tetapi di sana Anda dapat melihat informasi yang seharusnya tidak Anda lihat.

Sidenote

Harap dicatat bahwa beberapa plugin premium tidak mendukung peningkatan versi melalui WP-CLI. Misalnya saya tahu BackupBuddy dan Gravity Forms berfungsi dengan baik, tetapi plugin dari Yoast tidak. Ini mungkin berubah.

prosti
sumber
1

Pengguna yang mengeksekusi wp-cli perlu menulis izin wp-contentdan subdirektori - jika hanya beberapa plugin gagal, mungkin direktori plugin ini hanya-baca untuk pengguna tersebut.

Ada bug di cli wp yang tidak akan melaporkan izin file yang hilang, dan sebagai gantinya melaporkan bahwa plugin sudah diperbarui.

Gejala yang dijelaskan berlaku untuk situasi itu, maka ini akan menjadi solusi untuk beberapa orang.

Andy
sumber