0

クライアントは、プラグインを作成して、メンバーシップサブスクリプションシステムを通じて販売することを望んでいます。彼らは、このプラグインのアップデートをどのように展開できるかを尋ねました。通常、wp-adminにログインした後、プラグインにダッシュボードの表示をインターセプトさせました。次に、プラグインの新しいバージョンがサーバー上にあるかどうかを確認します。その場合は、クリックするだけで再度ダウンロードできるようにユーザーに通知します。問題は、ファイルを解凍してコピーし、プラグイン設定を再保存する必要があることです。

更新が必要なときにプラグインのワンクリック更新をコーディングする方法はありますか?これにより、プラグインをダウンロードし、解凍し、古いファイルをコピーして、プラグイン用に保存された管理パネルを再実行する他の手順が不要になります。

4

1 に答える 1

3

おそらく実行したいいくつかのステップがありますが、そのほとんどは、wordpressが独自の内部更新を処理する方法から簡単に借りることができます。

管理ページが読み込まれるたびに実行するのではなく、独自のバージョンの_maybe_update_plugins()を作成し、時間間隔(おそらく1日1回程度)でチェックするようにします。

'wp-admin / contains / class-wp- upgrader.php 'のWordPressWP_Upgraderクラス(プラグインに含める必要があると思います)は、やりたいことを実行します。wp-admin / update.phpを見て、注意深く行わないと巨大なセキュリティホールが発生する可能性があるため、ここでセキュリティ対策を非常に厳密にエミュレートするようにしてください。

通知を整理し、プロセスが安全であることを確認したら、プラグインの新しいバージョンのURLを以下のコードに「$download_link」として渡すのと同じくらい簡単です。

$upgrader = new WP_Upgrader;
$upgrader->run(array(
  'package' => '', //this should be the name of your plugin
  'destination' => '', //this should be defined to the directory you want to install the plugin to
  'clear_destination' => false, //set this if you want to remove the old version first
  'clear_working' => true, //change this if you want to leave a copy of the zip file
  'is_multi' => false, //only change this if you're calling the function multiple times
));

それでもうまくいかない場合(テストする時間や動機がない場合)、WP_Upgraderクラスをもう少し掘り下げて、ファイルをダウンロードおよび抽出するための関数を借用します。

于 2011-04-09T04:06:20.720 に答える