WooCommerce をインストールして有効化している場合
使おうと思ったら、すぐに使えます。そんだけ。爆
ただ、一応 WooCommerce 用の拡張プラグインで利用する場合は、プラグインやテーマの中でライブラリーとして登録しておいたほうが良いです。何故ならバージョンアップすることもあり、その不具合で動かなくなる場合もありますので。
下に記載の「ライブラリとしての使用」に従って、プラグイン内にライブラリーとしてコードを入れて利用することをお勧めします。
使い方
Action Scheduler を使用するには、次のものが必要です。
- ライブラリのインストール
- アクションのスケジューリング
インストール
Action Scheduler をインストールするには、次の2つの方法があります。
- 通常のWordPressプラグイン。
- プラグインのコードベース内のライブラリ。
プラグインとしての使用法
Action Scheduler には、標準の WordPress プラグインとして使用するために必要なファイルヘッダーが含まれています。
プラグインとしてインストールするには:
- 最新の安定版リリースの .zip アーカイブをダウンロードします
- WordPress サイトの[プラグイン]> [新規追加]> [管理画面のアップロード]に移動します
- ダウンロードしたアーカイブファイルを選択します
- [今すぐインストール]をクリックします
- [アクティブ化]をクリックします
- または、Git リポジトリをサイトの
wp-content/plugins
フォルダーに複製します。
Action Scheduler をプラグインとして使用すると、コードベースのサブツリーを更新するよりも、新しいバージョンに対して開発する場合に便利です。 プラグインとしてインストールされた場合、Action Scheduler はアクションをスケジュールするためのユーザーインターフェイスを提供しません。 Action Scheduler と対話する唯一の方法は、コードを使用することです。
ライブラリとしての使用
Action Schedulerをライブラリとして使用するには:
- Action Scheduler コードベースを含める
- action-scheduler.php ファイルを含めてライブラリをロードします
プラグイン、テーマ、またはサイトの Git リポジトリでサブツリーを使用して Action Scheduler を含めることをお勧めします。 Composer も使用できます。
Action Scheduler を git サブツリーとして含めるには:
手順1.リポジトリをリモートとして追加する
git remote add -f subtree-action-scheduler https://github.com/woocommerce/action-scheduler.git
サブツリーをリモートとして追加すると、完全な GitHub URL の代わりに、 subtree-action-scheduler
という名前からサブツリーを簡単に参照できます。
手順2.リポジトリをサブツリーとして追加する
git subtree add --prefix libraries/action-scheduler subtree-action-scheduler master --squash
これにより、Action Scheduler の master
ブランチが libraries/action-scheduler
フォルダー内のリポジトリに追加されます。
--prefix
を変更して、コードが含まれる場所を変更できます。 または、master
ブランチを 2.1.0 などのタグに変更して、安定バージョンのみを含めます。
手順3.サブツリーを更新する
Action Scheduler を新しいバージョンに更新するには、次のコマンドを使用します。
git fetch subtree-action-scheduler master
git subtree pull --prefix libraries/action-scheduler subtree-action-scheduler master --squash
アクションスケジューラの読み込み
インストール方法に関係なく、Action Scheduler をロードするには、 action-scheduler.php
ファイルを含めるだけで済みます。
<?php
require_once( plugin_dir_path( __FILE__ ) . '/libraries/action-scheduler/action-scheduler.php' );
Action Scheduler を初期化するために、関数を呼び出したり、他の操作を行ったりする必要はありません。
action-scheduler.php
ファイルが含まれている場合、Action Scheduler はそのファイルにバージョンを登録してから、それ自体の最新バージョンをサイトにロードします。 また、すべての API 関数の最新バージョンもロードされます。
注文の読み込み
Action Scheduler は、他のすべてのプラグインコードベースがロードされた後、そのバージョンを優先度 0 で「plugins_loaded」に登録します。 したがって、 action-scheduler.php
ファイルは「plugins_loaded」優先度 0 の前に含める必要があります。
それを含むファイルが含まれているときにロードすることをお勧めします。 ただし、フックにロードする必要がある場合は、フックは「plugins_loaded」の前に発生する必要があります。または、-10 などの負の優先度で「plugins_loaded」を使用できます。
Action Scheduler は、後で優先度 1 の「init」で自身を初期化します。Action Scheduler API は、優先度 1 の「init」が終了するまで使用しないでください。
テーマでの使用法
テーマで Action Scheduler を使用する場合、Action Scheduler がプラグインによって登録されている場合は、テーマに含まれているバージョンではなく、プラグインによって登録されている最新バージョンが使用されることに注意してください。 これは、バージョン1.0以降の「plugins_loaded」を使用したバージョン依存関係処理コードが原因です。
アクションのスケジューリング
アクションをスケジュールするには、必要なパラメーターを渡して、目的のスケジュールタイプの API 関数を呼び出します。
以下のサンプルコードは、関数がまだスケジュールされていない場合に、関数を深夜に実行するようにスケジュールするために必要なすべてを示しています。
require_once( plugin_dir_path( __FILE__ ) . '/libraries/action-scheduler/action-scheduler.php' );
/**
* フック「eg_midnight_log」を使用してアクションを毎日深夜に実行するようにスケジュールし、
* コールバックが実行されるようにします。
*/
function eg_schedule_midnight_log() {
if ( false === as_next_scheduled_action( 'eg_midnight_log' ) ) {
as_schedule_recurring_action( strtotime( 'tomorrow' ), DAY_IN_SECONDS, 'eg_midnight_log' );
}
}
add_action( 'init', 'eg_schedule_midnight_log' );
/**
* 'eg_midnight_log'スケジュールされたアクションが実行されたときに実行されるコールバック。
*/
function eg_log_action_data() {
error_log( 'It is just after midnight on ' . date( 'Y-m-d' ) );
}
add_action( 'eg_midnight_log', 'eg_log_action_data' );
使用可能なすべての API 関数、およびそれらが受け入れるデータの詳細については、 API リファレンスを参照してください。