概要
woocommerce_valid_webhook_events
フィルタは、WooCommerceでのWebhookイベントを検証する際に使用されます。このフィルタでは、特定のWebhookイベントが有効かどうかをチェックし、処理の流れに影響を与えることができます。主に以下のような機能を実装する際に役立ちます。
- 特定のWebhookイベントを無効化する。
- Webhookイベントのカスタムバリデーションを追加する。
- 外部サービスへの通知を調整する際のフィルタリング。
- Webhookイベントに応じたカスタムアクションを実行する。
- イベントログを作成してデバッグを行う。
- 外部APIとの連携をカスタマイズする。
構文
apply_filters( 'woocommerce_valid_webhook_events', $valid_events, $webhook_id );
パラメータ
$valid_events
: 有効なWebhookイベントの配列。$webhook_id
: WebhookのID。
戻り値
このフィルタは、ウェブフックイベントの配列を返します。
使用可能なプラグインバージョン
- WooCommerceバージョン: 3.5.0以降
- WordPressバージョン: 4.0以降
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード 1: 特定のWebhookイベントの除外
このコードでは、特定のWebhookイベント(例:order.updated
)を無効化する方法を示しています。
add_filter('woocommerce_valid_webhook_events', function($valid_events) {
$valid_events = array_diff($valid_events, ['order.updated']);
return $valid_events;
});
(引用元: カスタマイズWooCommerceWebhooksの実装)
サンプルコード 2: カスタムWebhookイベントの追加
このコードでは、新しいカスタムWebhookイベント(例:custom.event
)を有効なイベントのリストに追加しています。
add_filter('woocommerce_valid_webhook_events', function($valid_events) {
$valid_events[] = 'custom.event';
return $valid_events;
});
(引用元: WooCommerceでのWebhookの設定)
サンプルコード 3: Webhookイベントのログ出力
このサンプルは、受信したWebhookイベントをログファイルに記録する方法を示します。
add_filter('woocommerce_valid_webhook_events', function($valid_events, $webhook_id) {
error_log('Received Webhook ID: ' . $webhook_id);
return $valid_events;
}, 10, 2);
(引用元: WooCommerceWebhookのデバッグ)
サンプルコード 4: 条件付きでWebhookイベントのフィルタリング
このコードでは、特定の条件が満たされたときにWebhookイベントをフィルタリングしています。
add_filter('woocommerce_valid_webhook_events', function($valid_events) {
if (some_condition()) {
$valid_events = array_filter($valid_events, function($event) {
return $event !== 'order.created';
});
}
return $valid_events;
});
(引用元: WooCommerce条件付きWebhookの設定)
サンプルコード 5: Webhookイベントにカスタム処理を追加
このサンプルでは、新しいカスタム処理をWebhookイベントに追加する方法を示しています。
add_filter('woocommerce_valid_webhook_events', function($valid_events) {
if (user_is_subscribed()) {
$valid_events[] = 'subscription.updated';
}
return $valid_events;
});
(引用元: WooCommerceサブスクリプションのWebhookカスタマイズ)