概要
woocommerce_webhook_hooks
アクションは、WooCommerceプラグイン内でWebhookがトリガーされたときに実行されるカスタムフックです。このフックを使用することでさまざまな機能を実装できます。一般的には、以下のような機能が実装されることが多いです。
- Webhook受信データのログ記録
- 外部APIへのデータ送信
- ユーザー通知の送信
- カスタマイズされたデータの取得と保存
- ペイメントゲートウェイとの連携
- 他のプラグインと連携した処理
構文
add_action('woocommerce_webhook_hooks', 'your_custom_function', 10, 4);
パラメータ
$webhook
: Webhookの情報。$request
: Webhookによって送信されたリクエストデータ。$response
: Webhookリクエストに対するレスポンス。$object
: Webhookが関連するオブジェクト(例:注文、製品など)。
戻り値
このアクションは戻り値を持ちません。
使用可能なバージョン
- WooCommerceバージョン: 2.2以降
- 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から受信したデータをログファイルに記録します。
add_action('woocommerce_webhook_hooks', 'log_webhook_data', 10, 4);
function log_webhook_data($webhook, $request, $response, $object) {
$log_data = json_encode($request);
file_put_contents('webhook_log.txt', $log_data . PHP_EOL, FILE_APPEND);
}
引用元: https://example.com/sample1
サンプルコード2: 外部APIへのデータ送信
このサンプルは、Webhookをトリガーして外部APIにデータを送信します。
add_action('woocommerce_webhook_hooks', 'send_data_to_external_api', 10, 4);
function send_data_to_external_api($webhook, $request, $response, $object) {
$api_url = 'https://externalapi.example.com/endpoint';
wp_remote_post($api_url, [
'body' => json_encode($request),
'headers' => ['Content-Type' => 'application/json']
]);
}
引用元: https://example.com/sample2
サンプルコード3: ユーザーへ通知を送信
このコードは、Webhookイベントに基づいて特定のユーザーに通知を送信します。
add_action('woocommerce_webhook_hooks', 'notify_user_on_webhook', 10, 4);
function notify_user_on_webhook($webhook, $request, $response, $object) {
$user_email = 'user@example.com';
wp_mail($user_email, 'Webhook Triggered', 'A webhook was triggered with data: ' . json_encode($request));
}
引用元: https://example.com/sample3
サンプルコード4: カスタマイズデータの保存
このサンプルは、受け取ったカスタムデータをデータベースに保存します。
add_action('woocommerce_webhook_hooks', 'save_custom_data', 10, 4);
function save_custom_data($webhook, $request, $response, $object) {
if (isset($request['custom_field'])) {
update_option('my_custom_data', $request['custom_field']);
}
}
引用元: https://example.com/sample4
サンプルコード5: Webhookによるダッシュボード更新
このコードは、Webhookを受信すると管理画面のダッシュボードにカスタムのメッセージを表示します。
add_action('woocommerce_webhook_hooks', 'update_dashboard_message', 10, 4);
function update_dashboard_message($webhook, $request, $response, $object) {
if ($request['event'] == 'order_created') {
set_transient('dashboard_message', 'A new order has been created!', 60);
}
}
引用元: https://example.com/sample5