概要
woocommerce_webhook_topic
は、WooCommerceで発生するイベントを外部システムに通知するためのWebhookトピックを定義するアクションです。主に以下のような機能の実装に使用されます。
- 注文のステータス変更通知
- 在庫管理システムとの統合
- 顧客登録時の通知
- 返品処理の自動化
- 売上データの分析用外部サービスへの送信
- 特定の商品変更のリアルタイム通知
構文
do_action( 'woocommerce_webhook_topic', $topic, $data, $webhook );
パラメータ
$topic
(string) – Webhookのトピック名。$data
(array) – Webhookに関連するデータ。$webhook
(object) – Webhookオブジェクトに関する情報。
戻り値
このアクションは戻り値を持ちません。フックされた関数は、特定の処理を実行します。
使用可能なバージョン
- WooCommerceのバージョン: 2.2.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をトリガーします。
add_action( 'woocommerce_order_status_changed', 'send_webhook_on_order_status_change', 10, 4 );
function send_webhook_on_order_status_change( $order_id, $old_status, $new_status, $order ) {
$webhook_id = 123; // ここに事前に設定したWebhookのIDを入れる
$topic = 'order.updated'; // Webhookトピック
$data = array(
'order_id' => $order_id,
'new_status' => $new_status,
);
do_action( 'woocommerce_webhook_topic', $topic, $data, $webhook_id );
}
サンプルコード 2: 新規顧客登録時のWebhook通知
このコードは、新しい顧客が登録されたときにWebhookをトリガーします。
add_action( 'woocommerce_created_customer', 'send_webhook_on_new_customer', 10, 1 );
function send_webhook_on_new_customer( $customer_id ) {
$topic = 'customer.created'; // Webhookトピック
$data = array(
'customer_id' => $customer_id,
);
do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}
サンプルコード 3: 商品在庫変更時のWebhook通知
このコードは、商品在庫が変更されたときにWebhookをトリガーします。
add_action( 'woocommerce_update_product', 'send_webhook_on_product_update', 10, 1 );
function send_webhook_on_product_update( $product_id ) {
$topic = 'product.updated'; // Webhookトピック
$data = array(
'product_id' => $product_id,
);
do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}
サンプルコード 4: 返品リクエスト時のWebhook通知
このコードは、返品リクエストが作成されたときにWebhookをトリガーします。
add_action( 'woocommerce_order_return_request_created', 'send_webhook_on_return_request', 10, 1 );
function send_webhook_on_return_request( $return_request ) {
$topic = 'return.request.created'; // Webhookトピック
$data = $return_request; // 返品リクエストデータ
do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}
サンプルコード 5: 売上データ送信用Webhook通知
このコードは、売上データを外部システムに送信するWebhookをトリガーします。
add_action( 'woocommerce_thankyou', 'send_webhook_on_order_complete', 10, 1 );
function send_webhook_on_order_complete( $order_id ) {
$topic = 'order.completed'; // Webhookトピック
$data = array(
'order_id' => $order_id,
'amount' => get_post_meta( $order_id, '_order_total', true ),
);
do_action( 'woocommerce_webhook_topic', $topic, $data, null );
}
これらのサンプルコードは、woocommerce_webhook_topic
アクションを使用して、特定のイベントが発生したときにWebhookをトリガーする方法を示しています。