概要
woocommerce_valid_webhook_resources
フィルタは、WooCommerceが受け取るWebhookのリソースを検証するために使用されます。このフィルタを利用することで、特定のリソースがWebhookによって受け入れられるかどうかを制御することが可能です。この機能は、以下のようなシナリオでよく使われます。
- 特定のWebhookイベントのみを処理したい場合
- 自社のビジネスニーズに沿ったカスタムリソースを追加したい場合
- 不要なリソースを無効化したい場合
- 他のプラグインやテーマからの干渉を防ぎたい場合
- ストアのセキュリティを強化したい場合
- API統合の柔軟性を向上させたい場合
構文
add_filter( 'woocommerce_valid_webhook_resources', 'custom_valid_webhook_resources' );
function custom_valid_webhook_resources( $resources ) {
// カスタムロジックを追加
return $resources;
}
パラメータ
$resources
: 現在有効なWebhookリソースの配列。フィルタを使用することで、この配列に要素を追加または削除できます。
戻り値
このフィルタは、変更されたWebhookリソースの配列を返します。
対象となるバージョン
- WooCommerceバージョン: 4.0以上
- WordPressバージョン: 5.0以上
サンプルコード
サンプルコード1: プロダクトリソースを追加
add_filter( 'woocommerce_valid_webhook_resources', 'add_custom_product_webhook_resource' );
function add_custom_product_webhook_resource( $resources ) {
// "custom_product"リソースを追加
$resources[] = 'custom_product';
return $resources;
}
このコードは、Webhookの有効なリソースリストにcustom_product
というカスタムリソースを追加します。
サンプルコード2: 不要なリソースを削除
add_filter( 'woocommerce_valid_webhook_resources', 'remove_order_webhook_resource' );
function remove_order_webhook_resource( $resources ) {
// "order"リソースを無効化
if ( ( $key = array_search( 'order', $resources ) ) !== false ) {
unset( $resources[$key] );
}
return $resources;
}
このコードは、Webhookリソースからorder
を削除し、特定のイベントの処理を無効にします。
サンプルコード3: リソースの条件付き追加
add_filter( 'woocommerce_valid_webhook_resources', 'conditionally_add_webhook_resources' );
function conditionally_add_webhook_resources( $resources ) {
// 特定の条件に基づいてリソースを追加
if ( is_admin() ) {
$resources[] = 'admin_only_resource';
}
return $resources;
}
このコードは、管理者がリクエストを行った場合のみ、admin_only_resource
をWebhookリソースに追加します。
サンプルコード4: モバイルアプリ用のリソースを追加
add_filter( 'woocommerce_valid_webhook_resources', 'add_mobile_app_resource' );
function add_mobile_app_resource( $resources ) {
// モバイルアプリ用のWebhookリソースを追加
if ( isset( $_SERVER['HTTP_USER_AGENT'] ) && strpos( $_SERVER['HTTP_USER_AGENT'], 'Mobile' ) !== false ) {
$resources[] = 'mobile_app_resource';
}
return $resources;
}
このコードは、モバイルデバイスからのリクエストの場合にのみ、mobile_app_resource
を追加します。
サンプルコード5: Webhookリソースのカスタマイズ
add_filter( 'woocommerce_valid_webhook_resources', 'customize_webhook_resources' );
function customize_webhook_resources( $resources ) {
// 特定のリソースを変更
if ( in_array( 'customer', $resources ) ) {
$resources[] = 'customer_custom';
}
return $resources;
}
このコードは、既存のcustomer
リソースがある場合に、新たにcustomer_custom
リソースを追加します。
この関数のアクションでの使用可能性
アクション | 使用可能 |
---|---|
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 |
これにより、woocommerce_valid_webhook_resources
フィルタの概要と多様な使用方法について理解を深めることができます。